diff --git a/database/global.json b/database/global.json index fb44b71..0637a08 100644 --- a/database/global.json +++ b/database/global.json @@ -1,7 +1 @@ -[ - {"category":"openticket:last-version","key":"openticket:version","value":"v4.0.0"}, - {"category":"openticket:last-version","key":"openticket:api","value":"v1.0.0"}, - {"category":"openticket:last-version","key":"openticket:transcripts","value":"v2.0.0"}, - {"category":"openticket:last-version","key":"openticket:livestatus","value":"v2.0.0"}, - {"category":"openticket:last-version","key":"openticket:last-version","value":"v4.0.0"} -] \ No newline at end of file +[] \ No newline at end of file diff --git a/src/data/framework/codeLoader.ts b/src/data/framework/codeLoader.ts index b5e2d29..43f54f2 100644 --- a/src/data/framework/codeLoader.ts +++ b/src/data/framework/codeLoader.ts @@ -133,13 +133,17 @@ export const loadDatabaseCleanersCode = async () => { })) //OPTION DATABASE CLEANER - openticket.code.add(new api.ODCode("openticket:option-database-cleaner",10,() => { + openticket.code.add(new api.ODCode("openticket:option-database-cleaner",10,async () => { //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) + for (const option of (await optionDatabase.getCategory("openticket:used-option") ?? [])){ + if (!openticket.options.exists(option.key)){ + //remove because option isn't loaded into memory (0 tickets require it) + await optionDatabase.delete("openticket:used-option",option.key) + }else if (!openticket.tickets.getAll().some((ticket) => ticket.option.id.value == option.key)){ + //remove when loaded into memory (0 tickets require it) + await optionDatabase.delete("openticket:used-option",option.key) } - }) + } })) //USER DATABASE CLEANER (full async/parallel because it takes a lot of time)