feat: automatically delete death mark messages after 24 hours (#1535)
Possibly unfaithful but more faithful than never deleting it at all. Reviewed-on: #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";
|
import { ITypeCount } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||||
|
|
||||||
export interface IMessageClient
|
export interface IMessageClient
|
||||||
extends Omit<IMessageDatabase, "_id" | "date" | "startDate" | "endDate" | "ownerId" | "attVisualOnly"> {
|
extends Omit<IMessageDatabase, "_id" | "date" | "startDate" | "endDate" | "ownerId" | "attVisualOnly" | "expiry"> {
|
||||||
_id?: IOid;
|
_id?: IOid;
|
||||||
date: IMongoDate;
|
date: IMongoDate;
|
||||||
startDate?: IMongoDate;
|
startDate?: IMongoDate;
|
||||||
@ -16,6 +16,8 @@ export interface IMessageClient
|
|||||||
export interface IMessageDatabase extends IMessage {
|
export interface IMessageDatabase extends IMessage {
|
||||||
ownerId: Types.ObjectId;
|
ownerId: Types.ObjectId;
|
||||||
date: Date; //created at
|
date: Date; //created at
|
||||||
|
attVisualOnly?: boolean;
|
||||||
|
expiry?: Date;
|
||||||
_id: Types.ObjectId;
|
_id: Types.ObjectId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -30,7 +32,6 @@ export interface IMessage {
|
|||||||
endDate?: Date;
|
endDate?: Date;
|
||||||
att?: string[];
|
att?: string[];
|
||||||
countedAtt?: ITypeCount[];
|
countedAtt?: ITypeCount[];
|
||||||
attVisualOnly?: boolean;
|
|
||||||
transmission?: string;
|
transmission?: string;
|
||||||
arg?: Arg[];
|
arg?: Arg[];
|
||||||
gifts?: IGift[];
|
gifts?: IGift[];
|
||||||
@ -137,14 +138,14 @@ messageSchema.virtual("messageId").get(function (this: IMessageDatabase) {
|
|||||||
messageSchema.set("toJSON", {
|
messageSchema.set("toJSON", {
|
||||||
virtuals: true,
|
virtuals: true,
|
||||||
transform(_document, returnedObject) {
|
transform(_document, returnedObject) {
|
||||||
delete returnedObject.ownerId;
|
|
||||||
|
|
||||||
const messageDatabase = returnedObject as IMessageDatabase;
|
const messageDatabase = returnedObject as IMessageDatabase;
|
||||||
const messageClient = returnedObject as IMessageClient;
|
const messageClient = returnedObject as IMessageClient;
|
||||||
|
|
||||||
delete returnedObject._id;
|
delete returnedObject._id;
|
||||||
delete returnedObject.__v;
|
delete returnedObject.__v;
|
||||||
|
delete returnedObject.ownerId;
|
||||||
delete returnedObject.attVisualOnly;
|
delete returnedObject.attVisualOnly;
|
||||||
|
delete returnedObject.expiry;
|
||||||
|
|
||||||
messageClient.date = toMongoDate(messageDatabase.date);
|
messageClient.date = toMongoDate(messageDatabase.date);
|
||||||
|
|
||||||
@ -157,5 +158,6 @@ messageSchema.set("toJSON", {
|
|||||||
});
|
});
|
||||||
|
|
||||||
messageSchema.index({ ownerId: 1 });
|
messageSchema.index({ ownerId: 1 });
|
||||||
|
messageSchema.index({ expiry: 1 }, { expireAfterSeconds: 0 });
|
||||||
|
|
||||||
export const Inbox = model<IMessageDatabase>("Inbox", messageSchema, "inbox");
|
export const Inbox = model<IMessageDatabase>("Inbox", messageSchema, "inbox");
|
||||||
|
@ -394,10 +394,10 @@ export const addMissionInventoryUpdates = async (
|
|||||||
sndr: "/Lotus/Language/G1Quests/DeathMarkSender",
|
sndr: "/Lotus/Language/G1Quests/DeathMarkSender",
|
||||||
msg: "/Lotus/Language/G1Quests/DeathMarkMessage",
|
msg: "/Lotus/Language/G1Quests/DeathMarkMessage",
|
||||||
icon: "/Lotus/Interface/Icons/Npcs/Stalker_d.png",
|
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;
|
inventory.DeathMarks = value;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user