Message content changes and message deletions are now tracked
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
import { Message, OmitPartialGroupDMChannel } from "discord.js";
|
||||
import { Message, OmitPartialGroupDMChannel, PartialMessage } from "discord.js";
|
||||
import { SQLCommon } from "../storage/interfaces";
|
||||
import { SQLResult } from "../storage/enumerations";
|
||||
|
||||
export async function doesMessageExist(db: SQLCommon, message: OmitPartialGroupDMChannel<Message<boolean>>) : Promise<boolean> {
|
||||
// TODO Do partial messages affect other functionality elsewhere?
|
||||
|
||||
export async function doesMessageExist(db: SQLCommon, message: OmitPartialGroupDMChannel<Message<boolean>> | PartialMessage) : Promise<boolean> {
|
||||
const queryResult: Object[] = await db.getAllParameterized(
|
||||
"SELECT * FROM messages WHERE message_snowflake = ?",
|
||||
[message.id]
|
||||
@@ -31,4 +33,48 @@ export async function insertMessage(db: SQLCommon, message: OmitPartialGroupDMCh
|
||||
console.log(err)
|
||||
return SQLResult.FAILED
|
||||
}
|
||||
}
|
||||
|
||||
export async function updateMessageContentHistory(db: SQLCommon, message: OmitPartialGroupDMChannel<Message<boolean>>) : Promise<SQLResult> {
|
||||
const messageIDExists: boolean = await doesMessageExist(db, message)
|
||||
|
||||
if(!messageIDExists) {
|
||||
return SQLResult.FAILED
|
||||
}
|
||||
|
||||
try {
|
||||
await db.runParameterized(
|
||||
"INSERT INTO message_content_changes (message_snowflake, message_change_old_timestamp, message_change_old_content) " +
|
||||
"SELECT message_snowflake, message_timestamp, message_content FROM messages WHERE message_snowflake = ?;" +
|
||||
"UPDATE messages SET message_timestamp = ?, message_content = ? WHERE message_snowflake = ?;",
|
||||
[message.id, message.editedTimestamp, message.content, message.id]
|
||||
)
|
||||
|
||||
return SQLResult.UPDATED
|
||||
} catch (err) {
|
||||
//TODO Winston should handle this
|
||||
console.log(err)
|
||||
return SQLResult.FAILED
|
||||
}
|
||||
}
|
||||
|
||||
export async function markMessageDeleted(db: SQLCommon, message: OmitPartialGroupDMChannel<Message<boolean>> | PartialMessage) : Promise<SQLResult> {
|
||||
const messageIDExists: boolean = await doesMessageExist(db, message)
|
||||
|
||||
if(!messageIDExists) {
|
||||
return SQLResult.FAILED
|
||||
}
|
||||
|
||||
try {
|
||||
await db.runParameterized(
|
||||
"UPDATE messages SET message_deleted = 1 WHERE message_snowflake = ?",
|
||||
[message.id]
|
||||
)
|
||||
|
||||
return SQLResult.UPDATED
|
||||
} catch (err) {
|
||||
// TODO Winston should handle this
|
||||
console.log(err)
|
||||
return SQLResult.FAILED
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user