39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
import mongoose from 'mongoose';
|
|
|
|
import {config} from './config';
|
|
|
|
async function resetMongo(): Promise<void> {
|
|
try{
|
|
// await clearContests();
|
|
// await clearProblems();
|
|
// await clearSessions();
|
|
}catch(err: unknown){
|
|
throw new Error(`MongoDB reset failed. ${err}`);
|
|
}
|
|
}
|
|
|
|
async function initializeMongo(): Promise<void> {
|
|
try{
|
|
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}`);
|
|
}
|
|
}
|