mirror of
https://github.com/openmhz/trunk-server.git
synced 2026-11-13 17:27:37 -05:00
some of the backend is working
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
var ObjectID = require('mongodb').ObjectID;
|
var ObjectID = require('mongodb').ObjectID;
|
||||||
var db = require('../db');
|
var db = require('../db');
|
||||||
var mongoose = require("mongoose");
|
var mongoose = require("mongoose");
|
||||||
var Call = require("../models/call");
|
var {callModel:Call} = require("../models/call");
|
||||||
var Star = require("../models/star");
|
var Star = require("../models/star");
|
||||||
|
|
||||||
var defaultNumResults = 50;
|
var defaultNumResults = 50;
|
||||||
|
|||||||
72
backend/controllers/events.js
Normal file
72
backend/controllers/events.js
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
var ObjectID = require('mongodb').ObjectID;
|
||||||
|
var db = require('../db');
|
||||||
|
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));
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
const compareCalls = (a, b) => {
|
||||||
|
const aTimestamp = new Date(a.time).getTime()
|
||||||
|
const bTimestamp = new Date(b.time).getTime()
|
||||||
|
if (aTimestamp > bTimestamp) {
|
||||||
|
return -1
|
||||||
|
} else {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.addNewEvent = async function (req, res, next) {
|
||||||
|
process.nextTick(async function () {
|
||||||
|
let event = new Event();
|
||||||
|
if (!req.body) {
|
||||||
|
console.error("No Request Body")
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
//console.log(req);
|
||||||
|
console.log(req.body);
|
||||||
|
const title = req.body.title;
|
||||||
|
const description = req.body.description;
|
||||||
|
const callIds = req.body.callIds;
|
||||||
|
let objectIds = [];
|
||||||
|
callIds.forEach((id) => {
|
||||||
|
objectIds.push(new ObjectID(id));
|
||||||
|
})
|
||||||
|
|
||||||
|
event.title = title.replace(/[^a-zA-Z0-9 \.\-\_]/g, "");
|
||||||
|
event.description = description.replace(/[^a-zA-Z0-9 \.\-\_]/g, "");
|
||||||
|
try {
|
||||||
|
let calls = await Call.find({ "_id": { $in: objectIds } });
|
||||||
|
if (callIds.length != calls.length) {
|
||||||
|
res.status(500);
|
||||||
|
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.expireTime = event.startTime;
|
||||||
|
calls.forEach((call) => {
|
||||||
|
if (event.shortNames.indexOf(call.shortName) === -1) {
|
||||||
|
event.shortNames.push(call.shortName);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
event.calls = calls;
|
||||||
|
console.log(await event.save());
|
||||||
|
res.contentType('json');
|
||||||
|
res.send(JSON.stringify({
|
||||||
|
success: false,
|
||||||
|
error: "Upload failed"
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
console.error(err);
|
||||||
|
res.status(500);
|
||||||
|
res.send("Error parsing sourcelist " + err);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
};
|
||||||
@@ -8,7 +8,7 @@ var mongoose = require("mongoose");
|
|||||||
var System = require("../models/system");
|
var System = require("../models/system");
|
||||||
var Talkgroup = require("../models/talkgroup");
|
var Talkgroup = require("../models/talkgroup");
|
||||||
var Group = require("../models/group");
|
var Group = require("../models/group");
|
||||||
var Call = require("../models/call");
|
var {callModel:Call} = require("../models/call");
|
||||||
var secrets = require("../config/secrets");
|
var secrets = require("../config/secrets");
|
||||||
var util = require("util")
|
var util = require("util")
|
||||||
var config = require('../config/config.json');
|
var config = require('../config/config.json');
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ var systems = require("./controllers/systems");
|
|||||||
var talkgroups = require("./controllers/talkgroups");
|
var talkgroups = require("./controllers/talkgroups");
|
||||||
var groups = require("./controllers/groups");
|
var groups = require("./controllers/groups");
|
||||||
var stats = require("./controllers/stats");
|
var stats = require("./controllers/stats");
|
||||||
|
var events = require("./controllers/events");
|
||||||
var config = require('./config/config.json');
|
var config = require('./config/config.json');
|
||||||
|
|
||||||
var mongoose = require("mongoose");
|
var mongoose = require("mongoose");
|
||||||
@@ -169,6 +169,7 @@ function addSystemClients(req, res, next) {
|
|||||||
|
|
||||||
|
|
||||||
/*------ CALLS ----------*/
|
/*------ CALLS ----------*/
|
||||||
|
|
||||||
app.get('/card/:id', calls.get_card);
|
app.get('/card/:id', calls.get_card);
|
||||||
app.get('/:shortName/call/:id', calls.get_call);
|
app.get('/:shortName/call/:id', calls.get_call);
|
||||||
app.get('/:shortName/calls/latest', calls.get_latest_calls);
|
app.get('/:shortName/calls/latest', calls.get_latest_calls);
|
||||||
@@ -209,6 +210,9 @@ app.get('/:shortName/talkgroups', talkgroups.get_talkgroups);
|
|||||||
/*------ GROUPS ----------*/
|
/*------ GROUPS ----------*/
|
||||||
app.get('/:shortName/groups', groups.get_groups);
|
app.get('/:shortName/groups', groups.get_groups);
|
||||||
|
|
||||||
|
/*------ EVENTS ----------*/
|
||||||
|
app.post('/events', events.addNewEvent);
|
||||||
|
|
||||||
|
|
||||||
/*------ STATS ----------*/
|
/*------ STATS ----------*/
|
||||||
app.get('/:shortName/errors', stats.get_errors);
|
app.get('/:shortName/errors', stats.get_errors);
|
||||||
|
|||||||
@@ -26,4 +26,5 @@ var callSchema = mongoose.Schema({
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
module.exports = mongoose.model('Call', callSchema);
|
exports.callSchema = callSchema;
|
||||||
|
exports.callModel = mongoose.model('Call', callSchema);
|
||||||
|
|||||||
19
backend/models/event.js
Normal file
19
backend/models/event.js
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
var mongoose = require('mongoose');
|
||||||
|
var {callSchema} = require('./call');
|
||||||
|
console.log(callSchema)
|
||||||
|
|
||||||
|
var groupSchema = mongoose.Schema({
|
||||||
|
title: String,
|
||||||
|
description: String,
|
||||||
|
expireTime: Number,
|
||||||
|
startTime: Number,
|
||||||
|
endTime: Number,
|
||||||
|
shortNames: [String],
|
||||||
|
calls: [callSchema]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
timestamps: true
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = mongoose.model('Event', groupSchema);
|
||||||
4339
backend/package-lock.json
generated
Normal file
4339
backend/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -77,11 +77,12 @@ function PlaylistBuilder(props) {
|
|||||||
let listItems = "";
|
let listItems = "";
|
||||||
|
|
||||||
listItems = playlist.map((call, index) => {
|
listItems = playlist.map((call, index) => {
|
||||||
let tgAlpha = "";
|
let tgAlpha = call.talkgroupNum;
|
||||||
if (talkgroupsData) {
|
if (talkgroupsData) {
|
||||||
const talkgroup = talkgroupsData.talkgroups[call.talkgroupNum]
|
const talkgroup = talkgroupsData.talkgroups[call.talkgroupNum]
|
||||||
tgAlpha = talkgroup.alpha
|
tgAlpha = talkgroup.alpha?talkgroup.alpha:tgAlpha;
|
||||||
}
|
}
|
||||||
|
|
||||||
const time = new Date(call.time);
|
const time = new Date(call.time);
|
||||||
const callTime = time.toLocaleTimeString();
|
const callTime = time.toLocaleTimeString();
|
||||||
const callDate = time.toLocaleDateString();
|
const callDate = time.toLocaleDateString();
|
||||||
|
|||||||
6
node_modules/.package-lock.json
generated
vendored
Normal file
6
node_modules/.package-lock.json
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"name": "trunk-server",
|
||||||
|
"lockfileVersion": 2,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {}
|
||||||
|
}
|
||||||
6
package-lock.json
generated
Normal file
6
package-lock.json
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"name": "trunk-server",
|
||||||
|
"lockfileVersion": 2,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user