13.0.0 invoice features + configuration

This commit is contained in:
SowinskiBraeden committed 2022-10-16 19:38:09 -07:00
1 parent 43d6a7742a
commit 6f2f24da50
7 files changed
+418 -13

No files matched your search

+2
View File
@@ -175,6 +175,7 @@ class QuarksBot extends Client {
dispatcherRole: null,
onlyOfficersSearch: false,
casinoMultiplier: 2,
canIgnoreInvoices: true,
}
}
this.dbo.collection("guilds").insertOne(guild, function(err, res) {
@@ -199,6 +200,7 @@ class QuarksBot extends Client {
onlyOfficersSearch: guild.server.onlyOfficersSearch,
botAdmin: guild.server.botAdmin,
casinoMultiplier: guild.server.casinoMultiplier,
canIgnoreInvoices: guild.server.canIgnoreInvoices,
}
return guildData;
}
+43
View File
@@ -0,0 +1,43 @@
const mongoose = require('mongoose');
let invoiceSchema = mongoose.Schema({
invoiceDB: {
userID: String,
guilds: {},
}
});
invoiceSchema.methods.createInvoiceDB = function (userID, guildID) {
this.invoiceDB.userID = userID;
this.invoiceDB.guilds = {};
this.invoiceDB.guilds[guildID] = { invoices: [] };
};
/*
This function is to add a new guild specific invoice list to an already existing
invoiceDB document
or
can be used to reset a data back to default
*/
async function addInvoiceList(guilds, guildID, userID, client) {
let updatedGuilds = guilds;
updatedGuilds[guildID] = { invoices: [] };
await client.dbo.collection("invoices").updateOne({"invoiceDB.userID":userID}, {$set: {"invoiceDB.guilds": updatedGuilds}}, function(err, res) {
if (err) return false
})
return true
}
async function addInvoice(guildID, userID, invoice, client) {
await client.dbo.collection("invoices").updateOne({"invoiceDB.userID": userID}, {$push: {[`invoiceDB.guilds.${guildID}.invoices`]: invoice}}, function(err, res) {
if (err) return false
})
return true
}
module.exports = {
Invoice: mongoose.model('Invoice', invoiceSchema),
addInvoiceList: addInvoiceList,
addInvoice: addInvoice,
};