protected function injectWebhooksStructure($appContext = false)
 {
     $eventsListClass = new DreamCommerceShopAppstoreEvents();
     $treeBuilder = new TreeBuilder();
     $root = $treeBuilder->root('webhooks');
     $events = $eventsListClass->getSupportedWebhooks();
     $root->prototype('array')->children()->scalarNode('secret')->isRequired(true)->end()->scalarNode('validator')->defaultValue(sprintf('dream_commerce_shop_appstore.webhook.%s_validator', $appContext ? 'app' : 'global'))->validate()->always(function ($value) {
         $value = $value[0] == '@' ? substr($value, 1) : $value;
         return $value;
     })->end()->end()->arrayNode('events')->prototype('scalar')->validate()->ifNotInArray($events)->thenInvalid('Invalid webhook event "%s"')->end()->end()->end()->end()->beforeNormalization()->ifString()->then(function ($value) use($events) {
         return ['validator' => $value, 'secret' => '', 'events' => $events];
     })->end()->end()->end();
     return $root;
 }
 public function isEventSupported($event)
 {
     $events = new DreamCommerceShopAppstoreEvents();
     return in_array($event, $events->getSupportedWebhooks()) && in_array($event, $this->events);
 }