AddressBuilder.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Signifyd\Model\SignifydGateway\Request;
  7. use Magento\Sales\Api\Data\OrderAddressInterface;
  8. /**
  9. * Prepare address data
  10. */
  11. class AddressBuilder
  12. {
  13. /**
  14. * Returns address data params based on OrderAddressInterface
  15. *
  16. * @param OrderAddressInterface $address
  17. * @return array
  18. */
  19. public function build(OrderAddressInterface $address)
  20. {
  21. return [
  22. 'streetAddress' => $this->getStreetLine(1, $address->getStreet()),
  23. 'unit' => $this->getStreetLine(2, $address->getStreet()),
  24. 'city' => $address->getCity(),
  25. 'provinceCode' => $address->getRegionCode(),
  26. 'postalCode' => $address->getPostcode(),
  27. 'countryCode' => $address->getCountryId()
  28. ];
  29. }
  30. /**
  31. * Get street line by number
  32. *
  33. * @param int $number
  34. * @param string[]|null $street
  35. * @return string
  36. */
  37. private function getStreetLine($number, $street)
  38. {
  39. $lines = is_array($street) ? $street : [];
  40. return $lines[$number - 1] ?? '';
  41. }
  42. }