services:
  alchemy_rest.fractal_manager:
    class: League\Fractal\Manager
    public: false

  alchemy_rest.transformer_registry:
    class: Alchemy\Rest\Response\TransformerRegistry

  alchemy_rest.array_transformer:
    class: Alchemy\Rest\Response\ArrayTransformer
    arguments:
      - "@alchemy_rest.fractal_manager"
      - "@alchemy_rest.transformer_registry"

  alchemy_rest.negotiator:
    class: Negotiation\Negotiator

  alchemy_rest.content_type_matcher:
    class: Alchemy\Rest\Request\ContentTypeMatcher
    arguments:
      - "@alchemy_rest.negotiator"

  alchemy_rest.exception_transformer:
    class: Alchemy\Rest\Response\ExceptionTransformer\DefaultExceptionTransformer
    public: false
    arguments:
      - false

  alchemy_rest.date_parser:
    class: Alchemy\Rest\Request\DateParser\FormatDateParser
    public: false
    arguments:
      - ~
      - ~

  alchemy_rest.paginate_options_factory:
    class: Alchemy\RestBundle\Rest\Request\PaginationOptionsFactory
    arguments:
      - ~
      - ~

  alchemy_rest.sort_options_factory:
    class: Alchemy\RestBundle\Rest\Request\SortOptionsFactory
    public: false
    arguments:
      - ~
      - ~
      - ~

