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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
/**
* Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
*/
namespace Temando\Shipping\Model\CollectionPoint;
use Magento\Framework\EntityManager\HydratorInterface;
use Magento\Framework\Exception\CouldNotDeleteException;
use Magento\Framework\Exception\CouldNotSaveException;
use Temando\Shipping\Api\CollectionPoint\GuestCartCollectionPointManagementInterface as LegacyManagementInterface;
use Temando\Shipping\Api\Data\CollectionPoint\QuoteCollectionPointInterfaceFactory as LegacyCollectionPointFactory;
use Temando\Shipping\Api\Data\CollectionPoint\SearchRequestInterfaceFactory as LegacySearchRequestFactory;
use Temando\Shipping\Api\Delivery\GuestCartCollectionPointManagementInterface;
/**
* Manage Collection Point Searches
*
* @deprecated since 1.4.0
* @see \Temando\Shipping\Model\Delivery\GuestCartCollectionPointManagement
*
* @package Temando\Shipping\Model
* @author Benjamin Heuer <benjamin.heuer@netresearch.de>
* @author Christoph Aßmann <christoph.assmann@netresearch.de>
* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* @link https://www.temando.com/
*/
class GuestCartCollectionPointManagement implements LegacyManagementInterface
{
/**
* @var HydratorInterface
*/
private $hydrator;
/**
* @var LegacySearchRequestFactory
*/
private $searchRequestFactory;
/**
* @var LegacyCollectionPointFactory
*/
private $collectionPointFactory;
/**
* @var GuestCartCollectionPointManagementInterface
*/
private $collectionPointManagement;
/**
* GuestCartCollectionPointManagement constructor.
*
* @param HydratorInterface $hydrator
* @param LegacySearchRequestFactory $searchRequestFactory
* @param LegacyCollectionPointFactory $collectionPointFactory
* @param GuestCartCollectionPointManagementInterface $collectionPointManagement
*/
public function __construct(
HydratorInterface $hydrator,
LegacySearchRequestFactory $searchRequestFactory,
LegacyCollectionPointFactory $collectionPointFactory,
GuestCartCollectionPointManagementInterface $collectionPointManagement
) {
$this->hydrator = $hydrator;
$this->searchRequestFactory = $searchRequestFactory;
$this->collectionPointFactory = $collectionPointFactory;
$this->collectionPointManagement = $collectionPointManagement;
}
/**
* @param string $cartId
* @param string $countryId
* @param string $postcode
* @return \Temando\Shipping\Api\Data\CollectionPoint\SearchRequestInterface
* @throws CouldNotSaveException
*/
public function saveSearchRequest($cartId, $countryId, $postcode)
{
$legacySearchRequest = $this->searchRequestFactory->create();
$searchRequest = $this->collectionPointManagement->saveSearchRequest($cartId, $countryId, $postcode);
$searchRequestData = $this->hydrator->extract($searchRequest);
$this->hydrator->hydrate($legacySearchRequest, $searchRequestData);
return $legacySearchRequest;
}
/**
* @param string $cartId
* @return bool
* @throws CouldNotDeleteException
*/
public function deleteSearchRequest($cartId)
{
return $this->collectionPointManagement->deleteSearchRequest($cartId);
}
/**
* @param string $cartId
* @return \Temando\Shipping\Api\Data\CollectionPoint\QuoteCollectionPointInterface[]
*/
public function getCollectionPoints($cartId)
{
$legacyCollectionPoints = [];
$collectionPoints = $this->collectionPointManagement->getCollectionPoints($cartId);
foreach ($collectionPoints as $collectionPoint) {
$legacyCollectionPoint = $this->collectionPointFactory->create();
$collectionPointData = $this->hydrator->extract($collectionPoint);
$this->hydrator->hydrate($legacyCollectionPoint, $collectionPointData);
$legacyCollectionPoints[]= $legacyCollectionPoint;
}
return $legacyCollectionPoints;
}
/**
* @param string $cartId
* @param int $entityId
* @return bool
* @throws CouldNotSaveException
*/
public function selectCollectionPoint($cartId, $entityId)
{
return $this->collectionPointManagement->selectCollectionPoint($cartId, $entityId);
}
}