@@ -82,7 +82,7 @@ public function retrieveSubscriptionId(array $context, ?array $result, ?Operatio
82
82
public function getPushPayloads(object $object, string $type): array
83
83
{
84
84
if ('delete' === $type) {
85
- $payloads = $this->getDeletePushPayloads($object);
85
+ $payloads = $this->getDeletePushPayloads($object);
86
86
} else {
87
87
$payloads = $this->getCreatedOrUpdatedPayloads($object);
88
88
}
@@ -119,10 +119,11 @@ private function encodeIriToCacheKey(string $iri): string
119
119
120
120
private function getResourceId(mixed $privateField, object $previousObject): string
121
121
{
122
- $id = $previousObject->{'get' . ucfirst($privateField)}()->getId();
122
+ $id = $previousObject->{'get'. ucfirst($privateField)}()->getId();
123
123
if ($id instanceof \Stringable) {
124
- return (string)$id;
124
+ return (string) $id;
125
125
}
126
+
126
127
return $id;
127
128
}
128
129
@@ -172,35 +173,35 @@ private function getCreatedOrUpdatedPayloads(object $object): array
172
173
$payloads[] = [$subscriptionId, $data];
173
174
}
174
175
}
176
+
175
177
return $payloads;
176
178
}
177
179
178
180
private function getDeletePushPayloads(object $object): array
179
181
{
180
182
$iri = $object->id;
181
- $subscriptions = $this->getSubscriptionsFromIri($iri);
182
- if ($subscriptions === []) {
183
- // Get subscriptions from collection Iri
184
- $subscriptions = $this->getSubscriptionsFromIri($this->getCollectionIri($iri));
185
- }
183
+ $subscriptions = array_merge(
184
+ $this->getSubscriptionsFromIri($iri),
185
+ $this->getSubscriptionsFromIri($this->getCollectionIri($iri))
186
+ );
186
187
187
188
$payloads = [];
188
189
foreach ($subscriptions as [$subscriptionId, $subscriptionFields, $subscriptionResult]) {
189
190
$payloads[] = [$subscriptionId, ['type' => 'delete', 'payload' => $object]];
190
191
}
191
192
$this->removeItemFromSubscriptionCache($iri);
193
+
192
194
return $payloads;
193
195
}
194
196
195
197
private function updateSubscriptionItemCacheData(
196
- string $iri,
197
- array $fields,
198
- ?array $result,
199
- bool $private,
200
- array $privateFields,
201
- ?object $previousObject
202
- ): string
203
- {
198
+ string $iri,
199
+ array $fields,
200
+ ?array $result,
201
+ bool $private,
202
+ array $privateFields,
203
+ ?object $previousObject,
204
+ ): string {
204
205
$subscriptionsCacheItem = $this->subscriptionsCache->getItem($this->encodeIriToCacheKey($iri));
205
206
$subscriptions = [];
206
207
if ($subscriptionsCacheItem->isHit()) {
@@ -219,25 +220,24 @@ private function updateSubscriptionItemCacheData(
219
220
unset($result['clientSubscriptionId']);
220
221
if ($private && $privateFields && $previousObject) {
221
222
foreach ($privateFields as $privateField) {
222
- unset($result['__private_field_' . $privateField]);
223
+ unset($result['__private_field_'. $privateField]);
223
224
}
224
225
}
225
226
$subscriptions[] = [$subscriptionId, $fields, $result];
226
227
$subscriptionsCacheItem->set($subscriptions);
227
228
$this->subscriptionsCache->save($subscriptionsCacheItem);
229
+
228
230
return $subscriptionId;
229
231
}
230
232
231
-
232
-
233
233
private function updateSubscriptionCollectionCacheData(
234
234
string $iri,
235
- array $fields,
236
- ): string
237
- {
235
+ array $fields,
236
+ ): string {
238
237
$subscriptionCollectionCacheItem = $this->subscriptionsCache->getItem(
239
238
$this->encodeIriToCacheKey($this->getCollectionIri($iri)),
240
239
);
240
+ $collectionSubscriptions = [];
241
241
if ($subscriptionCollectionCacheItem->isHit()) {
242
242
$collectionSubscriptions = $subscriptionCollectionCacheItem->get();
243
243
foreach ($collectionSubscriptions as [$subscriptionId, $subscriptionFields]) {
@@ -247,9 +247,10 @@ private function updateSubscriptionCollectionCacheData(
247
247
}
248
248
}
249
249
$subscriptionId = $this->subscriptionIdentifierGenerator->generateSubscriptionIdentifier($fields + ['__collection' => true]);
250
- $subscriptions [] = [$subscriptionId, $fields, [] ];
251
- $subscriptionCollectionCacheItem->set($subscriptions );
250
+ $collectionSubscriptions [] = [$subscriptionId, $fields];
251
+ $subscriptionCollectionCacheItem->set($collectionSubscriptions );
252
252
$this->subscriptionsCache->save($subscriptionCollectionCacheItem);
253
+
253
254
return $subscriptionId;
254
255
}
255
256
}
0 commit comments