perf(savedMessages): save a db lookup and message content decryption by building the returned entity manually after creation
This commit is contained in:
parent
f582640e8e
commit
e5389c0e55
2 changed files with 10 additions and 1 deletions
|
@ -8,6 +8,7 @@ import { MINUTES, SECONDS } from "../utils";
|
|||
import { BaseGuildRepository } from "./BaseGuildRepository";
|
||||
import { cleanupMessages } from "./cleanup/messages";
|
||||
import { ISavedMessageData, SavedMessage } from "./entities/SavedMessage";
|
||||
import { buildEntity } from "./buildEntity";
|
||||
|
||||
if (!isAPI()) {
|
||||
const CLEANUP_INTERVAL = 5 * MINUTES;
|
||||
|
@ -220,7 +221,8 @@ export class GuildSavedMessages extends BaseGuildRepository {
|
|||
throw e;
|
||||
}
|
||||
|
||||
const inserted = await this.messages.findOne(data.id);
|
||||
// perf: save a db lookup and message content decryption by building the entity manually
|
||||
const inserted = buildEntity(SavedMessage, data);
|
||||
this.events.emit("create", [inserted]);
|
||||
this.events.emit(`create:${data.id}`, [inserted]);
|
||||
}
|
||||
|
|
7
backend/src/data/buildEntity.ts
Normal file
7
backend/src/data/buildEntity.ts
Normal file
|
@ -0,0 +1,7 @@
|
|||
export function buildEntity<T extends any>(Entity: new () => T, data: Partial<T>): T {
|
||||
const instance = new Entity();
|
||||
for (const [key, value] of Object.entries(data)) {
|
||||
instance[key] = value;
|
||||
}
|
||||
return instance;
|
||||
}
|
Loading…
Add table
Reference in a new issue