$app['organizer_iri_generator'] = $app->share(function ($app) { return new CallableIriGenerator(function ($cdbid) use($app) { return $app['config']['url'] . '/organizer/' . $cdbid; }); }); $app['organizer_jsonld_projector'] = $app->share(function ($app) { return new \CultuurNet\UDB3\Organizer\OrganizerLDProjector($app['organizer_jsonld_repository'], $app['organizer_iri_generator'], $app['event_bus']); }); $app['organizer_jsonld_repository'] = $app->share(function ($app) { return new \CultuurNet\UDB3\Doctrine\Event\ReadModel\CacheDocumentRepository($app['organizer_jsonld_cache']); }); $app['organizer_jsonld_cache'] = $app->share(function ($app) { return $app['cache']('organizer_jsonld'); }); $app['eventstore_payload_serializer'] = $app->share(function () { return \CultuurNet\UDB3\BackwardsCompatiblePayloadSerializerFactory::createSerializer(); }); $app['organizer_store'] = $app->share(function ($app) { return new \Broadway\EventStore\DBALEventStore($app['dbal_connection'], $app['eventstore_payload_serializer'], new \Broadway\Serializer\SimpleInterfaceSerializer(), 'organizers'); }); $app['udb2_organizer_importer'] = $app->share(function (Application $app) { $importer = new \CultuurNet\UDB3\UDB2\Organizer\OrganizerCdbXmlImporter($app['udb2_actor_cdbxml_provider'], $app['real_organizer_repository']); $logger = new \Monolog\Logger('udb2-organizer-importer'); $logger->pushHandler($app['udb2_log_handler']); $importer->setLogger($logger); return $importer; }); $app['real_organizer_repository'] = $app->share(function (Application $app) { $repository = new \CultuurNet\UDB3\Organizer\OrganizerRepository($app['organizer_store'], $app['event_bus'], array($app['event_stream_metadata_enricher'])); return $repository; });
return new \CultuurNet\UDB3\Organizer\DefaultOrganizerEditingService($app['event_command_bus'], $app['uuid_generator'], $app['organizer_repository'], $app['labels.constraint_aware_service']); }); $app['organizer_jsonld_projector'] = $app->share(function ($app) { return new \CultuurNet\UDB3\Organizer\OrganizerLDProjector($app['organizer_jsonld_repository'], $app['organizer_iri_generator'], $app['event_bus'], $app[LabelServiceProvider::JSON_READ_REPOSITORY]); }); $app['real_organizer_jsonld_repository'] = $app->share(function ($app) { return new \CultuurNet\UDB3\Doctrine\Event\ReadModel\CacheDocumentRepository($app['organizer_jsonld_cache']); }); $app['organizer_jsonld_repository'] = $app->share(function ($app) { return new \CultuurNet\UDB3\ReadModel\BroadcastingDocumentRepositoryDecorator($app['real_organizer_jsonld_repository'], $app['event_bus'], new \CultuurNet\UDB3\Organizer\ReadModel\JSONLD\EventFactory()); }); $app['organizer_jsonld_cache'] = $app->share(function ($app) { return $app['cache']('organizer_jsonld'); }); $app['eventstore_payload_serializer'] = $app->share(function ($app) { return \CultuurNet\UDB3\BackwardsCompatiblePayloadSerializerFactory::createSerializer($app[LabelServiceProvider::JSON_READ_REPOSITORY]); }); $app['organizer_store'] = $app->share(function ($app) { $eventStore = new \Broadway\EventStore\DBALEventStore($app['dbal_connection'], $app['eventstore_payload_serializer'], new \Broadway\Serializer\SimpleInterfaceSerializer(), 'organizers'); return new UniqueDBALEventStoreDecorator($eventStore, $app['dbal_connection'], new StringLiteral('organizer_unique_websites'), new WebsiteUniqueConstraintService()); }); $app['organizers_locator_event_stream_decorator'] = $app->share(function (Application $app) { return new OfferLocator($app['organizer_iri_generator']); }); $app['organizer_repository'] = $app->share(function (Application $app) { $repository = new \CultuurNet\UDB3\Organizer\OrganizerRepository($app['organizer_store'], $app['event_bus'], array($app['event_stream_metadata_enricher'], $app['organizers_locator_event_stream_decorator'])); return $repository; }); $app['organizer_service'] = $app->share(function ($app) { $service = new \CultuurNet\UDB3\OrganizerService($app['organizer_jsonld_repository'], $app['organizer_repository'], $app['organizer_iri_generator']); return $service;