Bug fixes for new database system

This commit is contained in:
DJj123dj
2024-11-25 19:24:48 +01:00
parent b22f7b2de7
commit 3e928ed06e
11 changed files with 161 additions and 180 deletions
+39 -39
View File
@@ -86,14 +86,14 @@ export const loadDatabaseCleanersCode = async () => {
//remove all unused panels
for (const panel of (await globalDatabase.getCategory("openticket:panel-update") ?? [])){
if (!validPanels.includes(panel.key)){
globalDatabase.delete("openticket:panel-update",panel.key)
await globalDatabase.delete("openticket:panel-update",panel.key)
}
}
//delete panel from database on delete
openticket.client.client.on("messageDelete",(msg) => {
if (globalDatabase.exists("openticket:panel-update",msg.channel.id+"_"+msg.id)){
globalDatabase.delete("openticket:panel-update",msg.channel.id+"_"+msg.id)
openticket.client.client.on("messageDelete",async (msg) => {
if (await globalDatabase.exists("openticket:panel-update",msg.channel.id+"_"+msg.id)){
await globalDatabase.delete("openticket:panel-update",msg.channel.id+"_"+msg.id)
}
})
}))
@@ -120,24 +120,24 @@ export const loadDatabaseCleanersCode = async () => {
//remove all unused suffix counters
for (const counter of (await globalDatabase.getCategory("openticket:option-suffix-counter") ?? [])){
if (!validSuffixCounters.includes(counter.key)){
globalDatabase.delete("openticket:option-suffix-counter",counter.key)
await globalDatabase.delete("openticket:option-suffix-counter",counter.key)
}
}
//remove all unused suffix histories
for (const history of (await globalDatabase.getCategory("openticket:option-suffix-history") ?? [])){
if (!validSuffixHistories.includes(history.key)){
globalDatabase.delete("openticket:option-suffix-history",history.key)
await globalDatabase.delete("openticket:option-suffix-history",history.key)
}
}
}))
//OPTION DATABASE CLEANER
openticket.code.add(new api.ODCode("openticket:option-database-cleaner",10,() => {
//delete all unused options
openticket.options.getAll().forEach((option) => {
if (optionDatabase.exists("openticket:used-option",option.id.value) && !openticket.tickets.getAll().some((ticket) => ticket.option.id.value == option.id.value)){
optionDatabase.delete("openticket:used-option",option.id.value)
//delete all unused options (async)
openticket.options.getAll().forEach(async (option) => {
if (await optionDatabase.exists("openticket:used-option",option.id.value) && !openticket.tickets.getAll().some((ticket) => ticket.option.id.value == option.id.value)){
await optionDatabase.delete("openticket:used-option",option.id.value)
}
})
}))
@@ -172,7 +172,7 @@ export const loadDatabaseCleanersCode = async () => {
//remove all unused users
for (const user of (await userDatabase.getAll())){
if (!validUsers.includes(user.key)){
userDatabase.delete(user.category,user.key)
await userDatabase.delete(user.category,user.key)
}
}
@@ -180,7 +180,7 @@ export const loadDatabaseCleanersCode = async () => {
for (const stat of (await statsDatabase.getAll())){
if (stat.category.startsWith("openticket:user_")){
if (!validUsers.includes(stat.key)){
statsDatabase.delete(stat.category,stat.key)
await statsDatabase.delete(stat.category,stat.key)
}
}
}
@@ -193,7 +193,7 @@ export const loadDatabaseCleanersCode = async () => {
//remove unused user
for (const user of (await userDatabase.getAll())){
if (user.key == member.id){
userDatabase.delete(user.category,user.key)
await userDatabase.delete(user.category,user.key)
}
}
@@ -201,7 +201,7 @@ export const loadDatabaseCleanersCode = async () => {
for (const stat of (await statsDatabase.getAll())){
if (stat.category.startsWith("openticket:user_")){
if (stat.key == member.id){
statsDatabase.delete(stat.category,stat.key)
await statsDatabase.delete(stat.category,stat.key)
}
}
}
@@ -237,7 +237,7 @@ export const loadDatabaseCleanersCode = async () => {
//remove all unused tickets
for (const ticket of (await ticketDatabase.getAll())){
if (!validTickets.includes(ticket.key)){
ticketDatabase.delete(ticket.category,ticket.key)
await ticketDatabase.delete(ticket.category,ticket.key)
openticket.tickets.remove(ticket.key)
}
}
@@ -246,7 +246,7 @@ export const loadDatabaseCleanersCode = async () => {
for (const stat of (await statsDatabase.getAll())){
if (stat.category.startsWith("openticket:ticket_")){
if (!validTickets.includes(stat.key)){
statsDatabase.delete(stat.category,stat.key)
await statsDatabase.delete(stat.category,stat.key)
}
}
}
@@ -258,7 +258,7 @@ export const loadDatabaseCleanersCode = async () => {
//remove unused ticket
for (const ticket of (await ticketDatabase.getAll())){
if (ticket.key == channel.id){
ticketDatabase.delete(ticket.category,ticket.key)
await ticketDatabase.delete(ticket.category,ticket.key)
openticket.tickets.remove(ticket.key)
}
}
@@ -267,7 +267,7 @@ export const loadDatabaseCleanersCode = async () => {
for (const stat of (await statsDatabase.getAll())){
if (stat.category.startsWith("openticket:ticket_")){
if (stat.key == channel.id){
statsDatabase.delete(stat.category,stat.key)
await statsDatabase.delete(stat.category,stat.key)
}
}
}
@@ -314,49 +314,49 @@ export const loadDatabaseSaversCode = async () => {
openticket.code.add(new api.ODCode("openticket:ticket-saver",6,() => {
const mainVersion = openticket.versions.get("openticket:version")
openticket.tickets.onAdd((ticket) => {
ticketDatabase.set("openticket:ticket",ticket.id.value,ticket.toJson(mainVersion))
openticket.tickets.onAdd(async (ticket) => {
await ticketDatabase.set("openticket:ticket",ticket.id.value,ticket.toJson(mainVersion))
//add option to database if non-existent
if (!optionDatabase.exists("openticket:used-option",ticket.option.id.value)){
optionDatabase.set("openticket:used-option",ticket.option.id.value,ticket.option.toJson(mainVersion))
if (!(await optionDatabase.exists("openticket:used-option",ticket.option.id.value))){
await optionDatabase.set("openticket:used-option",ticket.option.id.value,ticket.option.toJson(mainVersion))
}
})
openticket.tickets.onChange((ticket) => {
ticketDatabase.set("openticket:ticket",ticket.id.value,ticket.toJson(mainVersion))
openticket.tickets.onChange(async (ticket) => {
await ticketDatabase.set("openticket:ticket",ticket.id.value,ticket.toJson(mainVersion))
//add option to database if non-existent
if (!optionDatabase.exists("openticket:used-option",ticket.option.id.value)){
optionDatabase.set("openticket:used-option",ticket.option.id.value,ticket.option.toJson(mainVersion))
if (!(await optionDatabase.exists("openticket:used-option",ticket.option.id.value))){
await optionDatabase.set("openticket:used-option",ticket.option.id.value,ticket.option.toJson(mainVersion))
}
//delete all unused options on ticket move
openticket.options.getAll().forEach((option) => {
if (optionDatabase.exists("openticket:used-option",option.id.value) && !openticket.tickets.getAll().some((ticket) => ticket.option.id.value == option.id.value)){
optionDatabase.delete("openticket:used-option",option.id.value)
for (const option of openticket.options.getAll()){
if (await optionDatabase.exists("openticket:used-option",option.id.value) && !openticket.tickets.getAll().some((ticket) => ticket.option.id.value == option.id.value)){
await optionDatabase.delete("openticket:used-option",option.id.value)
}
})
}
})
openticket.tickets.onRemove((ticket) => {
ticketDatabase.delete("openticket:ticket",ticket.id.value)
openticket.tickets.onRemove(async (ticket) => {
await ticketDatabase.delete("openticket:ticket",ticket.id.value)
//remove option from database if unused
if (!openticket.tickets.getAll().some((ticket) => ticket.option.id.value == ticket.option.id.value)){
optionDatabase.delete("openticket:used-option",ticket.option.id.value)
await optionDatabase.delete("openticket:used-option",ticket.option.id.value)
}
})
}))
//BLACKLIST SAVER
openticket.code.add(new api.ODCode("openticket:blacklist-saver",5,() => {
openticket.blacklist.onAdd((blacklist) => {
userDatabase.set("openticket:blacklist",blacklist.id.value,blacklist.reason)
openticket.blacklist.onAdd(async (blacklist) => {
await userDatabase.set("openticket:blacklist",blacklist.id.value,blacklist.reason)
})
openticket.blacklist.onChange((blacklist) => {
userDatabase.set("openticket:blacklist",blacklist.id.value,blacklist.reason)
openticket.blacklist.onChange(async (blacklist) => {
await userDatabase.set("openticket:blacklist",blacklist.id.value,blacklist.reason)
})
openticket.blacklist.onRemove((blacklist) => {
userDatabase.delete("openticket:blacklist",blacklist.id.value)
openticket.blacklist.onRemove(async (blacklist) => {
await userDatabase.delete("openticket:blacklist",blacklist.id.value)
})
}))