summaryrefslogtreecommitdiff
path: root/classes/CLIEvent.ts
diff options
context:
space:
mode:
Diffstat (limited to 'classes/CLIEvent.ts')
-rw-r--r--classes/CLIEvent.ts69
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);
+ }
+ }
}
}
}