forked from OpenWF/SpaceNinjaServer
		
	This function wasn't used anywhere else and caused a recursive include in inboxService. Reviewed-on: OpenWF/SpaceNinjaServer#2828 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import type { IMessageDatabase } from "../models/inboxModel.ts";
 | 
						|
import { Inbox } from "../models/inboxModel.ts";
 | 
						|
import type { HydratedDocument, Types } from "mongoose";
 | 
						|
 | 
						|
export const getAllMessagesSorted = async (accountId: string): Promise<HydratedDocument<IMessageDatabase>[]> => {
 | 
						|
    const inbox = await Inbox.find({ ownerId: accountId }).sort({ date: -1 });
 | 
						|
    return inbox;
 | 
						|
};
 | 
						|
 | 
						|
export const getMessage = async (messageId: string): Promise<HydratedDocument<IMessageDatabase>> => {
 | 
						|
    const message = await Inbox.findById(messageId);
 | 
						|
 | 
						|
    if (!message) {
 | 
						|
        throw new Error(`Message not found ${messageId}`);
 | 
						|
    }
 | 
						|
    return message;
 | 
						|
};
 | 
						|
 | 
						|
export const deleteMessageRead = async (messageId: string): Promise<void> => {
 | 
						|
    await Inbox.findOneAndDelete({ _id: messageId, r: true });
 | 
						|
};
 | 
						|
 | 
						|
export const deleteAllMessagesRead = async (accountId: string): Promise<void> => {
 | 
						|
    await Inbox.deleteMany({ ownerId: accountId, r: true });
 | 
						|
};
 | 
						|
 | 
						|
export const deleteAllMessagesReadNonCin = async (accountId: string): Promise<void> => {
 | 
						|
    await Inbox.deleteMany({ ownerId: accountId, r: true, cinematic: null });
 | 
						|
};
 | 
						|
 | 
						|
export const createMessage = async (
 | 
						|
    accountId: string | Types.ObjectId,
 | 
						|
    messages: IMessageCreationTemplate[]
 | 
						|
): Promise<void> => {
 | 
						|
    const ownerIdMessages = messages.map(m => ({
 | 
						|
        ...m,
 | 
						|
        date: m.date ?? new Date(),
 | 
						|
        ownerId: accountId
 | 
						|
    }));
 | 
						|
    await Inbox.insertMany(ownerIdMessages);
 | 
						|
};
 | 
						|
 | 
						|
export interface IMessageCreationTemplate extends Omit<IMessageDatabase, "_id" | "date" | "ownerId"> {
 | 
						|
    date?: Date;
 | 
						|
}
 |