Skip to content

Commit

Permalink
Introduce bare minimum messageTypes.UPDATE_RELATIONSHIP
Browse files Browse the repository at this point in the history
Basically fill out `update-relationships` with contents of `legacy-update-relationships` with additional `farcaster_mutual` operation.
  • Loading branch information
atulsmadhugiri committed Mar 21, 2024
1 parent 702198c commit 8dd3e33
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 2 deletions.
1 change: 1 addition & 0 deletions lib/shared/messages/message-specs.js
Expand Up @@ -52,4 +52,5 @@ export const messageSpecs: {
[messageTypes.REACTION]: reactionMessageSpec,
[messageTypes.EDIT_MESSAGE]: editMessageSpec,
[messageTypes.TOGGLE_PIN]: togglePinMessageSpec,
[messageTypes.UPDATE_RELATIONSHIP]: updateRelationshipMessageSpec,
});
4 changes: 3 additions & 1 deletion lib/types/message-types-enum.js
Expand Up @@ -34,6 +34,7 @@ export const messageTypes = Object.freeze({
REACTION: 19,
EDIT_MESSAGE: 20,
TOGGLE_PIN: 21,
UPDATE_RELATIONSHIP: 22,
});
export type MessageType = $Values<typeof messageTypes>;
export function assertMessageType(ourMessageType: number): MessageType {
Expand All @@ -59,7 +60,8 @@ export function assertMessageType(ourMessageType: number): MessageType {
ourMessageType === 18 ||
ourMessageType === 19 ||
ourMessageType === 20 ||
ourMessageType === 21,
ourMessageType === 21 ||
ourMessageType === 22,
'number is not MessageType enum',
);
return ourMessageType;
Expand Down
46 changes: 46 additions & 0 deletions lib/types/messages/update-relationships.js
@@ -0,0 +1,46 @@
// @flow

import t, { type TInterface } from 'tcomb';

import { tID, tNumber, tShape } from '../../utils/validation-utils.js';
import { messageTypes } from '../message-types-enum.js';
import type { RelativeUserInfo } from '../user-types.js';

export type UpdateRelationshipMessageData = {
+type: 22,
+threadID: string,
+creatorID: string,
+targetID: string,
+time: number,
+operation: 'request_sent' | 'request_accepted' | 'farcaster_mutual',
};

export type RawUpdateRelationshipMessageInfo = {
...UpdateRelationshipMessageData,
id: string,
};

export const rawUpdateRelationshipMessageInfoValidator: TInterface<RawUpdateRelationshipMessageInfo> =
tShape<RawUpdateRelationshipMessageInfo>({
type: tNumber(messageTypes.UPDATE_RELATIONSHIP),
threadID: tID,
creatorID: t.String,
targetID: t.String,
time: t.Number,
operation: t.enums.of([
'request_sent',
'request_accepted',
'farcaster_mutual',
]),
id: tID,
});

export type UpdateRelationshipMessageInfo = {
+type: 22,
+id: string,
+threadID: string,
+creator: RelativeUserInfo,
+target: RelativeUserInfo,
+time: number,
+operation: 'request_sent' | 'request_accepted' | 'farcaster_mutual',
};
6 changes: 5 additions & 1 deletion lib/types/validation.test.js
Expand Up @@ -326,7 +326,11 @@ describe('message validation', () => {
(validatorMessageType === messageTypes.IMAGES &&
message.type === messageTypes.MULTIMEDIA) ||
(validatorMessageType === messageTypes.MULTIMEDIA &&
message.type === messageTypes.IMAGES)
message.type === messageTypes.IMAGES) ||
(validatorMessageType === messageTypes.UPDATE_RELATIONSHIP &&
message.type === messageTypes.LEGACY_UPDATE_RELATIONSHIP) ||
(validatorMessageType === messageTypes.LEGACY_UPDATE_RELATIONSHIP &&
message.type === messageTypes.UPDATE_RELATIONSHIP)
)
) {
it(`${validatorMessageTypeName} shouldn't validate ${messageTypeName}`, () => {
Expand Down

0 comments on commit 8dd3e33

Please sign in to comment.