mirror of
				https://gitlab.com/comunic/comunicapiv2
				synced 2025-11-04 11:34:04 +00:00 
			
		
		
		
	Can get the list of unread conversations
This commit is contained in:
		@@ -2,6 +2,7 @@ import { Conversation, BaseConversation } from "../entities/Conversation";
 | 
			
		||||
import { DatabaseHelper } from "./DatabaseHelper";
 | 
			
		||||
import { time } from "../utils/DateUtils";
 | 
			
		||||
import { ConversationMessage, BaseConversationMessage } from "../entities/ConversationMessage";
 | 
			
		||||
import { UnreadConversation } from "../entities/UnreadConversation";
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Conversations helper
 | 
			
		||||
@@ -409,6 +410,52 @@ export class ConversationsHelper {
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get the list of unread conversations of the user
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param userID Target user ID
 | 
			
		||||
	 */
 | 
			
		||||
	public static async GetListUnread(userID: number) : Promise<Array<UnreadConversation>> {
 | 
			
		||||
		return (await DatabaseHelper.Query({
 | 
			
		||||
			table: USERS_TABLE,
 | 
			
		||||
			tableAlias: "users",
 | 
			
		||||
 | 
			
		||||
			joins: [
 | 
			
		||||
				
 | 
			
		||||
				// Join with conversations list table
 | 
			
		||||
				{
 | 
			
		||||
					table: LIST_TABLE,
 | 
			
		||||
					tableAlias: "list",
 | 
			
		||||
					condition: "users.conv_id = list.id"
 | 
			
		||||
				},
 | 
			
		||||
 | 
			
		||||
				// Join with message table to get the latest message
 | 
			
		||||
				{
 | 
			
		||||
					table: MESSAGES_TABLE,
 | 
			
		||||
					tableAlias: "messages",
 | 
			
		||||
					condition: "messages.conv_id = users.conv_id"
 | 
			
		||||
				}
 | 
			
		||||
			],
 | 
			
		||||
 | 
			
		||||
			where: {
 | 
			
		||||
				"users.user_id": userID,
 | 
			
		||||
				"users.following": 1,
 | 
			
		||||
				"users.saw_last_message": 0,
 | 
			
		||||
			},
 | 
			
		||||
 | 
			
		||||
			customWhere: "list.last_active = messages.time_insert",
 | 
			
		||||
 | 
			
		||||
			order: "list.last_active DESC"
 | 
			
		||||
 | 
			
		||||
		})).map(m => <UnreadConversation>{
 | 
			
		||||
			id: m.conv_id,
 | 
			
		||||
			name: m.name,
 | 
			
		||||
			lastActive: m.last_active,
 | 
			
		||||
			userID: m.user_id,
 | 
			
		||||
			message: m.message,
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get the list of members of a conversation
 | 
			
		||||
	 * 
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user