Import / Export Talkgroups is working

This commit is contained in:
Luke Berndt
2023-03-19 10:29:02 -04:00
parent 8f7f4fae37
commit e7497a7d7a
4 changed files with 48 additions and 47 deletions

View File

@@ -1,9 +1,7 @@
const Talkgroup = require("../models/talkgroup");
const System = require("../models/system");
const fs = require('fs-extra');
const crypto = require("crypto");
var parse = require('csv-parse');
const {parse} = require('csv-parse');
exports.isLoggedIn = function (req, res, next) {
if (req.isAuthenticated()) return next();
@@ -148,7 +146,7 @@ async function csv_import(shortName, filename, callback) {
//router.post("/tg_import/:shortName", isLoggedIn, upload.single('file'), function(req, res, next) {
exports.importTalkgroups = function (req, res, next) {
process.nextTick(async function () {
const system = System.findOne({ shortName: req.params.shortName.toLowerCase() }).catch(err => {
const system = await System.findOne({ shortName: req.params.shortName.toLowerCase() }).catch(err => {
res.status(500);
console.error("Error - importTalkgroups: " + err);
res.json({ success: false, message: err });
@@ -174,6 +172,7 @@ exports.importTalkgroups = function (req, res, next) {
return;
}
if (!req.file || req.file.size === 0) {
console.error("Error - File is bad. Size");
res.status(500);
res.json({ success: false, message: "Please select a file." });
return;

View File

@@ -128,7 +128,6 @@ function isAdmin(req, res, next) {
}
function isLoggedIn(req, res, next) {
console.log(req.body);
if (req.isAuthenticated()) return next();
res.status(401).send({
success: false,
@@ -136,6 +135,22 @@ function isLoggedIn(req, res, next) {
});
};
function uploadFile(req, res, next) {
const upload = multer({dest: 'uploads/'}).single('file');
upload(req, res, function (err) {
if (err instanceof multer.MulterError) {
console.error("Multer Error: " + err)
} else if (err) {
console.error(err);
// An unknown error occurred when uploading.
}
console.log("Things look good for Multer")
// Everything went fine.
next()
})
}
// -------------------------------------------
configurePassport(app, passport)
@@ -145,13 +160,8 @@ configureExpress(app, passport)
app.use(express.static(path.join(__dirname, "public")));
app.get("")
//app.get("/permissions/:shortname", isOwner, permissions.fetchPermissions)
/*app.get("/permissions/:shortName", permissions.fetchPermissions);
app.delete("/permissions/:shortName/:permissionId", isAdmin, permissions.deletePermission);
app.post("/permissions/:shortName/:permissionId", isAdmin, permissions.updatePermission);
app.post("/permissions/:shortName", isAdmin, permissions.addPermission);*/
app.get("/talkgroups/:shortName", isLoggedIn, talkgroups.fetchTalkgroups)
app.post("/talkgroups/:shortName/import", isLoggedIn, upload.single('file'), talkgroups.importTalkgroups)
app.post("/talkgroups/:shortName/import", isLoggedIn, uploadFile, talkgroups.importTalkgroups)
app.get("/talkgroups/:shortName/export", isLoggedIn, talkgroups.exportTalkgroups)
app.post("/groups/:shortName/reorder", isLoggedIn, groups.reorderGroups);
app.post("/groups/:shortName/:groupId?", isLoggedIn, groups.upsertGroup);