diff --git a/packages/restapi/src/lib/pushstream/DataModifier.ts b/packages/restapi/src/lib/pushstream/DataModifier.ts index 57cf9b387..7cb4c78e7 100644 --- a/packages/restapi/src/lib/pushstream/DataModifier.ts +++ b/packages/restapi/src/lib/pushstream/DataModifier.ts @@ -40,6 +40,8 @@ export class DataModifier { return this.mapToRequestEvent(data, includeRaw); case GroupEventType.Remove: return this.mapToRemoveEvent(data, includeRaw); + case GroupEventType.RoleChange: + return this.mapToRoleChangeEvent(data, includeRaw); default: console.warn('Unknown eventType:', data.eventType); return data; @@ -124,6 +126,23 @@ export class DataModifier { return eventData; } + private static mapToRoleChangeEvent(data: any, includeRaw: boolean): any { + // Whatever the structure of your RemoveEvent, modify accordingly + const eventData: RemoveEvent = { + origin: data.messageOrigin, + timestamp: data.timestamp, + chatId: data.chatId, + from: data.from, + to: data.to, + event: GroupEventType.Remove, + }; + + if (includeRaw) { + eventData.raw = { verificationProof: data.verificationProof }; + } + return eventData; + } + private static buildChatGroupEventMetaAndRaw( incomingData: any, includeRaw: boolean @@ -203,7 +222,6 @@ export class DataModifier { includeRaw = false, eventType: MessageEventType ): MessageEvent { - if (data.hasIntent === false && eventType === 'message') { eventType = MessageEventType.Request; } diff --git a/packages/restapi/src/lib/pushstream/pushStreamTypes.ts b/packages/restapi/src/lib/pushstream/pushStreamTypes.ts index b72b26831..79eb0aaee 100644 --- a/packages/restapi/src/lib/pushstream/pushStreamTypes.ts +++ b/packages/restapi/src/lib/pushstream/pushStreamTypes.ts @@ -50,6 +50,7 @@ export enum GroupEventType { UpdateGroup = 'updateGroup', JoinGroup = 'joinGroup', LeaveGroup = 'leaveGroup', + RoleChange = 'roleChange', Remove = 'remove', }