const moment = require("moment/moment"); const { getMongoConnection } = require("./mongoDBPool"); const { MONGO_DB, } = process.env; const DB = MONGO_DB || 'lts'; async function insertSessions(sessions, clear) { const conn = await getMongoConnection(); try { const db = conn.db(DB); const sessionsCollection = db.collection('sessions'); if (clear) { sessionsCollection.deleteMany({}); } await sessionsCollection.insertMany(sessions); } catch (err) { console.error(err); } finally { await conn.close(); } } async function getSessions(start, end) { const conn = await getMongoConnection(); try { const db = conn.db(DB); const sessionsCollection = db.collection('sessions'); const startDate = moment(start).utc().startOf('day').toDate(); const endDate = moment(end).utc().endOf('day').toDate(); const result = await sessionsCollection.aggregate([{ $addFields: { completedDate: { $dateFromString: { "dateString": "$completedAt" } }, createdDate: { $dateFromString: { "dateString": "$createdAt" } }, updatedDate: { $dateFromString: { "dateString": "$updatedAt" } } } }, { $match: { createdDate: { $gt: startDate, $lte: endDate } } }]).toArray(); return result; } catch (err) { console.error(err); } finally { await conn.close(); } } module.exports = { insertSessions, getSessions, }; //http://localhost:3001/api/v1/ivao/init-sessions?callsign=LTS&from=2022-01-01T00:00:00&to=2023-01-04T23:59:59