Failed Conditions
Push — master ( ae631c...a04781 )
by
unknown
52:50 queued 12:37
created

ProductPageSearchFacade::publishWithTimestamp()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace Spryker\Zed\ProductPageSearch\Business;
9
10
use Generated\Shared\Transfer\FilterTransfer;
11
use Generated\Shared\Transfer\LocaleTransfer;
12
use Generated\Shared\Transfer\PageMapTransfer;
13
use Generated\Shared\Transfer\ProductConcretePageSearchTransfer;
14
use Generated\Shared\Transfer\ProductPageLoadTransfer;
15
use Spryker\Zed\Kernel\Business\AbstractFacade;
16
use Spryker\Zed\ProductPageSearchExtension\Dependency\PageMapBuilderInterface;
17
18
/**
19
 * @method \Spryker\Zed\ProductPageSearch\Business\ProductPageSearchBusinessFactory getFactory()
20
 * @method \Spryker\Zed\ProductPageSearch\Persistence\ProductPageSearchEntityManagerInterface getEntityManager()
21
 * @method \Spryker\Zed\ProductPageSearch\Persistence\ProductPageSearchRepositoryInterface getRepository()
22
 */
23
class ProductPageSearchFacade extends AbstractFacade implements ProductPageSearchFacadeInterface
24
{
25
    /**
26
     * {@inheritDoc}
27
     *
28
     * @api
29
     *
30
     * @param array<int> $productAbstractIds
31
     *
32
     * @return void
33
     */
34
    public function publish(array $productAbstractIds)
35
    {
36
        $this->getFactory()
37
            ->createProductAbstractPagePublisher()
38
            ->publish($productAbstractIds);
39
    }
40
41
    /**
42
     * {@inheritDoc}
43
     *
44
     * @api
45
     *
46
     * @param array<int, int> $productAbstractIdTimestampMap
47
     *
48
     * @return void
49
     */
50
    public function publishWithTimestamp(array $productAbstractIdTimestampMap): void
51
    {
52
        $this->getFactory()
53
            ->createProductAbstractPagePublisher()
54
            ->publishWithTimestamps($productAbstractIdTimestampMap);
55
    }
56
57
    /**
58
     * {@inheritDoc}
59
     *
60
     * @api
61
     *
62
     * @param array<int> $productAbstractIds
63
     * @param array<string> $pageDataExpanderPluginNames
64
     *
65
     * @return void
66
     */
67
    public function refresh(array $productAbstractIds, $pageDataExpanderPluginNames = [])
68
    {
69
        $this->getFactory()
70
            ->createProductAbstractPagePublisher()
71
            ->refresh($productAbstractIds, $pageDataExpanderPluginNames);
72
    }
73
74
    /**
75
     * {@inheritDoc}
76
     *
77
     * @api
78
     *
79
     * @param array<int> $productAbstractIds
80
     *
81
     * @return void
82
     */
83
    public function unpublish(array $productAbstractIds)
84
    {
85
        $this->getFactory()
86
            ->createProductAbstractPagePublisher()
87
            ->unpublish($productAbstractIds);
88
    }
89
90
    /**
91
     * {@inheritDoc}
92
     *
93
     * @api
94
     *
95
     * @param array<int> $productIds
96
     *
97
     * @return void
98
     */
99
    public function publishProductConcretes(array $productIds): void
100
    {
101
        $this->getFactory()
102
            ->createProductConcretePageSearchPublisher()
103
            ->publish($productIds);
104
    }
105
106
    /**
107
     * {@inheritDoc}
108
     *
109
     * @api
110
     *
111
     * @param array<int> $productIds
112
     *
113
     * @return void
114
     */
115
    public function unpublishProductConcretes(array $productIds): void
116
    {
117
        $this->getFactory()
118
            ->createProductConcretePageSearchPublisher()
119
            ->unpublish($productIds);
120
    }
121
122
    /**
123
     * {@inheritDoc}
124
     *
125
     * @api
126
     *
127
     * @param array $productAbstractStoreMap Keys are product abstract IDs, values are store IDs.
128
     *
129
     * @return void
130
     */
131
    public function unpublishProductConcretePageSearches(array $productAbstractStoreMap): void
132
    {
133
        $this->getFactory()
134
            ->createProductConcretePageSearchUnpublisher()
135
            ->unpublishByAbstractProductsAndStores($productAbstractStoreMap);
136
    }
137
138
    /**
139
     * {@inheritDoc}
140
     *
141
     * @api
142
     *
143
     * @param array<int> $productIds
144
     *
145
     * @return array<\Generated\Shared\Transfer\ProductConcretePageSearchTransfer>
146
     */
147
    public function getProductConcretePageSearchTransfersByProductIds(array $productIds): array
148
    {
149
        return $this->getFactory()
150
            ->createProductConcretePageSearchReader()
151
            ->getProductConcretePageSearchTransfersByProductIds($productIds);
152
    }
153
154
    /**
155
     * {@inheritDoc}
156
     *
157
     * @api
158
     *
159
     * @param array<int> $productAbstractIds
160
     *
161
     * @return void
162
     */
163
    public function publishProductConcretePageSearchesByProductAbstractIds(array $productAbstractIds): void
164
    {
165
        $this->getFactory()
166
            ->createProductConcretePageSearchPublisher()
167
            ->publishProductConcretePageSearchesByProductAbstractIds($productAbstractIds);
168
    }
169
170
    /**
171
     * {@inheritDoc}
172
     *
173
     * @api
174
     *
175
     * @param \Generated\Shared\Transfer\ProductConcretePageSearchTransfer $productConcretePageSearchTransfer
176
     *
177
     * @return \Generated\Shared\Transfer\ProductConcretePageSearchTransfer
178
     */
179
    public function expandProductConcretePageSearchTransferWithProductImages(
180
        ProductConcretePageSearchTransfer $productConcretePageSearchTransfer
181
    ): ProductConcretePageSearchTransfer {
182
        return $this->getFactory()
183
            ->createProductConcretePageSearchExpander()
184
            ->expandProductConcretePageSearchTransferWithProductImages($productConcretePageSearchTransfer);
185
    }
186
187
    /**
188
     * {@inheritDoc}
189
     *
190
     * @api
191
     *
192
     * @param \Generated\Shared\Transfer\PageMapTransfer $pageMapTransfer
193
     * @param \Spryker\Zed\ProductPageSearchExtension\Dependency\PageMapBuilderInterface $pageMapBuilder
194
     * @param array<string, mixed> $productData
195
     * @param \Generated\Shared\Transfer\LocaleTransfer $localeTransfer
196
     *
197
     * @return \Generated\Shared\Transfer\PageMapTransfer
198
     */
199
    public function expandProductPageMapWithCategoryData(
200
        PageMapTransfer $pageMapTransfer,
201
        PageMapBuilderInterface $pageMapBuilder,
202
        array $productData,
203
        LocaleTransfer $localeTransfer
204
    ): PageMapTransfer {
205
        return $this->getFactory()
206
            ->createProductPageMapCategoryExpander()
207
            ->expandProductPageMapWithCategoryData(
208
                $pageMapTransfer,
209
                $pageMapBuilder,
210
                $productData,
211
                $localeTransfer,
212
            );
213
    }
214
215
    /**
216
     * {@inheritDoc}
217
     *
218
     * @api
219
     *
220
     * @param array<int> $priceProductStoreIds
221
     *
222
     * @return array<int>
223
     */
224
    public function getProductAbstractIdsByPriceProductStoreIds(array $priceProductStoreIds): array
225
    {
226
        return $this->getRepository()->getProductAbstractIdsByPriceProductStoreIds($priceProductStoreIds);
227
    }
228
229
    /**
230
     * {@inheritDoc}
231
     *
232
     * @api
233
     *
234
     * @param \Generated\Shared\Transfer\ProductPageLoadTransfer $productPageLoadTransfer
235
     *
236
     * @return \Generated\Shared\Transfer\ProductPageLoadTransfer
237
     */
238
    public function expandProductPageLoadTransferWithPriceData(ProductPageLoadTransfer $productPageLoadTransfer): ProductPageLoadTransfer
239
    {
240
        return $this->getFactory()->createPriceProductPageExpander()->expandProductPageLoadTransferWithPricesData($productPageLoadTransfer);
241
    }
242
243
    /**
244
     * {@inheritDoc}
245
     *
246
     * @api
247
     *
248
     * @param \Generated\Shared\Transfer\FilterTransfer $filterTransfer
249
     * @param array<int> $productIds
250
     *
251
     * @return array<\Generated\Shared\Transfer\SynchronizationDataTransfer>
252
     */
253
    public function getSynchronizationDataTransfersByFilterAndProductIds(FilterTransfer $filterTransfer, array $productIds = []): array
254
    {
255
        return $this->getRepository()
256
            ->getSynchronizationDataTransfersByFilterAndProductIds($filterTransfer, $productIds);
257
    }
258
259
    /**
260
     * {@inheritDoc}
261
     *
262
     * @api
263
     *
264
     * @return void
265
     */
266
    public function refreshProductAbstractPage(): void
267
    {
268
        $this->getFactory()
269
            ->createProductAbstractPageRefresher()
270
            ->refresh();
271
    }
272
273
    /**
274
     * {@inheritDoc}
275
     *
276
     * @api
277
     *
278
     * @param array<\Generated\Shared\Transfer\EventEntityTransfer> $eventEntityTransfers
279
     *
280
     * @return void
281
     */
282
    public function writeProductConcretePageSearchCollectionByProductEvents(array $eventEntityTransfers): void
283
    {
284
        $this->getFactory()
285
            ->createProductConcretePageSearchByProductEventsWriter()
286
            ->writeProductConcretePageSearchCollectionByProductEvents($eventEntityTransfers);
287
    }
288
289
    /**
290
     * {@inheritDoc}
291
     *
292
     * @api
293
     *
294
     * @param list<\Generated\Shared\Transfer\EventEntityTransfer> $eventEntityTransfers
295
     *
296
     * @return void
297
     */
298
    public function writeProductAbstractPageSearchCollectionByProductImageSetToProductImageEvents(array $eventEntityTransfers): void
299
    {
300
        $this->getFactory()
301
            ->createProductAbstractPageSearchWriter()
302
            ->writeProductAbstractPageSearchCollectionByProductImageSetToProductImageEvents($eventEntityTransfers);
303
    }
304
305
    /**
306
     * {@inheritDoc}
307
     *
308
     * @api
309
     *
310
     * @param list<\Generated\Shared\Transfer\EventEntityTransfer> $eventEntityTransfers
311
     *
312
     * @return void
313
     */
314
    public function writeProductAbstractPageSearchCollectionByCategoryStoreEvents(array $eventEntityTransfers): void
315
    {
316
        $this->getFactory()
317
            ->createProductAbstractPageSearchWriter()
318
            ->writeProductAbstractPageSearchCollectionByCategoryStoreEvents($eventEntityTransfers);
319
    }
320
}
321