From ae0c19981c3d198e9832ad3bb7a77b55650c04ff Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 5 Dec 2025 15:32:29 +0100 Subject: [PATCH] fix(scheduled): Fix response format Signed-off-by: Joas Schilling --- lib/Controller/ChatController.php | 5 +++-- lib/Model/ScheduledMessage.php | 20 ++------------------ lib/Service/ScheduledMessageService.php | 8 ++++---- 3 files changed, 9 insertions(+), 24 deletions(-) diff --git a/lib/Controller/ChatController.php b/lib/Controller/ChatController.php index c2f81294fb..4adec756fc 100644 --- a/lib/Controller/ChatController.php +++ b/lib/Controller/ChatController.php @@ -366,6 +366,7 @@ class ChatController extends AEnvironmentAwareOCSController { $scheduledMessages = $this->scheduledMessageManager->getMessages( $this->room, $this->participant, + $this->getResponseFormat(), ); return new DataResponse($scheduledMessages, Http::STATUS_OK); @@ -465,7 +466,7 @@ class ChatController extends AEnvironmentAwareOCSController { return new DataResponse(['error' => 'message'], Http::STATUS_REQUEST_ENTITY_TOO_LARGE); } - $data = $this->scheduledMessageManager->parseScheduledMessage($scheduledMessage, $parentMessage); + $data = $this->scheduledMessageManager->parseScheduledMessage($this->getResponseFormat(), $scheduledMessage, $parentMessage); return new DataResponse($data, Http::STATUS_CREATED); } @@ -545,7 +546,7 @@ class ChatController extends AEnvironmentAwareOCSController { } } - $data = $this->scheduledMessageManager->parseScheduledMessage($scheduledMessage, $parentMessage); + $data = $this->scheduledMessageManager->parseScheduledMessage($this->getResponseFormat(), $scheduledMessage, $parentMessage); return new DataResponse($data, Http::STATUS_ACCEPTED); } diff --git a/lib/Model/ScheduledMessage.php b/lib/Model/ScheduledMessage.php index 68ed5bebd0..e74fdb58c2 100644 --- a/lib/Model/ScheduledMessage.php +++ b/lib/Model/ScheduledMessage.php @@ -38,7 +38,7 @@ use OCP\DB\Types; * * @psalm-import-type TalkScheduledMessage from ResponseDefinitions */ -class ScheduledMessage extends Entity implements \JsonSerializable { +class ScheduledMessage extends Entity { public const METADATA_THREAD_TITLE = 'threadTitle'; public const METADATA_THREAD_ID = 'threadId'; public const METADATA_SILENT = 'silent'; @@ -95,22 +95,6 @@ class ScheduledMessage extends Entity implements \JsonSerializable { $this->markFieldUpdated('message'); } - #[\Override] - public function jsonSerialize(): array { - return [ - 'roomId' => $this->getRoomId(), - 'actorId' => $this->getActorId(), - 'actorType' => $this->getActorType(), - 'threadId' => $this->getThreadId(), - 'parentId' => $this->getParentId(), - 'message' => $this->getMessage(), - 'messageType' => $this->getMessageType(), - 'createdAt' => $this->getCreatedAt()->getTimestamp(), - 'sendAt' => $this->getSendAt()?->getTimestamp(), - 'metaData' => $this->getDecodedMetaData(), - ]; - } - /** * @param string $format * @psalm-param 'json'|'xml' $format @@ -131,7 +115,7 @@ class ScheduledMessage extends Entity implements \JsonSerializable { ]; if ($parent !== null) { - $data['parent'] = $parent->toArray('json', $thread); + $data['parent'] = $parent->toArray($format, $thread); } if ($thread !== null) { diff --git a/lib/Service/ScheduledMessageService.php b/lib/Service/ScheduledMessageService.php index eb09427788..c8a3dc1a04 100644 --- a/lib/Service/ScheduledMessageService.php +++ b/lib/Service/ScheduledMessageService.php @@ -128,7 +128,7 @@ class ScheduledMessageService { /** * @return list */ - public function getMessages(Room $chat, Participant $participant): array { + public function getMessages(Room $chat, Participant $participant, string $format): array { $result = $this->scheduledMessageMapper->findByRoomAndActor( $chat, $participant->getAttendee()->getActorType(), @@ -166,13 +166,13 @@ class ScheduledMessageService { } else { $thread = Thread::fromRow($thread); } - $messages[] = $this->parseScheduledMessage($scheduleMessage, $parent, $thread); + $messages[] = $this->parseScheduledMessage($format, $scheduleMessage, $parent, $thread); } return $messages; } - public function parseScheduledMessage(ScheduledMessage $message, ?Message $parentMessage, ?Thread $thread = null): array { + public function parseScheduledMessage(string $format, ScheduledMessage $message, ?Message $parentMessage, ?Thread $thread = null): array { if ($thread === null && $message->getThreadId() !== Thread::THREAD_NONE && $message->getThreadId() !== Thread::THREAD_CREATE @@ -187,7 +187,7 @@ class ScheduledMessageService { $thread = null; } } - return $message->toArray($parentMessage, $thread ?? null); + return $message->toArray($format, $parentMessage, $thread ?? null); } public function getScheduledMessageCount(Room $chat, Participant $participant): int {