Resources/config/services.yml
parameters:
hateoas.resource_cache.class: GoIntegro\Hateoas\JsonApi\ArrayResourceCache
hateoas.metadata_cache.class: GoIntegro\Hateoas\Metadata\Entity\ArrayMetadataCache
hateoas.config.resource_entity_map_cache.class: GoIntegro\Bundle\HateoasBundle\Config\ResourceEntityMapSymfonyCache
hateoas.config.raml_doc_cache.class: GoIntegro\Bundle\HateoasBundle\Config\RamlDocSymfonyCache
services:
hateoas.config.resource_entity_mapper:
class: GoIntegro\Hateoas\Config\ResourceEntityMapper
arguments:
- @doctrine.orm.entity_manager
- @hateoas.metadata_cache
- @hateoas.raml.navigator
- @hateoas.config.resource_entity_map_cache
hateoas.config.resource_entity_map_cache:
class: %hateoas.config.resource_entity_map_cache.class%
arguments: [@kernel]
hateoas.request_parser:
class: GoIntegro\Hateoas\JsonApi\Request\Parser
arguments:
- @hateoas.config.resource_entity_mapper
- @hateoas.raml.navigator
- @hateoas.request_parser.filter
- @hateoas.request_parser.pagination
- @hateoas.request_parser.body
- @hateoas.request_parser.action
- @hateoas.request_parser.entities
- @hateoas.request_parser.locale
- @hateoas.metadata_miner
- %api.url_path%
hateoas.request_parser.filter:
class: GoIntegro\Hateoas\JsonApi\Request\FilterParser
public: false
arguments: [@hateoas.metadata_miner]
hateoas.request_parser.pagination:
class: GoIntegro\Hateoas\JsonApi\Request\PaginationParser
public: false
arguments: [@hateoas.metadata_miner]
hateoas.request_parser.body:
class: GoIntegro\Hateoas\JsonApi\Request\BodyParser
public: false
arguments:
- @hateoas.json_coder
- @hateoas.raml.navigator
- @hateoas.request_parser.hydrant
- @hateoas.request_parser.body.create
- @hateoas.request_parser.body.update
- @hateoas.request_parser.body.link
- @hateoas.request_parser.body.unlink
hateoas.request_parser.body.create:
class: GoIntegro\Hateoas\JsonApi\Request\CreateBodyParser
public: false
hateoas.request_parser.body.update:
class: GoIntegro\Hateoas\JsonApi\Request\UpdateBodyParser
public: false
arguments:
- @hateoas.request_parser.body.translations
hateoas.request_parser.body.link:
class: GoIntegro\Hateoas\JsonApi\Request\LinkBodyParser
public: false
hateoas.request_parser.body.unlink:
class: GoIntegro\Hateoas\JsonApi\Request\UnlinkBodyParser
public: false
hateoas.request_parser.body.translations:
class: GoIntegro\Hateoas\JsonApi\Request\TranslationsParser
public: false
hateoas.request_parser.action:
class: GoIntegro\Hateoas\JsonApi\Request\ActionParser
public: false
arguments:
- @hateoas.json_coder
- @hateoas.metadata_miner
hateoas.request_parser.entities:
class: GoIntegro\Hateoas\JsonApi\Request\ParamEntityFinder
public: false
arguments:
- @doctrine.orm.entity_manager
- @security.context
- @hateoas.repo_helper
hateoas.request_parser.locale:
class: GoIntegro\Hateoas\JsonApi\Request\LocaleNegotiator
public: false
hateoas.request_parser.default_locale:
class: GoIntegro\Hateoas\JsonApi\Request\DefaultLocaleNegotiator
public: false
tags:
- { name: hateoas.request_parser.locale }
hateoas.request_parser.hydrant:
class: GoIntegro\Hateoas\JsonApi\Request\ResourceLinksHydrant
public: false
arguments:
- @doctrine.orm.entity_manager
- @hateoas.metadata_miner
hateoas.metadata_miner:
class: GoIntegro\Hateoas\Metadata\Resource\MetadataMiner
arguments: [@hateoas.miner_provider]
hateoas.miner_provider:
class: GoIntegro\Hateoas\Metadata\Resource\MinerProvider
arguments:
- @hateoas.metadata_cache
- %api.resource_class_path%
hateoas.resource_manager:
class: GoIntegro\Hateoas\JsonApi\ResourceManager
arguments:
- @hateoas.metadata_miner
- @hateoas.resource_cache
- @service_container
hateoas.resource_cache:
class: %hateoas.resource_cache.class%
arguments:
- @hateoas.metadata_cache
- @hateoas.metadata_miner
- @service_container
- %go_integro_hateoas.cache%
hateoas.metadata_cache:
class: %hateoas.metadata_cache.class%
arguments: [@doctrine.orm.entity_manager]
hateoas.repo_helper:
class: GoIntegro\Hateoas\Util\RepositoryHelper
arguments: [@doctrine.orm.entity_manager]
hateoas.repo_helper.default_filter:
class: GoIntegro\Hateoas\JsonApi\Request\DefaultFilter
public: false
tags:
- { name: hateoas.repo_helper.filter }
hateoas.document_blender:
class: GoIntegro\Hateoas\JsonApi\Merge\Blender
arguments: [@hateoas.json_coder]
hateoas.json_coder:
class: GoIntegro\Json\JsonCoder
hateoas.json_validator:
class: GoIntegro\Bundle\HateoasBundle\Util\JsonValidator
arguments: [@kernel, @hateoas.json_coder]
hateoas.entity.builder:
class: GoIntegro\Hateoas\Entity\Builder
scope: request
hateoas.entity.default_builder:
class: GoIntegro\Hateoas\Entity\DefaultBuilder
public: false
arguments:
- @doctrine.orm.entity_manager
- @validator
- @security.context
- @hateoas.metadata_cache
tags:
- { name: hateoas.entity.builder, resource_type: default }
hateoas.entity.mutator:
class: GoIntegro\Hateoas\Entity\Mutator
scope: request
hateoas.entity.default_mutator:
class: GoIntegro\Hateoas\Entity\DefaultMutator
public: false
arguments:
- @doctrine.orm.entity_manager
- @validator
- @hateoas.metadata_cache
tags:
- { name: hateoas.entity.mutator, resource_type: default }
hateoas.entity.deleter:
class: GoIntegro\Hateoas\Entity\Deleter
hateoas.entity.default_deleter:
class: GoIntegro\Hateoas\Entity\DefaultDeleter
public: false
arguments:
- @doctrine.orm.entity_manager
- @hateoas.request_parser
tags:
- { name: hateoas.entity.deleter, resource_type: default }
hateoas.serializer.document:
class: GoIntegro\Hateoas\JsonApi\DocumentSerializer
arguments:
- @hateoas.serializer.document.links
- @hateoas.serializer.document.linked
- @hateoas.serializer.document.meta
- @security.context
hateoas.serializer.document.links:
class: GoIntegro\Hateoas\JsonApi\Serializer\TopLevelLinksSerializer
public: false
arguments:
- @hateoas.serializer.document.include_links
- @hateoas.serializer.document.pagination_links
hateoas.serializer.document.include_links:
class: GoIntegro\Hateoas\JsonApi\Serializer\TopLevelLinkedLinksSerializer
public: false
arguments: [%api.url_path%]
hateoas.serializer.document.pagination_links:
class: GoIntegro\Hateoas\JsonApi\Serializer\TopLevelPaginationLinksSerializer
public: false
arguments: [%api.url_path%]
hateoas.serializer.document.linked:
class: GoIntegro\Hateoas\JsonApi\Serializer\LinkedResourcesSerializer
public: false
arguments: [@security.context]
hateoas.serializer.document.meta:
class: GoIntegro\Hateoas\JsonApi\Serializer\MetadataSerializer
public: false
arguments:
- @hateoas.serializer.document.pagination_meta
- @hateoas.serializer.document.search_result_meta
- @hateoas.serializer.document.translations_meta
hateoas.serializer.document.pagination_meta:
class: GoIntegro\Hateoas\JsonApi\Serializer\PaginationMetadataSerializer
public: false
hateoas.serializer.document.search_result_meta:
class: GoIntegro\Hateoas\JsonApi\Serializer\SearchResultMetadataSerializer
public: false
hateoas.serializer.document.translations_meta:
class: GoIntegro\Hateoas\JsonApi\Serializer\TranslationsMetadataSerializer
public: false
arguments: [@doctrine.orm.entity_manager]
hateoas.raml.parser:
class: GoIntegro\Raml\DocParser
arguments: [@hateoas.raml.map_collection_parser, @hateoas.raml.expander]
hateoas.raml.map_collection_parser:
class: GoIntegro\Raml\MapCollectionParser
arguments: [@hateoas.json_coder]
hateoas.raml.expander:
class: GoIntegro\Raml\DocExpander
hateoas.config.raml_doc_cache:
class: %hateoas.config.raml_doc_cache.class%
arguments: [@kernel]
hateoas.raml.navigator_factory:
class: GoIntegro\Bundle\HateoasBundle\DependencyInjection\Factory\RamlNavigatorFactory
arguments:
- @kernel
- @hateoas.raml.parser
- @hateoas.config.raml_doc_cache
hateoas.raml.navigator:
class: GoIntegro\Raml\DocNavigator
factory_service: hateoas.raml.navigator_factory
factory_method: createNavigator
arguments: [@hateoas.json_coder]