Feat: Implement fine grained teamer profile data validation

This commit is contained in:
Björn Fromme
2023-09-19 18:42:01 +02:00
parent 9a95daa3db
commit 7f7a35e7a2
13 changed files with 156 additions and 20 deletions
+6 -4
View File
@@ -2,27 +2,29 @@
namespace App\Entity\Embeddable;
use App\BusProNet\Model\Address as BpnAddress;
use App\Validator\Constraints as AppAssert;
use App\BusProNet\Model\ProfileResponse;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Embeddable]
#[AppAssert\Address(message: 'Bitte vervollständige deine Anschrift', groups: ['profile_preflight'])]
class Address
{
#[ORM\Column(type: 'string', nullable: true)]
#[Assert\NotBlank(message: 'Bitte gib deine Straße an')]
#[Assert\NotBlank(message: 'Bitte gib deine Straße an', groups: ['profile'])]
protected ?string $street = null;
#[ORM\Column(type: 'string', nullable: true)]
#[Assert\NotBlank(message: 'Bitte gib deine Postleitzahl an')]
#[Assert\NotBlank(message: 'Bitte gib deine Postleitzahl an', groups: ['profile'])]
protected ?string $postCode = null;
#[ORM\Column(type: 'string', nullable: true)]
#[Assert\NotBlank(message: 'Bitte gib deinen Ort an')]
#[Assert\NotBlank(message: 'Bitte gib deinen Ort an', groups: ['profile'])]
protected ?string $city = null;
#[ORM\Column(type: 'string', nullable: true)]
#[Assert\NotBlank(message: 'Bitte gib deinen Land an', groups: ['profile'])]
protected ?string $country = null;
public function toPayload(): array
+6 -2
View File
@@ -7,20 +7,24 @@ use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Embeddable]
#[AppAssert\BankAccount]
#[AppAssert\BankAccount(message: 'Bitte vervollständige deine Bankverbindung', groups: ['profile_preflight'])]
class BankAccount
{
#[ORM\Column(nullable: true)]
#[Assert\Iban(message: 'Die IBAN ist ungültig')]
#[Assert\NotBlank(message: 'Bitte gib die IBAN an', groups: ['profile'])]
#[Assert\Iban(message: 'Bitte gib eine gültige IBAN an', groups: ['profile'])]
private ?string $iban = null;
#[ORM\Column(nullable: true)]
#[Assert\NotBlank(message: 'Bitte gib den BIC an', groups: ['profile'])]
private ?string $bic = null;
#[ORM\Column(nullable: true)]
#[Assert\NotBlank(message: 'Bitte gib den Namen deiner Bank an', groups: ['profile'])]
private ?string $bank = null;
#[ORM\Column(nullable: true)]
#[Assert\NotBlank(message: 'Bitte gib den Kontoinhaber an', groups: ['profile'])]
private ?string $holder = null;
public function getIban(bool $obfuscated = false): ?string
+5 -3
View File
@@ -2,23 +2,25 @@
namespace App\Entity\Embeddable;
use App\Validator\Constraints as AppAssert;
use App\BusProNet\Model\ProfileResponse;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Embeddable]
#[AppAssert\Communication(message: 'Bitte vervollständige deine Kontaktdaten', groups: ['profile_preflight'])]
class Communication
{
#[ORM\Column(type: 'string', nullable: true)]
protected ?string $phone = null;
#[ORM\Column(type: 'string', nullable: true)]
#[Assert\NotBlank(message: 'Bitte angeben')]
#[Assert\NotBlank(message: 'Bitte gib deine Mobilnummer an', groups: ['profile'])]
protected ?string $mobile = null;
#[ORM\Column(type: 'string', nullable: true)]
#[Assert\Email(mode: 'strict', message: 'Diese E-Mail-Adresse ist ungültig')]
#[Assert\NotBlank(message: 'Bitte angeben')]
#[Assert\Email(mode: 'strict', message: 'Bitte gib eine gültige E-Mail-Adresse an', groups: ['profile'])]
#[Assert\NotBlank(message: 'Bitte gib deine E-Mail-Adresse an', groups: ['profile'])]
protected ?string $email = null;
public function toPayload(): array