1
0
mirror of https://gitlab.com/comunic/comunicapiv2 synced 2024-11-25 23:09:22 +00:00

Send an event when a conversation message is created

This commit is contained in:
Pierre HUBERT 2020-04-01 11:18:38 +02:00
parent f69271d42f
commit a1194312de
2 changed files with 25 additions and 4 deletions

View File

@ -437,7 +437,7 @@ export class ConversationsHelper {
const t = time(); const t = time();
// Insert the message in the database // Insert the message in the database
await DatabaseHelper.InsertRow( const id = await DatabaseHelper.InsertRow(
MESSAGES_TABLE, MESSAGES_TABLE,
{ {
conv_id: message.convID, conv_id: message.convID,
@ -448,6 +448,16 @@ export class ConversationsHelper {
} }
); );
// Generate full message info
const newMessage = new ConversationMessage({
id: id,
timeSent: t,
userID: message.userID,
convID: message.convID,
message: message.message,
imagePath: message.imagePath
});
// Update the last activity of the conversation // Update the last activity of the conversation
await DatabaseHelper.UpdateRows({ await DatabaseHelper.UpdateRows({
table: LIST_TABLE, table: LIST_TABLE,
@ -489,6 +499,11 @@ export class ConversationsHelper {
await EventsHelper.Emit("updated_number_unread_conversations", { await EventsHelper.Emit("updated_number_unread_conversations", {
usersID: listToNotify usersID: listToNotify
}) })
// Notify about newly created message
await EventsHelper.Emit("sent_conversation_message", {
msg: newMessage
})
} }
/** /**

View File

@ -1,5 +1,5 @@
import { EventEmitter } from "events";
import { APIClient } from "../entities/APIClient"; import { APIClient } from "../entities/APIClient";
import { ConversationMessage } from "../entities/ConversationMessage";
/** /**
* Events manager * Events manager
@ -19,17 +19,23 @@ export interface UpdatedNotificationsNumberEvent {
} }
// When some users have an updated number of unread conversations // When some users have an updated number of unread conversations
export interface UpdateNumberUnreadConversations { export interface UpdateNumberUnreadConversationsEvent {
usersID: number[] usersID: number[]
} }
// When a new conversatino message is sent
export interface SentNewConversationMessageEvent {
msg: ConversationMessage
}
/** /**
* Global map of all possible events * Global map of all possible events
*/ */
export interface EventsMap { export interface EventsMap {
"destroyed_login_tokens": DestroyedLoginTokensEvent, "destroyed_login_tokens": DestroyedLoginTokensEvent,
"updated_number_notifications": UpdatedNotificationsNumberEvent, "updated_number_notifications": UpdatedNotificationsNumberEvent,
"updated_number_unread_conversations": UpdateNumberUnreadConversations "updated_number_unread_conversations": UpdateNumberUnreadConversationsEvent,
"sent_conversation_message": SentNewConversationMessageEvent
} }
export class EventsHelper { export class EventsHelper {