From 18603ac2668410cf765fd3e0a9e2e1b9a7c4a830 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Tue, 2 Apr 2024 08:14:25 -0700 Subject: [PATCH] fix(messaging): fix delete message event not firing The parameter and paylaod was missing from the request so it failed to trigger. Manually setting the payload is important because the payload isn't in the response body like it is for create/update operations. --- app/controllers/api/messaging.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/messaging.php b/app/controllers/api/messaging.php index 54298a0c8a..36ebaeec60 100644 --- a/app/controllers/api/messaging.php +++ b/app/controllers/api/messaging.php @@ -3819,7 +3819,7 @@ App::delete('/v1/messaging/messages/:messageId') ->desc('Delete message') ->groups(['api', 'messaging']) ->label('audits.event', 'message.delete') - ->label('audits.resource', 'message/{request.route.messageId}') + ->label('audits.resource', 'message/{request.messageId}') ->label('event', 'messages.[messageId].delete') ->label('scope', 'messages.write') ->label('sdk.auth', [APP_AUTH_TYPE_ADMIN, APP_AUTH_TYPE_KEY]) @@ -3832,8 +3832,9 @@ App::delete('/v1/messaging/messages/:messageId') ->param('messageId', '', new UID(), 'Message ID.') ->inject('dbForProject') ->inject('dbForConsole') + ->inject('queueForEvents') ->inject('response') - ->action(function (string $messageId, Database $dbForProject, Database $dbForConsole, Response $response) { + ->action(function (string $messageId, Database $dbForProject, Database $dbForConsole, Event $queueForEvents, Response $response) { $message = $dbForProject->getDocument('messages', $messageId); if ($message->isEmpty()) { @@ -3868,5 +3869,9 @@ App::delete('/v1/messaging/messages/:messageId') $dbForProject->deleteDocument('messages', $message->getId()); + $queueForEvents + ->setParam('messageId', $message->getId()) + ->setPayload($response->output($message, Response::MODEL_MESSAGE)); + $response->noContent(); });