From ae23695667939a810f3a4cfb5f03e089a2c552e2 Mon Sep 17 00:00:00 2001 From: Dariusz Rup Date: Wed, 29 Jan 2025 11:15:27 +0100 Subject: [PATCH] OP-558 - introduce FraudSuspicionCommonDTO and refactor converter --- .../FraudSuspicionCommonModelConverter.php | 93 ++++++++++--------- src/Dto/FraudSuspicionCommonDTO.php | 34 +++++++ 2 files changed, 83 insertions(+), 44 deletions(-) create mode 100644 src/Dto/FraudSuspicionCommonDTO.php diff --git a/src/Converter/FraudSuspicionCommonModelConverter.php b/src/Converter/FraudSuspicionCommonModelConverter.php index 9f6dfe1..047caa3 100644 --- a/src/Converter/FraudSuspicionCommonModelConverter.php +++ b/src/Converter/FraudSuspicionCommonModelConverter.php @@ -11,6 +11,7 @@ namespace BitBag\SyliusBlacklistPlugin\Converter; +use BitBag\SyliusBlacklistPlugin\Dto\FraudSuspicionCommonDTO; use BitBag\SyliusBlacklistPlugin\Entity\FraudPrevention\FraudSuspicion; use BitBag\SyliusBlacklistPlugin\Entity\FraudPrevention\FraudSuspicionInterface; use BitBag\SyliusBlacklistPlugin\Exception\WrongAddressTypeException; @@ -28,23 +29,25 @@ public function __construct( public function convertFraudSuspicionObject(FraudSuspicionInterface $fraudSuspicion): FraudSuspicionCommonModelInterface { + $dto = new FraudSuspicionCommonDTO( + order: $fraudSuspicion->getOrder(), + customer: $fraudSuspicion->getCustomer(), + company: $fraudSuspicion->getCompany(), + firstName: $fraudSuspicion->getFirstName(), + lastName: $fraudSuspicion->getLastName(), + email: $fraudSuspicion->getEmail(), + phoneNumber: $fraudSuspicion->getPhoneNumber(), + street: $fraudSuspicion->getStreet(), + city: $fraudSuspicion->getCity(), + province: $fraudSuspicion->getProvince(), + country: $fraudSuspicion->getCountry(), + postcode: $fraudSuspicion->getPostcode(), + customerIp: $fraudSuspicion->getCustomerIp(), + ); + return $this->populateFraudSuspicionCommonModel( $this->fraudSuspicionCommonModelFactory->createNew(), - [ - 'order' => $fraudSuspicion->getOrder(), - 'customer' => $fraudSuspicion->getCustomer(), - 'company' => $fraudSuspicion->getCompany(), - 'firstName' => $fraudSuspicion->getFirstName(), - 'lastName' => $fraudSuspicion->getLastName(), - 'email' => $fraudSuspicion->getEmail(), - 'phoneNumber' => $fraudSuspicion->getPhoneNumber(), - 'street' => $fraudSuspicion->getStreet(), - 'city' => $fraudSuspicion->getCity(), - 'province' => $fraudSuspicion->getProvince(), - 'country' => $fraudSuspicion->getCountry(), - 'postcode' => $fraudSuspicion->getPostcode(), - 'customerIp' => $fraudSuspicion->getCustomerIp(), - ], + $dto, ); } @@ -52,23 +55,25 @@ public function convertOrderObject(OrderInterface $order, string $addressType): { $address = $this->getAddressFromOrder($order, $addressType); + $dto = new FraudSuspicionCommonDTO( + order: $order, + customer: $order->getCustomer(), + company: $address->getCompany(), + firstName: $address->getFirstName(), + lastName: $address->getLastName(), + email: $order->getCustomer()?->getEmail(), + phoneNumber: $address->getPhoneNumber(), + street: $address->getStreet(), + city: $address->getCity(), + province: $address->getProvinceName(), + country: $address->getCountryCode(), + postcode: $address->getPostcode(), + customerIp: $order->getCustomerIp(), + ); + return $this->populateFraudSuspicionCommonModel( $this->fraudSuspicionCommonModelFactory->createNew(), - [ - 'order' => $order, - 'customer' => $order->getCustomer(), - 'company' => $address->getCompany(), - 'firstName' => $address->getFirstName(), - 'lastName' => $address->getLastName(), - 'email' => $order->getCustomer()?->getEmail(), - 'phoneNumber' => $address->getPhoneNumber(), - 'street' => $address->getStreet(), - 'city' => $address->getCity(), - 'province' => $address->getProvinceName(), - 'country' => $address->getCountryCode(), - 'postcode' => $address->getPostcode(), - 'customerIp' => $order->getCustomerIp(), - ], + $dto, ); } @@ -83,21 +88,21 @@ private function getAddressFromOrder(OrderInterface $order, string $addressType) private function populateFraudSuspicionCommonModel( FraudSuspicionCommonModelInterface $model, - array $data, + FraudSuspicionCommonDTO $dto, ): FraudSuspicionCommonModelInterface { - $model->setOrder($data['order']); - $model->setCustomer($data['customer']); - $model->setCompany($data['company']); - $model->setFirstName($data['firstName']); - $model->setLastName($data['lastName']); - $model->setEmail($data['email']); - $model->setPhoneNumber($data['phoneNumber']); - $model->setStreet($data['street']); - $model->setCity($data['city']); - $model->setProvince($data['province']); - $model->setCountry($data['country']); - $model->setPostcode($data['postcode']); - $model->setCustomerIp($data['customerIp']); + $model->setOrder($dto->order); + $model->setCustomer($dto->customer); + $model->setCompany($dto->company); + $model->setFirstName($dto->firstName); + $model->setLastName($dto->lastName); + $model->setEmail($dto->email); + $model->setPhoneNumber($dto->phoneNumber); + $model->setStreet($dto->street); + $model->setCity($dto->city); + $model->setProvince($dto->province); + $model->setCountry($dto->country); + $model->setPostcode($dto->postcode); + $model->setCustomerIp($dto->customerIp); return $model; } diff --git a/src/Dto/FraudSuspicionCommonDTO.php b/src/Dto/FraudSuspicionCommonDTO.php new file mode 100644 index 0000000..e6dcdec --- /dev/null +++ b/src/Dto/FraudSuspicionCommonDTO.php @@ -0,0 +1,34 @@ +