Page MenuHomePhorge

D5749.1765050660.diff
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

D5749.1765050660.diff

diff --git a/keyserver/src/responders/message-responders.js b/keyserver/src/responders/message-responders.js
--- a/keyserver/src/responders/message-responders.js
+++ b/keyserver/src/responders/message-responders.js
@@ -9,10 +9,12 @@
messageTypes,
type SendTextMessageRequest,
type SendMultimediaMessageRequest,
+ type SendReactionMessageRequest,
type FetchMessageInfosResponse,
type FetchMessageInfosRequest,
defaultNumberPerThread,
type SendMessageResponse,
+ type ReactionMessageData,
} from 'lib/types/message-types';
import type { TextMessageData } from 'lib/types/messages/text';
import { threadPermissions } from 'lib/types/thread-types';
@@ -179,8 +181,50 @@
return { newMessageInfo };
}
+const sendReactionMessageRequestInputValidator = tShape({
+ threadID: t.String,
+ targetMessageID: t.String,
+ reaction: t.maybe(t.String),
+});
+async function reactionMessageCreationResponder(
+ viewer: Viewer,
+ input: any,
+): Promise<SendMessageResponse> {
+ const request: SendReactionMessageRequest = input;
+ await validateInput(viewer, sendReactionMessageRequestInputValidator, input);
+
+ const { threadID, targetMessageID, reaction } = request;
+
+ if (!targetMessageID || reaction === undefined) {
+ throw new ServerError('invalid_parameters');
+ }
+
+ const hasPermission = await checkThreadPermission(
+ viewer,
+ threadID,
+ threadPermissions.VOICED,
+ );
+ if (!hasPermission) {
+ throw new ServerError('invalid_parameters');
+ }
+
+ const messageData: ReactionMessageData = {
+ type: messageTypes.REACTION,
+ threadID,
+ creatorID: viewer.id,
+ time: Date.now(),
+ targetMessageID,
+ reaction,
+ };
+
+ const rawMessageInfos = await createMessages(viewer, [messageData]);
+
+ return { newMessageInfo: rawMessageInfos[0] };
+}
+
export {
textMessageCreationResponder,
messageFetchResponder,
multimediaMessageCreationResponder,
+ reactionMessageCreationResponder,
};

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 6, 7:51 PM (21 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5840502
Default Alt Text
D5749.1765050660.diff (1 KB)

Event Timeline