forked from OpenWF/SpaceNinjaServer
		
	feat: automatically delete death mark messages after 24 hours (#1535)
Possibly unfaithful but more faithful than never deleting it at all. Reviewed-on: OpenWF/SpaceNinjaServer#1535 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									0ffcee5faf
								
							
						
					
					
						commit
						d3620c00e2
					
				@ -5,7 +5,7 @@ import { IMongoDate, IOid } from "@/src/types/commonTypes";
 | 
			
		||||
import { ITypeCount } from "@/src/types/inventoryTypes/inventoryTypes";
 | 
			
		||||
 | 
			
		||||
export interface IMessageClient
 | 
			
		||||
    extends Omit<IMessageDatabase, "_id" | "date" | "startDate" | "endDate" | "ownerId" | "attVisualOnly"> {
 | 
			
		||||
    extends Omit<IMessageDatabase, "_id" | "date" | "startDate" | "endDate" | "ownerId" | "attVisualOnly" | "expiry"> {
 | 
			
		||||
    _id?: IOid;
 | 
			
		||||
    date: IMongoDate;
 | 
			
		||||
    startDate?: IMongoDate;
 | 
			
		||||
@ -16,6 +16,8 @@ export interface IMessageClient
 | 
			
		||||
export interface IMessageDatabase extends IMessage {
 | 
			
		||||
    ownerId: Types.ObjectId;
 | 
			
		||||
    date: Date; //created at
 | 
			
		||||
    attVisualOnly?: boolean;
 | 
			
		||||
    expiry?: Date;
 | 
			
		||||
    _id: Types.ObjectId;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -30,7 +32,6 @@ export interface IMessage {
 | 
			
		||||
    endDate?: Date;
 | 
			
		||||
    att?: string[];
 | 
			
		||||
    countedAtt?: ITypeCount[];
 | 
			
		||||
    attVisualOnly?: boolean;
 | 
			
		||||
    transmission?: string;
 | 
			
		||||
    arg?: Arg[];
 | 
			
		||||
    gifts?: IGift[];
 | 
			
		||||
@ -137,14 +138,14 @@ messageSchema.virtual("messageId").get(function (this: IMessageDatabase) {
 | 
			
		||||
messageSchema.set("toJSON", {
 | 
			
		||||
    virtuals: true,
 | 
			
		||||
    transform(_document, returnedObject) {
 | 
			
		||||
        delete returnedObject.ownerId;
 | 
			
		||||
 | 
			
		||||
        const messageDatabase = returnedObject as IMessageDatabase;
 | 
			
		||||
        const messageClient = returnedObject as IMessageClient;
 | 
			
		||||
 | 
			
		||||
        delete returnedObject._id;
 | 
			
		||||
        delete returnedObject.__v;
 | 
			
		||||
        delete returnedObject.ownerId;
 | 
			
		||||
        delete returnedObject.attVisualOnly;
 | 
			
		||||
        delete returnedObject.expiry;
 | 
			
		||||
 | 
			
		||||
        messageClient.date = toMongoDate(messageDatabase.date);
 | 
			
		||||
 | 
			
		||||
@ -157,5 +158,6 @@ messageSchema.set("toJSON", {
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
messageSchema.index({ ownerId: 1 });
 | 
			
		||||
messageSchema.index({ expiry: 1 }, { expireAfterSeconds: 0 });
 | 
			
		||||
 | 
			
		||||
export const Inbox = model<IMessageDatabase>("Inbox", messageSchema, "inbox");
 | 
			
		||||
 | 
			
		||||
@ -394,10 +394,10 @@ export const addMissionInventoryUpdates = async (
 | 
			
		||||
                                sndr: "/Lotus/Language/G1Quests/DeathMarkSender",
 | 
			
		||||
                                msg: "/Lotus/Language/G1Quests/DeathMarkMessage",
 | 
			
		||||
                                icon: "/Lotus/Interface/Icons/Npcs/Stalker_d.png",
 | 
			
		||||
                                highPriority: true
 | 
			
		||||
                                highPriority: true,
 | 
			
		||||
                                expiry: new Date(Date.now() + 86400_000) // TOVERIFY: This type of inbox message seems to automatically delete itself. We'll just delete it after 24 hours, but it's clear if this is correct.
 | 
			
		||||
                            }
 | 
			
		||||
                        ]);
 | 
			
		||||
                        // TODO: This type of inbox message seems to automatically delete itself. Figure out under which conditions.
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                inventory.DeathMarks = value;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user