* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @link https://www.temando.com/ */ class GuestCartPickupLocationManagement implements GuestCartPickupLocationManagementInterface { /** * @var CheckoutGuestCartPickupLocationManagement */ private $guestCartPickupLocationManagement; /** * @var GuestShippingAddressManagementInterface */ private $addressManagement; /** * @var PickupLocationManagement */ private $pickupLocationManagement; /** * GuestCartPickupLocationManagement constructor. * * @param CheckoutGuestCartPickupLocationManagement $guestCartPickupLocationManagement * @param GuestShippingAddressManagementInterface $addressManagement * @param PickupLocationManagement $pickupLocationManagement */ public function __construct( CheckoutGuestCartPickupLocationManagement $guestCartPickupLocationManagement, GuestShippingAddressManagementInterface $addressManagement, PickupLocationManagement $pickupLocationManagement ) { $this->guestCartPickupLocationManagement = $guestCartPickupLocationManagement; $this->addressManagement = $addressManagement; $this->pickupLocationManagement = $pickupLocationManagement; } /** * @param string $cartId * @return QuotePickupLocationInterface[] * @throws NoSuchEntityException */ public function getPickupLocations($cartId) { return $this->guestCartPickupLocationManagement->getPickupLocations($cartId); } /** * @param string $cartId * @param int $entityId * @return bool * @throws NoSuchEntityException * @throws CouldNotSaveException */ public function selectPickupLocation($cartId, $entityId) { $shippingAddress = $this->addressManagement->get($cartId); return $this->pickupLocationManagement->selectPickupLocation($shippingAddress->getId(), $entityId); } }