feat: add validations
feat: add forms feat: add validations validations InexController
This commit is contained in:
		
							parent
							
								
									248b25576b
								
							
						
					
					
						commit
						63783cb90f
					
				@ -1,6 +1,8 @@
 | 
				
			|||||||
framework:
 | 
					framework:
 | 
				
			||||||
    validation:
 | 
					    validation:
 | 
				
			||||||
        email_validation_mode: html5
 | 
					        email_validation_mode: html5
 | 
				
			||||||
 | 
					        enabled: true
 | 
				
			||||||
 | 
					        translation_domain: validation_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Enables validator auto-mapping support.
 | 
					        # Enables validator auto-mapping support.
 | 
				
			||||||
        # For instance, basic validation constraints will be inferred from Doctrine's metadata.
 | 
					        # For instance, basic validation constraints will be inferred from Doctrine's metadata.
 | 
				
			||||||
 | 
				
			|||||||
@ -2,30 +2,47 @@
 | 
				
			|||||||
declare(strict_types=1);
 | 
					declare(strict_types=1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace App\Entity\QRCode;
 | 
					namespace App\Entity\QRCode;
 | 
				
			||||||
 | 
					use Symfony\Component\Validator\Constraints as Assert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * QRCode description
 | 
					 * QRCode description
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
class QRCode
 | 
					class QRCode
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    #[Assert\NotBlank]
 | 
				
			||||||
 | 
					    #[Assert\Iban(
 | 
				
			||||||
 | 
					        message: 'messages.not_a_iban_number',
 | 
				
			||||||
 | 
					    )]
 | 
				
			||||||
    private ?string $iban;
 | 
					    private ?string $iban;
 | 
				
			||||||
 | 
					    #[Assert\NotBlank(message: 'messages.fill_value')]
 | 
				
			||||||
 | 
					    #[Assert\GreaterThanOrEqual(
 | 
				
			||||||
 | 
					            'today', message: 'messages.invalid_date'
 | 
				
			||||||
 | 
					    )]
 | 
				
			||||||
    private ?\DateTime $dueDate;
 | 
					    private ?\DateTime $dueDate;
 | 
				
			||||||
 | 
					    #[Assert\NotBlank(message: 'messages.fill_value')]
 | 
				
			||||||
    private ?string $message;
 | 
					    private ?string $message;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[Assert\Valid]
 | 
				
			||||||
 | 
					    #[Assert\NotBlank]
 | 
				
			||||||
    private ?QRCodeMoney $money;
 | 
					    private ?QRCodeMoney $money;
 | 
				
			||||||
 | 
					    #[Assert\Valid]
 | 
				
			||||||
 | 
					    #[Assert\NotBlank]
 | 
				
			||||||
    private ?QRCodePaymentIdentification $paymentIdentification;
 | 
					    private ?QRCodePaymentIdentification $paymentIdentification;
 | 
				
			||||||
 | 
					    #[Assert\Valid]
 | 
				
			||||||
 | 
					    #[Assert\NotBlank]
 | 
				
			||||||
    private readonly QRCodeQROptions $codeQROptions;
 | 
					    private readonly QRCodeQROptions $codeQROptions;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * @param QRCodeQROptions $codeQROptions
 | 
					     * @param QRCodeQROptions $codeQROptions
 | 
				
			||||||
     * @param string|null $iban
 | 
					     * @param string|null $iban
 | 
				
			||||||
     * @param string|null $dueDate
 | 
					     * @param \DateTime|null $dueDate
 | 
				
			||||||
     * @param string|null $message
 | 
					     * @param string|null $message
 | 
				
			||||||
     * @param QRCodeMoney|null $money
 | 
					     * @param QRCodeMoney|null $money
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public function __construct(
 | 
					    public function __construct(
 | 
				
			||||||
        QRCodeQROptions $codeQROptions,
 | 
					        QRCodeQROptions $codeQROptions,
 | 
				
			||||||
        ?string $iban = null,
 | 
					        ?string $iban = null,
 | 
				
			||||||
        ?string $dueDate = null,
 | 
					        ?\DateTime $dueDate = null,
 | 
				
			||||||
        ?string $message = null,
 | 
					        ?string $message = null,
 | 
				
			||||||
        ?QRCodeMoney $money = null)
 | 
					        ?QRCodeMoney $money = null)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
				
			|||||||
@ -3,13 +3,22 @@ declare(strict_types=1);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace App\Entity\QRCode;
 | 
					namespace App\Entity\QRCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use App\Service\CurrencyListerInterface;
 | 
				
			||||||
 | 
					use Symfony\Component\Validator\Constraints as Assert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Money type for QR code
 | 
					 * Money type for QR code
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
class QRCodeMoney
 | 
					class QRCodeMoney
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    #[Assert\Positive(
 | 
				
			||||||
 | 
					        message: 'messages.not_valid_amount',
 | 
				
			||||||
 | 
					    )]
 | 
				
			||||||
 | 
					    #[Assert\NotBlank(message: 'messages.fill_value')]
 | 
				
			||||||
    private ?string $amount;
 | 
					    private ?string $amount;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // TODO: getCurrencies validation
 | 
				
			||||||
 | 
					    #[Assert\NotBlank(message: 'messages.fill_value')]
 | 
				
			||||||
    private ?string $currency;
 | 
					    private ?string $currency;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 | 
				
			|||||||
