mirror of
https://gitlab.com/comunic/comunicapiv2
synced 2024-11-26 07:19:23 +00:00
Can get older messages
This commit is contained in:
parent
4ade176434
commit
ae88b7a979
@ -264,6 +264,25 @@ export class ConversationsController {
|
|||||||
h.success("Conversation message was sent!");
|
h.success("Conversation message was sent!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the older messages of a conversation
|
||||||
|
*
|
||||||
|
* @param h Request handler
|
||||||
|
*/
|
||||||
|
public static async GetOlderMessages(h: RequestHandler) {
|
||||||
|
const convID = await this.GetPostConversationId("conversationID", h);
|
||||||
|
const maxID = h.postInt("oldest_message_id") - 1;
|
||||||
|
|
||||||
|
let limit = h.postInt("limit");
|
||||||
|
if(limit < 1) limit = 1;
|
||||||
|
else if(limit > 30) limit = 30;
|
||||||
|
|
||||||
|
// Get the list of messages
|
||||||
|
const messages = await ConversationsHelper.GetOlderMessage(convID, maxID, limit);
|
||||||
|
|
||||||
|
h.send(messages.map(e => this.ConversationMessageToAPI(e)));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get and return safely a conversation ID specified in a $_POST Request
|
* Get and return safely a conversation ID specified in a $_POST Request
|
||||||
*
|
*
|
||||||
|
@ -65,6 +65,8 @@ export const Routes : Route[] = [
|
|||||||
|
|
||||||
{path: "/conversations/sendMessage", cb: (h) => ConversationsController.SendMessage(h)},
|
{path: "/conversations/sendMessage", cb: (h) => ConversationsController.SendMessage(h)},
|
||||||
|
|
||||||
|
{path: "/conversations/get_older_messages", cb: (h) => ConversationsController.GetOlderMessages(h)},
|
||||||
|
|
||||||
|
|
||||||
// Search controller
|
// Search controller
|
||||||
{path: "/search/user", cb: (h) => SearchController.SearchUser(h)},
|
{path: "/search/user", cb: (h) => SearchController.SearchUser(h)},
|
||||||
|
@ -276,6 +276,28 @@ export class ConversationsHelper {
|
|||||||
})).map(m => this.DBToConversationMessage(convID, m));
|
})).map(m => this.DBToConversationMessage(convID, m));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get older messages of a conversation
|
||||||
|
*
|
||||||
|
* @param convID ID of the target conversation
|
||||||
|
* @param startID ID from which the research should start
|
||||||
|
* @param limit Maximum number of messages to get
|
||||||
|
* @return The list of messages
|
||||||
|
*/
|
||||||
|
public static async GetOlderMessage(convID: number, startID: number, limit: number) : Promise<Array<ConversationMessage>> {
|
||||||
|
return (await DatabaseHelper.Query({
|
||||||
|
table: MESSAGES_TABLE,
|
||||||
|
where: {
|
||||||
|
conv_id: convID,
|
||||||
|
},
|
||||||
|
customWhere: "ID <= ?",
|
||||||
|
customWhereArgs: [startID.toString()],
|
||||||
|
order: "id DESC",
|
||||||
|
limit: limit
|
||||||
|
}))
|
||||||
|
.map(m => this.DBToConversationMessage(convID, m)).reverse();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mark the user has seen the last messages of the conversation
|
* Mark the user has seen the last messages of the conversation
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user