1
0
Fork 0
mirror of synced 2024-07-06 07:00:56 +12:00

makes messaging worker compatible with new messaging lib version

This commit is contained in:
Prateek Banga 2023-12-19 18:28:25 +05:30
parent 23b39fee02
commit 1957bc57c2
3 changed files with 29 additions and 25 deletions

36
composer.lock generated
View file

@ -2906,16 +2906,16 @@
}, },
{ {
"name": "utopia-php/vcs", "name": "utopia-php/vcs",
"version": "0.6.2", "version": "0.6.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/utopia-php/vcs.git", "url": "https://github.com/utopia-php/vcs.git",
"reference": "f135291b87cb45335fc6608722e7f89894bc33ee" "reference": "86c3f42a2624bcccb7a67b74dcd7bd3a31fc2e4b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/utopia-php/vcs/zipball/f135291b87cb45335fc6608722e7f89894bc33ee", "url": "https://api.github.com/repos/utopia-php/vcs/zipball/86c3f42a2624bcccb7a67b74dcd7bd3a31fc2e4b",
"reference": "f135291b87cb45335fc6608722e7f89894bc33ee", "reference": "86c3f42a2624bcccb7a67b74dcd7bd3a31fc2e4b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2949,9 +2949,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/utopia-php/vcs/issues", "issues": "https://github.com/utopia-php/vcs/issues",
"source": "https://github.com/utopia-php/vcs/tree/0.6.2" "source": "https://github.com/utopia-php/vcs/tree/0.6.3"
}, },
"time": "2023-11-08T15:36:03+00:00" "time": "2023-12-14T06:53:39+00:00"
}, },
{ {
"name": "utopia-php/websocket", "name": "utopia-php/websocket",
@ -3489,16 +3489,16 @@
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v4.17.1", "version": "v4.18.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999",
"reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3539,9 +3539,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/nikic/PHP-Parser/issues", "issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0"
}, },
"time": "2023-08-13T19:53:39+00:00" "time": "2023-12-10T21:03:43+00:00"
}, },
{ {
"name": "phar-io/manifest", "name": "phar-io/manifest",
@ -3893,16 +3893,16 @@
}, },
{ {
"name": "phpstan/phpdoc-parser", "name": "phpstan/phpdoc-parser",
"version": "1.24.4", "version": "1.24.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git", "url": "https://github.com/phpstan/phpdoc-parser.git",
"reference": "6bd0c26f3786cd9b7c359675cb789e35a8e07496" "reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6bd0c26f3786cd9b7c359675cb789e35a8e07496", "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fedf211ff14ec8381c9bf5714e33a7a552dd1acc",
"reference": "6bd0c26f3786cd9b7c359675cb789e35a8e07496", "reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3934,9 +3934,9 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types", "description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": { "support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues", "issues": "https://github.com/phpstan/phpdoc-parser/issues",
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.4" "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.5"
}, },
"time": "2023-11-26T18:29:22+00:00" "time": "2023-12-16T09:33:33+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",

View file

@ -123,7 +123,9 @@ class Messaging extends Action
/** /**
* @var Document[] $providers * @var Document[] $providers
*/ */
$providers = []; $providers = [
$primaryProvider->getId() => $primaryProvider
];
foreach ($recipients as $recipient) { foreach ($recipients as $recipient) {
$providerId = $recipient->getAttribute('providerId'); $providerId = $recipient->getAttribute('providerId');
@ -144,13 +146,16 @@ class Messaging extends Action
*/ */
$results = batch(\array_map(function ($providerId) use ($identifiersByProviderId, $providers, $primaryProvider, $message, $dbForProject) { $results = batch(\array_map(function ($providerId) use ($identifiersByProviderId, $providers, $primaryProvider, $message, $dbForProject) {
return function () use ($providerId, $identifiersByProviderId, $providers, $primaryProvider, $message, $dbForProject) { return function () use ($providerId, $identifiersByProviderId, $providers, $primaryProvider, $message, $dbForProject) {
if ($primaryProvider->getId() === $providerId) { if (\array_key_exists($providerId, $providers)) {
$provider = $primaryProvider; $provider = $providers[$providerId];
} else { }
else {
$provider = $dbForProject->getDocument('providers', $providerId, [Query::equal('enabled', [true])]); $provider = $dbForProject->getDocument('providers', $providerId, [Query::equal('enabled', [true])]);
if ($provider->isEmpty()) { if ($provider->isEmpty()) {
$provider = $primaryProvider; $provider = $primaryProvider;
} else {
$providers[$providerId] = $provider;
} }
} }
@ -183,7 +188,7 @@ class Messaging extends Action
try { try {
$response = new Response($provider->getAttribute('type')); $response = new Response($provider->getAttribute('type'));
$response->fromArray(\json_decode($adapter->send($data))); $response->fromArray($adapter->send($data));
$deliveredTotal += $response->getDeliveredTo(); $deliveredTotal += $response->getDeliveredTo();
$details[] = $response->getDetails(); $details[] = $response->getDetails();
@ -193,7 +198,7 @@ class Messaging extends Action
} }
// Deleting push targets when token has expired. // Deleting push targets when token has expired.
if ($detail['error'] === 'Expired token.') { if ($detail['error'] === 'Expired device token.') {
$target = $dbForProject->findOne('targets', [Query::equal('identifier', [$detail['recipient']])]); $target = $dbForProject->findOne('targets', [Query::equal('identifier', [$detail['recipient']])]);
if ($target instanceof Document && !$target->isEmpty()) { if ($target instanceof Document && !$target->isEmpty()) {
$dbForProject->deleteDocument('targets', $target->getId()); $dbForProject->deleteDocument('targets', $target->getId());

View file

@ -231,7 +231,6 @@ trait MessagingBase
], [ ], [
'topicId' => ID::unique(), 'topicId' => ID::unique(),
'name' => 'my-app', 'name' => 'my-app',
'description' => 'web app'
]); ]);
$this->assertEquals(201, $response['headers']['status-code']); $this->assertEquals(201, $response['headers']['status-code']);
$this->assertEquals('my-app', $response['body']['name']); $this->assertEquals('my-app', $response['body']['name']);