setup router + tidy up

This commit is contained in:
cv
2021-05-27 22:56:49 +02:00
parent b61a82627e
commit f887817a68
6 changed files with 36 additions and 23 deletions
+1
View File
@@ -10,3 +10,4 @@ export const serverURL = calculateServer();
export const eventURL = serverURL + EVENT_TABLE;
export const eventsURL = serverURL + EVENTS_TABLE;
export const playbackURL = serverURL + 'playback';
export const ontimeURL = serverURL + 'ontime';
-15
View File
@@ -1,21 +1,6 @@
import axios from 'axios';
import { eventsURL } from '../api/apiConstants';
export const downloadEvents = async () => {
await axios({
url: eventsURL + '/download',
method: 'GET',
responseType: 'blob', // important
}).then((response) => {
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'events.json');
document.body.appendChild(link);
link.click();
});
};
export const fetchAllEvents = async () => {
const res = await axios.get(eventsURL);
return res.data;
+17
View File
@@ -0,0 +1,17 @@
import axios from 'axios';
import { ontimeURL } from './apiConstants';
export const downloadEvents = async () => {
await axios({
url: ontimeURL + '/db',
method: 'GET',
responseType: 'blob', // important
}).then((response) => {
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'events.json');
document.body.appendChild(link);
link.click();
});
};
+7 -4
View File
@@ -11,6 +11,7 @@ export const db = new Low(adapter);
import express from 'express';
import http from 'http';
import cors from 'cors';
import multer from 'multer';
import { dbModel } from './data/dataModel.js';
// Read data from JSON file, this will set db.data content
@@ -30,9 +31,7 @@ export const data = db.data;
// Import Routes
import { router as eventsRouter } from './routes/eventsRouter.js';
import { router as eventRouter } from './routes/eventRouter.js';
// No settings yet
// const settingsRouter = require('./routes/settingsRouter.js');
import { router as ontimeRouter } from './routes/ontimeRouter.js';
// Setup default port
const port = process.env.PORT || config.server.port;
@@ -50,12 +49,16 @@ app.use(cors());
app.options('*', cors());
// Implement middleware
app.use(express.static('./public'));
app.use('/uploads', express.static('uploads'));
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.use(express.json({ limit: '1mb' }));
// Implement route endpoints
app.use('/events', eventsRouter);
app.use('/event', eventRouter);
app.use('/ontime', ontimeRouter);
// implement general router
app.get('/', (req, res) => {
+7 -2
View File
@@ -1,7 +1,12 @@
// Create controller for GET request to '/ontime/download'
import { db, data } from '../app.js';
function getEventTitle() {
return data.event.title;
}
// Returns -
export const eventsDownload = async (req, res) => {
res.download('db.json', 'ontime events.json', (err) => {
export const dbDownload = async (req, res) => {
const fileTitle = getEventTitle() || 'ontime events';
res.download('db.json', `${fileTitle}.json`, (err) => {
if (err) {
res.status(500).send({
message: 'Could not download the file. ' + err,
+4 -2
View File
@@ -1,5 +1,7 @@
import express from 'express';
export const router = express.Router();
// create route between controller and '/ontime/download' endpoint
router.get('/download', eventsDownload);
import { dbDownload, dbUpload } from '../controllers/ontimeController.js';
// create route between controller and '/ontime/db' endpoint
router.get('/db', dbDownload);