AddressBuilder.php 1.15 KB
Newer Older
Ketan's avatar
Ketan committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\Signifyd\Model\SignifydGateway\Request;

use Magento\Sales\Api\Data\OrderAddressInterface;

/**
 * Prepare address data
 */
class AddressBuilder
{
    /**
     * Returns address data params based on OrderAddressInterface
     *
     * @param OrderAddressInterface $address
     * @return array
     */
    public function build(OrderAddressInterface $address)
    {
        return [
            'streetAddress' => $this->getStreetLine(1, $address->getStreet()),
            'unit' => $this->getStreetLine(2, $address->getStreet()),
            'city' => $address->getCity(),
            'provinceCode' => $address->getRegionCode(),
            'postalCode' => $address->getPostcode(),
            'countryCode' => $address->getCountryId()
        ];
    }

    /**
     * Get street line by number
     *
     * @param int $number
     * @param string[]|null $street
     * @return string
     */
    private function getStreetLine($number, $street)
    {
        $lines = is_array($street) ? $street : [];

        return $lines[$number - 1] ?? '';
    }
}