Message archive formatting tweaks and fixes; only emit deleteBulk event from SavedMessages if any messages were actually marked as deleted

This commit is contained in:
Dragory 2018-12-22 13:06:40 +02:00
parent dee4637a7f
commit ce0b7ded08
5 changed files with 36 additions and 26 deletions

View file

@ -180,23 +180,31 @@ export class GuildSavedMessages extends BaseRepository {
this.events.emit("delete", [deleted]);
}
/**
* Marks the specified messages as deleted in the database (if they weren't already marked before).
* If any messages were marked as deleted, also emits the deleteBulk event.
*/
async markBulkAsDeleted(ids) {
const deletedAt = moment().format("YYYY-MM-DD HH:mm:ss.SSS");
await this.messages
.createQueryBuilder()
.update()
.set({
deleted_at: () => "NOW(3)"
})
.set({ deleted_at: deletedAt })
.where("guild_id = :guild_id", { guild_id: this.guildId })
.andWhere("id IN (:ids)", { ids })
.andWhere("deleted_at IS NULL")
.execute();
const deleted = await this.messages
.createQueryBuilder()
.where("id IN (:ids)", { ids })
.where("deleted_at = :deletedAt", { deletedAt })
.getMany();
this.events.emit("deleteBulk", [deleted]);
if (deleted.length) {
this.events.emit("deleteBulk", [deleted]);
}
}
async saveEdit(id, newData: ISavedMessageData) {