moved cache to own .js file

This commit is contained in:
Daniel Sommer 2022-02-08 14:07:59 +01:00
parent 54d73e1530
commit 187b4beb70
2 changed files with 118 additions and 19 deletions

95
libs/cache.js Normal file
View file

@ -0,0 +1,95 @@
const logger = require('./logger.js');
var banks = undefined;
var pedalboards = undefined;
var defaultPedalboard = undefined;
var currentPedalboard = undefined;
var currentPedals = undefined;
function getBanks() {
return banks;
}
function clearBanks() {
logger.debug('clearing bank(s)');
setBanks(undefined);
}
function setBanks(value) {
logger.debug('caching ' + value.length + ' bank(s)');
banks = value;
}
function getPedalboards() {
return pedalboards;
}
function clearPedalboards() {
logger.debug('clearing pedalboard(s)');
setPedalboards(undefined);
}
function setPedalboards(value) {
logger.debug('caching ' + value.length + ' pedalboard(s)');
pedalboards = value;
}
function getDefaultPedalboard() {
return defaultPedalboard;
}
function clearDefaultPedalboard() {
logger.debug('clearing default pedalboard');
setDefaultPedalboard(undefined);
}
function setDefaultPedalboard(value) {
logger.debug('caching default pedalboard');
defaultPedalboard = value;
}
function getCurrentPedalboard() {
return currentPedalboard;
}
function clearCurrentPedalboard() {
logger.debug('clearing current pedalboard');
setCurrentPedalboard(undefined);
}
function setCurrentPedalboard(value) {
logger.debug('caching current pedalboard');
currentPedalboard = value;
}
function getCurrentPedals() {
return currentPedals;
}
function clearCurrenPedals() {
logger.debug('clearing current pedal(s))');
setCurrentPedals(undefined);
}
function setCurrentPedals(value) {
logger.debug('caching ' + value.length + ' current pedal(s)');
currentPedals = value;
}
module.exports = {
getBanks,
clearBanks,
setBanks,
getPedalboards,
clearPedalboards,
setPedalboards,
getDefaultPedalboard,
clearDefaultPedalboard,
setDefaultPedalboard,
getCurrentPedalboard,
clearCurrentPedalboard,
setCurrentPedalboard,
getCurrentPedals,
clearCurrenPedals,
setCurrentPedals
}

View file

