mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-18 13:44:12 +00:00
migrate logic
This commit is contained in:
+2
-2
@@ -18,7 +18,7 @@ await db.read();
|
|||||||
|
|
||||||
// If file.json doesn't exist, db.data will be null
|
// If file.json doesn't exist, db.data will be null
|
||||||
// Set default data
|
// Set default data
|
||||||
// db.data ||= { events: [] };
|
// db.data ||= { events: [] }; NODE v15 - v16
|
||||||
if (db.data == null) {
|
if (db.data == null) {
|
||||||
db.data = dbModel;
|
db.data = dbModel;
|
||||||
db.write();
|
db.write();
|
||||||
@@ -73,7 +73,7 @@ const server = http.createServer(app);
|
|||||||
|
|
||||||
// init timer
|
// init timer
|
||||||
global.timer = new EventTimer(server, config);
|
global.timer = new EventTimer(server, config);
|
||||||
global.timer.setupWithEventList(events);
|
global.timer.setupWithEventList(data.events);
|
||||||
|
|
||||||
// Start server
|
// Start server
|
||||||
server.listen(port, () =>
|
server.listen(port, () =>
|
||||||
|
|||||||
@@ -1,26 +1,26 @@
|
|||||||
// get database
|
// get database
|
||||||
import { db } from '../app.js';
|
import { db, data } from '../app.js';
|
||||||
|
|
||||||
// utils
|
// utils
|
||||||
import { customAlphabet } from 'nanoid';
|
import { customAlphabet } from 'nanoid';
|
||||||
const nanoid = customAlphabet('1234567890abcdef', 4);
|
const nanoid = customAlphabet('1234567890abcdef', 4);
|
||||||
import {
|
import {
|
||||||
event as eventDef,
|
event as eventDef,
|
||||||
|
delay as delayDef,
|
||||||
block as blockDef,
|
block as blockDef,
|
||||||
delay as delayDEf,
|
|
||||||
} from '../data/eventsDefinition.js';
|
} from '../data/eventsDefinition.js';
|
||||||
|
|
||||||
function _getEventsCount() {
|
function _getEventsCount() {
|
||||||
return db.get('events').size().value();
|
return Array.from(data.events).length;
|
||||||
}
|
}
|
||||||
|
|
||||||
function _pushNew(entry) {
|
function _pushNew(entry) {
|
||||||
return db.get('events').push(entry).write();
|
return data.events.push(entry).write();
|
||||||
}
|
}
|
||||||
|
|
||||||
function _insertAt(entry, index) {
|
async function _insertAt(entry, index) {
|
||||||
// get events
|
// get events
|
||||||
let events = db.get('events').value();
|
let events = data.events;
|
||||||
let count = events.length;
|
let count = events.length;
|
||||||
let order = entry.order;
|
let order = entry.order;
|
||||||
|
|
||||||
@@ -43,15 +43,18 @@ function _insertAt(entry, index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// save events
|
// save events
|
||||||
db.set('events', events).write();
|
data.events = events;
|
||||||
|
await db.write();
|
||||||
}
|
}
|
||||||
|
|
||||||
function _removeById(eventId) {
|
async function _removeById(eventId) {
|
||||||
return db.get('events').remove({ id: eventId }).write();
|
data.events = Array.from(data.events).filter((e) => e.id != eventId);
|
||||||
|
await db.write();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getEventEvents() {
|
function getEventEvents() {
|
||||||
return db.get('events').chain().filter({ type: 'event' }).value();
|
// return data.events.filter((e) => e.type === 'event');
|
||||||
|
return Array.from(data.events).filter((e) => e.type === 'event');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Updates timer object
|
// Updates timer object
|
||||||
@@ -73,14 +76,14 @@ function _deleteTimerId(entryId) {
|
|||||||
// Create controller for GET request to '/events'
|
// Create controller for GET request to '/events'
|
||||||
// Returns -
|
// Returns -
|
||||||
export const eventsGetAll = async (req, res) => {
|
export const eventsGetAll = async (req, res) => {
|
||||||
const results = db.get('events').value();
|
res.json(data.events);
|
||||||
res.json(results);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Create controller for GET request to '/events/:eventId'
|
// Create controller for GET request to '/events/:eventId'
|
||||||
// Returns -
|
// Returns -
|
||||||
export const eventsGetById = async (req, res) => {
|
export const eventsGetById = async (req, res) => {
|
||||||
const e = db.get('events').find({ id: req.params.eventId }).value();
|
const e = data.events.find({ id: req.params.eventId }).value();
|
||||||
|
console.log('event by id', e);
|
||||||
res.json(e);
|
res.json(e);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -99,13 +102,13 @@ export const eventsPost = async (req, res) => {
|
|||||||
|
|
||||||
switch (req.body.type) {
|
switch (req.body.type) {
|
||||||
case 'event':
|
case 'event':
|
||||||
newEvent = { ...eventDefs.event, ...req.body };
|
newEvent = { ...eventDef, ...req.body };
|
||||||
break;
|
break;
|
||||||
case 'delay':
|
case 'delay':
|
||||||
newEvent = { ...eventDefs.delay, ...req.body };
|
newEvent = { ...delayDef, ...req.body };
|
||||||
break;
|
break;
|
||||||
case 'block':
|
case 'block':
|
||||||
newEvent = { ...eventDefs.block, ...req.body };
|
newEvent = { ...blockDef, ...req.body };
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -149,17 +152,23 @@ export const eventsPut = async (req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
db.get('events')
|
const eventIndex = data.events.findIndex((e) => e.id === req.body.id);
|
||||||
.find({ id: req.body.id })
|
if (eventIndex === -1) {
|
||||||
.assign({ ...req.body })
|
res.status(400).send(`No Id found found`);
|
||||||
.update('revision', (n) => n + 1)
|
return;
|
||||||
.write();
|
}
|
||||||
|
|
||||||
|
const e = data.events[eventIndex];
|
||||||
|
data.events[eventIndex] = { ...e, ...req.body };
|
||||||
|
data.events[eventIndex].revision++;
|
||||||
|
db.write();
|
||||||
|
|
||||||
// update timer
|
// update timer
|
||||||
_updateTimersSingle(req.body.id, req.body);
|
_updateTimersSingle(req.body.id, req.body);
|
||||||
|
|
||||||
res.sendStatus(200);
|
res.sendStatus(200);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
res.status(400).send(error);
|
res.status(400).send(error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -168,7 +177,7 @@ export const eventsPut = async (req, res) => {
|
|||||||
// Returns -
|
// Returns -
|
||||||
export const eventsPatch = async (req, res) => {
|
export const eventsPatch = async (req, res) => {
|
||||||
// Code is the same as put, call that
|
// Code is the same as put, call that
|
||||||
this.eventsPut(req, res);
|
eventsPut(req, res);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const eventsReorder = async (req, res) => {
|
export const eventsReorder = async (req, res) => {
|
||||||
@@ -181,7 +190,7 @@ export const eventsReorder = async (req, res) => {
|
|||||||
const { index, from, to } = req.body;
|
const { index, from, to } = req.body;
|
||||||
|
|
||||||
// get events
|
// get events
|
||||||
let events = db.get('events').value();
|
let events = data.events;
|
||||||
let idx = events.findIndex((e) => e.id === index, from);
|
let idx = events.findIndex((e) => e.id === index, from);
|
||||||
|
|
||||||
// Check if item is at given index
|
// Check if item is at given index
|
||||||
@@ -198,7 +207,8 @@ export const eventsReorder = async (req, res) => {
|
|||||||
events.splice(to, 0, reorderedItem);
|
events.splice(to, 0, reorderedItem);
|
||||||
|
|
||||||
// save events
|
// save events
|
||||||
db.set('events', events).write();
|
data.events = events;
|
||||||
|
db.write();
|
||||||
|
|
||||||
// TODO: would it be more efficient to reorder at timer?
|
// TODO: would it be more efficient to reorder at timer?
|
||||||
// update timer
|
// update timer
|
||||||
@@ -222,7 +232,7 @@ export const eventsApplyDelay = async (req, res) => {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// get events
|
// get events
|
||||||
let events = db.get('events').value();
|
let events = data.events;
|
||||||
|
|
||||||
// AUX
|
// AUX
|
||||||
let delayIndex = null;
|
let delayIndex = null;
|
||||||
@@ -263,7 +273,8 @@ export const eventsApplyDelay = async (req, res) => {
|
|||||||
if (blockIndex) events.splice(blockIndex - 1, 1);
|
if (blockIndex) events.splice(blockIndex - 1, 1);
|
||||||
|
|
||||||
// update events
|
// update events
|
||||||
db.set('events', events).write();
|
data.events = events;
|
||||||
|
db.write();
|
||||||
|
|
||||||
// update timer
|
// update timer
|
||||||
_updateTimers();
|
_updateTimers();
|
||||||
@@ -305,14 +316,14 @@ export const eventsDelete = async (req, res) => {
|
|||||||
export const eventsDeleteAll = async (req, res) => {
|
export const eventsDeleteAll = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
// set with nothing
|
// set with nothing
|
||||||
db.set('events', []).write();
|
data.events = [];
|
||||||
|
db.write();
|
||||||
|
|
||||||
// update timer object
|
// update timer object
|
||||||
_updateTimersSingle();
|
_updateTimersSingle();
|
||||||
|
|
||||||
res.sendStatus(201);
|
res.sendStatus(201);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log('debug:', error);
|
|
||||||
res.status(400).send(error);
|
res.status(400).send(error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user