Events is functional!!!

Just need to clean some things up and test
This commit is contained in:
Luke Berndt
2023-01-22 21:56:53 -05:00
parent 1ab774ec8f
commit b23734c4a3
14 changed files with 506 additions and 29 deletions

View File

@@ -4,12 +4,34 @@ var mongoose = require("mongoose");
var Event = require("../models/event");
var { callModel: Call, callSchema } = require("../models/call");
/*
var oids = [];
ids.forEach(function(item){
oids.push(new ObjectId(item));
});
*/
exports.getEvent = async function (req, res, next) {
try {
var objectId = req.params.id;
const event = await Event.findById(objectId).exec();
res.contentType('json');
res.send(JSON.stringify(event));
}
catch (err) {
console.error(err);
res.status(500);
res.send(`Error fetching Event ${req.params.id}: ` + err);
}
}
exports.getEvents = async function (req, res, next) {
try {
let events = await Event.find({},["title", "description", "startTime", "endTime", "expireTime", "numCalls", "createdAt"]).exec();
res.contentType('json');
res.send(JSON.stringify(events));
}
catch (err) {
console.error(err);
res.status(500);
res.send("Error fetching Events" + err);
}
}
const compareCalls = (a, b) => {
const aTimestamp = new Date(a.time).getTime()
const bTimestamp = new Date(b.time).getTime()
@@ -45,8 +67,8 @@ exports.addNewEvent = async function (req, res, next) {
res.send("Not all of the Calls were found");
}
calls = calls.sort(compareCalls);
event.startTime = new Date(calls[0].time).getTime();
event.endTime = new Date(calls[calls.length - 1].time).getTime();
event.startTime = new Date(calls[0].time);
event.endTime = new Date(calls[calls.length - 1].time);
event.expireTime = event.startTime;
calls.forEach((call) => {
if (event.shortNames.indexOf(call.shortName) === -1) {
@@ -54,6 +76,7 @@ exports.addNewEvent = async function (req, res, next) {
}
});
event.calls = calls;
event.numCalls = calls.length;
console.log(await event.save());
res.contentType('json');
res.send(JSON.stringify({

View File

@@ -212,7 +212,8 @@ app.get('/:shortName/groups', groups.get_groups);
/*------ EVENTS ----------*/
app.post('/events', events.addNewEvent);
app.get('/events', events.getEvents);
app.get('/events/:id', events.getEvent);
/*------ STATS ----------*/
app.get('/:shortName/errors', stats.get_errors);

View File

@@ -2,18 +2,22 @@ var mongoose = require('mongoose');
var {callSchema} = require('./call');
console.log(callSchema)
var groupSchema = mongoose.Schema({
var eventSchema = mongoose.Schema({
title: String,
description: String,
expireTime: Number,
startTime: Number,
endTime: Number,
expireTime: Date,
startTime: Date,
endTime: Date,
shortNames: [String],
calls: [callSchema]
calls: [callSchema],
numCalls: Number
},
{
timestamps: true
});
module.exports = mongoose.model('Event', groupSchema);
// add virtual if You want
eventSchema.virtual('callCount').get(function () {
return this.calls.length;
});
module.exports = mongoose.model('Event', eventSchema);