initial commit
This commit is contained in:
45
mongo.ts
Normal file
45
mongo.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import mongoose from 'mongoose';
|
||||
|
||||
import {config} from './config';
|
||||
import {guildModel} from './models/Guild';
|
||||
import {autoroleMsgModel} from './models/AutoroleMsg';
|
||||
import {giveawayMsgModel} from './models/GiveawayMsg';
|
||||
import {imageModel} from './models/Image';
|
||||
import {aliasModel} from './models/Alias';
|
||||
|
||||
async function resetMongo(): Promise<void> {
|
||||
try{
|
||||
await guildModel.deleteMany({});
|
||||
await autoroleMsgModel.deleteMany({});
|
||||
await giveawayMsgModel.deleteMany({});
|
||||
await imageModel.deleteMany({});
|
||||
await aliasModel.deleteMany({});
|
||||
}catch(err: unknown){
|
||||
throw new Error(`MongoDB reset failed. ${err}`);
|
||||
}
|
||||
}
|
||||
|
||||
async function initializeMongo(): Promise<void> {
|
||||
try{
|
||||
if(config.mongodb.reset === 'true') await resetMongo();
|
||||
}catch(err: unknown){
|
||||
throw new Error(`MongoDB initialize failed. ${err}`);
|
||||
}
|
||||
}
|
||||
|
||||
export async function runMongo(): Promise<void> {
|
||||
try {
|
||||
mongoose.set('strictQuery', false);
|
||||
const auth: string = `${config.mongodb.user}:${config.mongodb.pass}`;
|
||||
const server: string = `${config.mongodb.host}:${config.mongodb.port}`
|
||||
const uri: string = `mongodb://${auth}@${server}/${config.mongodb.db}`;
|
||||
await mongoose.connect(uri);
|
||||
} catch(err: unknown) {
|
||||
throw new Error(`MongoDB connection failed. ${err}`);
|
||||
}
|
||||
try {
|
||||
await initializeMongo();
|
||||
} catch(err: unknown) {
|
||||
throw new Error(`Initialize MongoDB data failed. ${err}`);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user