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