diff options
Diffstat (limited to 'classes/CLIEvent.ts')
-rw-r--r-- | classes/CLIEvent.ts | 69 |
1 files changed, 66 insertions, 3 deletions
diff --git a/classes/CLIEvent.ts b/classes/CLIEvent.ts index fe94fa2..0e35263 100644 --- a/classes/CLIEvent.ts +++ b/classes/CLIEvent.ts @@ -4,13 +4,18 @@ import {ICLIResponse} from "../types/ICLIResponse"; import {GroupTypingMessage} from "./GroupTypingMessage"; import {User} from "./User"; import {DMTypingMessage} from "./DMTypingMessage"; +import {GroupDataMessage} from "./GroupDataMessage"; +import {DMDataMessage} from "./DMDataMessage"; +import {UserDataType} from "../enums/UserDataType"; +import {DMReactionMessage} from "./DMReactionMessage"; +import {GroupReactionMessage} from "./GroupReactionMessage"; /** * A signal-cli event */ export class CLIEvent { static fromEvent(client: Client, data: ICLIEvent) { - console.log(data); + client.emit("cliEvent", data); if (data.method === "receive") { if (data.params.envelope.typingMessage) { @@ -18,7 +23,7 @@ export class CLIEvent { if (data.params.envelope.typingMessage.groupId) { let message: GroupTypingMessage = new GroupTypingMessage( - new User(data.params.envelope), + new User(data.params.envelope, UserDataType.Envelope), data.params.envelope.typingMessage.action, data.params.envelope.typingMessage.timestamp, data.params.envelope.typingMessage.groupId, @@ -28,7 +33,7 @@ export class CLIEvent { client.emit("typingMessage", message); } else { let message: DMTypingMessage = new DMTypingMessage( - new User(data.params.envelope), + new User(data.params.envelope, UserDataType.Envelope), data.params.envelope.typingMessage.action, data.params.envelope.typingMessage.timestamp, client @@ -36,6 +41,64 @@ export class CLIEvent { client.emit("typingMessage", message); } + } else if (data.params.envelope.dataMessage) { + console.log(data.params.envelope.dataMessage); + + if (data.params.envelope.dataMessage.reaction) { + if (data.params.envelope.dataMessage.groupInfo) { + let message: GroupReactionMessage = new GroupReactionMessage( + new User(data.params.envelope, UserDataType.Envelope), + data.params.envelope.dataMessage, + data.params.envelope.dataMessage.timestamp, + data.params.envelope.dataMessage.groupInfo.groupId, + client + ); + + client.emit("reaction", message); + + if (message.removed) { + client.emit("reactionRemove", message); + } else { + client.emit("reactionAdd", message); + } + } else { + let message: DMReactionMessage = new DMReactionMessage( + new User(data.params.envelope, UserDataType.Envelope), + data.params.envelope.dataMessage, + data.params.envelope.dataMessage.timestamp, + client + ); + + client.emit("reaction", message); + + if (message.removed) { + client.emit("reactionRemove", message); + } else { + client.emit("reactionAdd", message); + } + } + } else { + if (data.params.envelope.dataMessage.groupInfo) { + let message: GroupDataMessage = new GroupDataMessage( + new User(data.params.envelope, UserDataType.Envelope), + data.params.envelope.dataMessage, + data.params.envelope.dataMessage.timestamp, + data.params.envelope.dataMessage.groupInfo.groupId, + client + ); + + client.emit("message", message); + } else { + let message: DMDataMessage = new DMDataMessage( + new User(data.params.envelope, UserDataType.Envelope), + data.params.envelope.dataMessage, + data.params.envelope.dataMessage.timestamp, + client + ); + + client.emit("message", message); + } + } } } } |