@ -2,17 +2,14 @@ const config = require('../config.json');
const util = require('./util.js'); const util = require('./util.js');
const constants = require('./constants.js'); const constants = require('./constants.js');
const logger = require('./logger.js'); const logger = require('./logger.js');
const cache = require('./cache.js');
const path = require('path'); const path = require('path');
const fs = require('fs'); const fs = require('fs');
const { spawn } = require('child_process') const { spawn } = require('child_process')
const ttl2jsonld = require('@frogcat/ttl2jsonld').parse; const ttl2jsonld = require('@frogcat/ttl2jsonld').parse;
// TODO: MOVE TO CACHE.JS // TODO: MOVE TO CACHE.JS
var banks = undefined;
var pedalboards = undefined;
var defaultPedalboard = undefined;
var currentPedalboard = undefined;
var currentPedals = undefined;
function reset() { function reset() {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
@ -24,6 +21,7 @@ function reset() {
function getBanks() { function getBanks() {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var banks = cache.getBanks();
if (banks != undefined) { if (banks != undefined) {
return resolve(banks); return resolve(banks);
} }
@ -42,6 +40,7 @@ function getBanks() {
bank.id = index; bank.id = index;
} }
banks = util.sortById(banks); banks = util.sortById(banks);
cache.setBanks(banks);
return resolve(banks); return resolve(banks);
}) })
.catch(reject); .catch(reject);
@ -66,6 +65,7 @@ function getBankById(bankId) {
function getPedalboards() { function getPedalboards() {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var pedalboards = cache.getPedalboards();
if (pedalboards != undefined) { if (pedalboards != undefined) {
return resolve(pedalboards); return resolve(pedalboards);
} }
@ -86,10 +86,10 @@ function getPedalboards() {
// return resolve(fake); // return resolve(fake);
util.httpGET(config.modep.host, config.modep.port, '/pedalboard/list') util.httpGET(config.modep.host, config.modep.port, '/pedalboard/list')
.then(function (data) { .then(function (pedalboards) {
var id = 1; var id = 1;
for (var index = 0; index < data.length; index++) { for (var index = 0; index < pedalboards.length; index++) {
var pedalboard = data[index]; var pedalboard = pedalboards[index];
if (pedalboard.bundle == constants.PEDALBOARD_DEFAULT) { if (pedalboard.bundle == constants.PEDALBOARD_DEFAULT) {
pedalboard.id = 0; pedalboard.id = 0;
defaultPedalboard = pedalboard; defaultPedalboard = pedalboard;
@ -98,7 +98,8 @@ function getPedalboards() {
pedalboard.id = id; pedalboard.id = id;
id++; id++;
} }
pedalboards = util.sortById(data); pedalboards = util.sortById(pedalboards);
cache.setPedalboards(pedalboards);
return resolve(pedalboards); return resolve(pedalboards);
}) })
.catch(reject); .catch(reject);
@ -107,17 +108,22 @@ function getPedalboards() {
function getDefaultPedalboard() { function getDefaultPedalboard() {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var defaultPedalboard = cache.getDefaultPedalboard();
if (defaultPedalboard != undefined) { if (defaultPedalboard != undefined) {
return resolve(defaultPedalboard); return resolve(defaultPedalboard);
} }
getPedalboardByBundle(constants.PEDALBOARD_DEFAULT) getPedalboardByBundle(constants.PEDALBOARD_DEFAULT)
.then(resolve) .then(function (defaultPedalboard) {
cache.setDefaultPedalboard(defaultPedalboard);
return resolve(defaultPedalboard);
})
.catch(reject); .catch(reject);
}); });
} }
function getCurrentPedalboard() { function getCurrentPedalboard() {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var currentPedalboard = cache.getCurrentPedalboard();
if (currentPedalboard != undefined && currentPedalboard.id != undefined) { if (currentPedalboard != undefined && currentPedalboard.id != undefined) {
return resolve(currentPedalboard); return resolve(currentPedalboard);
} }
@ -133,8 +139,8 @@ function getCurrentPedalboard() {
// PRODUCTION // PRODUCTION
util.httpGET(config.modep.host, config.modep.port, '/pedalboard/current') util.httpGET(config.modep.host, config.modep.port, '/pedalboard/current')
.then(getPedalboardByBundle) .then(getPedalboardByBundle)
.then(function (pedalboard) { .then(function (currentPedalboard) {
currentPedalboard = pedalboard; cache.setCurrentPedalboard(currentPedalboard);
return resolve(currentPedalboard) return resolve(currentPedalboard)
}) })
.catch(reject); .catch(reject);
@ -213,12 +219,16 @@ function getCurrentPedalById(id) {
function getCurrentPedals() { function getCurrentPedals() {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var currentPedals = cache.getCurrentPedals();
if (currentPedals) { if (currentPedals) {
return resolve(currentPedals); return resolve(currentPedals);
} }
getCurrentPedalboard() getCurrentPedalboard()
.then(parseCurrentPedalboard) .then(parseCurrentPedalboard)
.then(resolve) .then(function (pedals) {
cache.setCurrentPedals(pedals);
return resolve(pedals);
})
.catch(reject); .catch(reject);
}); });
} }
@ -341,12 +351,6 @@ function setControlValue(pedalId, requestParams) {
}); });
} }
function sendValueToControl(pedalId, controlId, value) {
return new Promise(function (resolve, reject) {
});
}
function setPedalboardById(pedalboardId) { function setPedalboardById(pedalboardId) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
if (pedalboardId == undefined) { if (pedalboardId == undefined) {