Some of breadthread is working, added basic role tracking

This commit is contained in:
2025-07-07 21:46:12 -04:00
parent b474d55612
commit 5999aeeb0c
15 changed files with 255 additions and 22 deletions

View File

@@ -44,6 +44,7 @@ export async function insertChannel(db: SQLCommon, channel: GuildBasedChannel |
return SQLResult.CREATED
} catch (err) {
//TODO Winston should handle this
console.log("CHANNEL INSERT ERROR")
console.log(err)
return SQLResult.FAILED
}

View File

@@ -39,6 +39,7 @@ export async function insertMessage(db: SQLCommon, message: OmitPartialGroupDMCh
return SQLResult.CREATED
} catch (err) {
//TODO Winston should handle this
console.log("MESSAGE INSERTION ERROR")
console.log(err)
return SQLResult.FAILED
}
@@ -52,16 +53,22 @@ export async function updateMessageContentHistory(db: SQLCommon, message: OmitPa
}
try {
console.log([message.id, message.editedTimestamp ?? message.createdTimestamp, message.content, message.id])
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 = ?;" +
"SELECT messages.message_snowflake, message_timestamp, message_content FROM messages WHERE message_snowflake = ?;",
[message.id]
)
await db.runParameterized(
"UPDATE messages SET message_timestamp = ?, message_content = ? WHERE message_snowflake = ?;",
[message.id, message.editedTimestamp, message.content, message.id]
[message.editedTimestamp ?? message.createdTimestamp, message.content, message.id]
)
return SQLResult.UPDATED
} catch (err) {
//TODO Winston should handle this
console.log("MESSAGE MODIFY FAILED")
console.log(err)
return SQLResult.FAILED
}

View File

@@ -0,0 +1,75 @@
import { Role } from "discord.js";
import { SQLCommon } from "../storage/interfaces";
import { SQLResult } from "../storage/enumerations";
export async function doesRoleExist(db: SQLCommon, role : Role) : Promise<boolean> {
const queryResult : Object[] = await db.getAllParameterized(
"SELECT * FROM roles WHERE role_snowflake = ?",
[role.id]
)
return queryResult.length != 0
}
export async function insertRole(db: SQLCommon, role: Role) : Promise<SQLResult> {
const alreadyExists: boolean = await doesRoleExist(db, role)
if(alreadyExists) {
return SQLResult.ALREADYEXISTS
}
try {
await db.runParameterized(
"INSERT INTO roles VALUES (?, ?, ?, 0)",
[role.id, role.guild.id, role.name]
)
return SQLResult.CREATED
} catch (err) {
console.log("ROLE INSERT ERROR")
console.log(err)
return SQLResult.FAILED
}
}
export async function updateRole(db: SQLCommon, role: Role): Promise<SQLResult> {
const roleExists: boolean = await doesRoleExist(db, role)
if(!roleExists) {
return SQLResult.FAILED
}
try {
await db.runParameterized(
"UPDATE roles SET role_name = ? WHERE role_snowflake = ?",
[role.name, role.id]
)
return SQLResult.UPDATED
} catch (err) {
console.log("ROLE UPDATE FAILED")
console.log(err)
return SQLResult.FAILED
}
}
export async function markRoleDeleted(db: SQLCommon, role: Role) : Promise<SQLResult> {
const roleExists: boolean = await doesRoleExist(db, role)
if(!roleExists) {
return SQLResult.FAILED
}
try {
await db.runParameterized(
"UPDATE roles SET is_deleted = 1 WHERE role_snowflake = ?",
[role.id]
)
return SQLResult.UPDATED
} catch (err) {
console.log("ROLE DELETE FAILED")
console.log(err)
return SQLResult.FAILED
}
}

View File

@@ -27,6 +27,7 @@ export async function insertUser(db: SQLCommon, user: User): Promise<SQLResult>
return SQLResult.CREATED
} catch (err) {
//TODO Winston should handle this
console.log("USER INSERT ERROR")
console.log(err)
return SQLResult.FAILED
}