@@ -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