Skip to content

Latest commit

 

History

History
122 lines (95 loc) · 5.64 KB

configuration.md

File metadata and controls

122 lines (95 loc) · 5.64 KB

Configuration

Every option in the configuration is optional. Not defining a default for request decoder, DTO constructor or response constructor will lead to an exception when there is no component defined in the route.

<?php

declare(strict_types=1);

use ...
use DigitalCraftsman\CQSRouting\DTOConstructor\SerializerDTOConstructor;
use DigitalCraftsman\CQSRouting\RequestDecoder\JsonRequestDecoder;
use DigitalCraftsman\CQSRouting\ResponseConstructor\EmptyJsonResponseConstructor;
use DigitalCraftsman\CQSRouting\ResponseConstructor\SerializerJsonResponseConstructor;
// Automatically generated by Symfony though a config builder (see https://symfony.com/doc/current/configuration.html#config-config-builder).
use Symfony\Config\CqsRoutingConfig;

return static function (CqsRoutingConfig $cqsRoutingConfig) {
    
    // -- Query controller

    $cqsRoutingConfig->queryController()
        ->defaultRequestValidatorClasses([
            GuardAgainstTokenInHeaderRequestValidator::class => null,
        ])
        ->defaultRequestDecoderClass(JsonRequestDecoder::class)
        ->defaultRequestDataTransformerClasses([
            AddActionIdRequestDataTransformer::class => null,
        ])
        ->defaultDtoConstructorClass(SerializerDTOConstructor::class)
        ->defaultDtoValidatorClasses([
            CourseIdValidator::class => null,
            UserIdValidator::class => null,
        ])
        ->defaultHandlerWrapperClasses([
            ConnectionTransactionWrapper::class => null,
        ])
        ->defaultResponseConstructorClass(SerializerJsonResponseConstructor::class);

    // -- Command controller

    $cqsRoutingConfig->commandController()
        ->defaultRequestValidatorClasses([
            GuardAgainstTokenInHeaderRequestValidator::class => null,
        ])
        ->defaultRequestDecoderClass(JsonRequestDecoder::class)
        ->defaultRequestDataTransformerClasses([
            AddActionIdRequestDataTransformer::class => null,
        ])
        ->defaultDtoConstructorClass(SerializerDTOConstructor::class)
        ->defaultDtoValidatorClasses([
            CourseIdValidator::class => null,
            UserIdValidator::class => null,
        ])
        ->defaultHandlerWrapperClasses([
            ConnectionTransactionWrapper::class => null,
        ])
        ->defaultResponseConstructorClass(EmptyJsonResponseConstructor::class);
};

Or if your configuration still uses yaml, it looks like this:

cqs_routing:

  command_controller:

    # Classes of the default request validator of command controller when there is none defined for the route
    default_request_validator_classes:
      'App\CQSRouting\RequestValidator\GuardAgainstTokenInHeaderRequestValidator': null

    # Class of the default request decoder of command controller when there is none defined for the route
    default_request_decoder_class: 'DigitalCraftsman\CQSRouting\RequestDecoder\JsonRequestDecoder'

    # Classes of the default request data transformer of command controller when there is none defined for the route
    default_request_data_transformer_classes:
      'App\CQSRouting\RequestDataTransformer\AddActionIdRequestDataTransformer': null
    
    # Class of the default DTO constructor of command controller when there is none defined for the route
    default_dto_constructor_class: 'DigitalCraftsman\CQSRouting\DTOConstructor\SerializerDTOConstructor'

    # Classes of the default DTO validator of command controller when there is none defined for the route
    default_dto_validator_classes:
      'App\CQSRouting\DTOValidator\CourseIdValidator': null
      'App\CQSRouting\DTOValidator\UserIdValidator': null

    # Classes of the default wrapper handler of command controller when there is none defined for the route
    default_handler_wrapper_classes:
      'App\CQSRouting\HandlerWrapper\ConnectionTransactionWrapper': null

    # Class of the default response constructor of command controller when there is none defined for the route
    default_response_constructor_class: 'DigitalCraftsman\CQSRouting\ResponseConstructor\EmptyJsonResponseConstructor'

  query_controller:

    # Classes of the default request validator of query controller when there is none defined for the route
    default_request_validator_classes:
      'App\CQSRouting\RequestValidator\GuardAgainstTokenInHeaderRequestValidator': null
    
    # Class of the default request decoder of query controller when there is none defined for the route
    default_request_decoder_class: 'DigitalCraftsman\CQSRouting\RequestDecoder\JsonRequestDecoder'

    # Classes of the default request data transformer of query controller when there is none defined for the route
    default_request_data_transformer_classes:
      'App\CQSRouting\RequestDataTransformer\AddActionIdRequestDataTransformer': null
    
    # Class of the default DTO constructor of query controller when there is none defined for the route
    default_dto_constructor_class: 'DigitalCraftsman\CQSRouting\DTOConstructor\SerializerDTOConstructor'
    
    # Classes of the default DTO validator of query controller when there is none defined for the route
    default_dto_validator_classes:
      'App\CQSRouting\DTOValidator\CourseIdValidator': null
      'App\CQSRouting\DTOValidator\UserIdValidator': null

    # Classes of the default wrapper handler of query controller when there is none defined for the route
    default_handler_wrapper_classes:
      'App\CQSRouting\HandlerWrapper\ConnectionTransactionWrapper': null
    
    # Class of the default response constructor of query controller when there is none defined for the route
    default_response_constructor_class: 'DigitalCraftsman\CQSRouting\ResponseConstructor\SerializerJsonResponseConstructor'