@ -3,12 +3,46 @@ declare(strict_types=1);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace App\Entity\QRCode;
 | 
					namespace App\Entity\QRCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Symfony\Component\Validator\Constraints as Assert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Payment identification for QR code
 | 
					 * Payment identification for QR code
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
class QRCodePaymentIdentification {
 | 
					class QRCodePaymentIdentification {
 | 
				
			||||||
 | 
					    #[Assert\NotBlank(message: 'messages.fill_value')]
 | 
				
			||||||
 | 
					    #[Assert\Length( // <<< Ano, mohl jsem si napsat vlastni validator ...
 | 
				
			||||||
 | 
					        min: 1,
 | 
				
			||||||
 | 
					        max: 10,
 | 
				
			||||||
 | 
					        minMessage: 'messages.not_variable_symbol',
 | 
				
			||||||
 | 
					        maxMessage: 'messages.not_variable_symbol',
 | 
				
			||||||
 | 
					    )] // https://en.wikipedia.org/wiki/Variable_symbol
 | 
				
			||||||
 | 
					    #[Assert\Positive(
 | 
				
			||||||
 | 
					        message: 'messages.not_variable_symbol',
 | 
				
			||||||
 | 
					    )]
 | 
				
			||||||
    private string $variableSymbol;
 | 
					    private string $variableSymbol;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[Assert\NotBlank(message: 'messages.fill_value')]
 | 
				
			||||||
 | 
					    #[Assert\Length(
 | 
				
			||||||
 | 
					        min: 1,
 | 
				
			||||||
 | 
					        max: 10,
 | 
				
			||||||
 | 
					        minMessage: 'messages.not_specific_symbol',
 | 
				
			||||||
 | 
					        maxMessage: 'messages.not_specific_symbol',
 | 
				
			||||||
 | 
					    )] // https://cs.wikipedia.org/wiki/Specifick%C3%BD_symbol
 | 
				
			||||||
 | 
					    #[Assert\Positive(
 | 
				
			||||||
 | 
					        message: 'The {{ value }} is not a variable symbol.',
 | 
				
			||||||
 | 
					    )]
 | 
				
			||||||
    private string $specificSymbol;
 | 
					    private string $specificSymbol;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[Assert\NotBlank(message: 'messages.fill_value')]
 | 
				
			||||||
 | 
					    #[Assert\Length(
 | 
				
			||||||
 | 
					        min: 1,
 | 
				
			||||||
 | 
					        max: 10,
 | 
				
			||||||
 | 
					        minMessage: 'messages.not_constant_symbol',
 | 
				
			||||||
 | 
					        maxMessage: 'messages.not_constant_symbol',
 | 
				
			||||||
 | 
					    )]  // https://www.hyponamiru.cz/en/glossary/constant-symbol/
 | 
				
			||||||
 | 
					    #[Assert\Positive(
 | 
				
			||||||
 | 
					        message: 'messages.not_constant_symbol',
 | 
				
			||||||
 | 
					    )]
 | 
				
			||||||
    private string $constantSymbol;
 | 
					    private string $constantSymbol;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function getVariableSymbol(): string
 | 
					    public function getVariableSymbol(): string
 | 
				
			||||||
 | 
				
			|||||||
@ -3,11 +3,22 @@ declare(strict_types=1);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace App\Entity\QRCode;
 | 
					namespace App\Entity\QRCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Symfony\Component\Validator\Constraints as Assert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Options for generating QR code
 | 
					 * Options for generating QR code
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
readonly class QRCodeQROptions {
 | 
					readonly class QRCodeQROptions {
 | 
				
			||||||
 | 
					    #[Assert\Positive(
 | 
				
			||||||
 | 
					        message: 'messages.scale_must_be_positive',
 | 
				
			||||||
 | 
					    )]
 | 
				
			||||||
 | 
					    #[Assert\NotBlank(message: 'messages.fill_value')]
 | 
				
			||||||
    private int $scale;
 | 
					    private int $scale;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    #[Assert\PositiveOrZero(
 | 
				
			||||||
 | 
					        message: 'messages.margin_must_be_positive',
 | 
				
			||||||
 | 
					    )]
 | 
				
			||||||
 | 
					    #[Assert\NotBlank(message: 'messages.fill_value')]
 | 
				
			||||||
    private int $margin;
 | 
					    private int $margin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@ class QRCodeType extends AbstractType
 | 
				
			|||||||
            ->add('message', TextType::class)
 | 
					            ->add('message', TextType::class)
 | 
				
			||||||
            ->add('money', QRCodeMoneyType::class)
 | 
					            ->add('money', QRCodeMoneyType::class)
 | 
				
			||||||
            ->add('paymentIdentification', QRCodePaymentIdentificationType::class)
 | 
					            ->add('paymentIdentification', QRCodePaymentIdentificationType::class)
 | 
				
			||||||
            ->add('save', SubmitType::class);
 | 
					            ->add('generate_qr_code', SubmitType::class);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function configureOptions(OptionsResolver $resolver): void
 | 
					    public function configureOptions(OptionsResolver $resolver): void
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user