mirror of
https://github.com/nextcloud/spreed.git
synced 2025-12-17 21:12:20 +01:00
fix(scheduled): Fix response format
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
494ce57ce5
commit
ae0c19981c
3 changed files with 9 additions and 24 deletions
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ class ScheduledMessageService {
|
|||
/**
|
||||
* @return list<TalkScheduledMessage>
|
||||
*/
|
||||
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 {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue