75 lines
1.7 KiB
JavaScript
75 lines
1.7 KiB
JavaScript
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
|