64 lines
2 KiB
JavaScript
64 lines
2 KiB
JavaScript
|
const logger = require('./logger.js');
|
||
|
const util = require('./util.js');
|
||
|
const constants = require('./constants.js');
|
||
|
const modep = require('./modep.js');
|
||
|
|
||
|
const endpoints = new Map();
|
||
|
|
||
|
function setEndpoints(url, data) {
|
||
|
var startTime = new Date();
|
||
|
var index = 0;
|
||
|
var elements = [];
|
||
|
for (var index = 0; index < data.length; index++) {
|
||
|
var element = data[index];
|
||
|
element.id = index;
|
||
|
setEndpoint(url + '/' + element.id, [constants.HTTP_GET, constants.HTTP_POST], element);
|
||
|
elements.push(element);
|
||
|
}
|
||
|
elements = elements.sort(function (a, b) {
|
||
|
return a.id - b.id;
|
||
|
});
|
||
|
setEndpoint(url, constants.HTTP_GET, elements);
|
||
|
logger.debug('setting up ' + elements.length + ' endpoint(s) for path \'' + url + '\' took ' + util.timeDiff(startTime) + 'ms');
|
||
|
}
|
||
|
|
||
|
function setEndpoint(url, types, data) {
|
||
|
logger.debug('setting up \'' + types + '\' endpoint \'' + url + '\'...')
|
||
|
endpoints.set(url, { types: types, data: data });
|
||
|
}
|
||
|
|
||
|
function getEndpoints() {
|
||
|
return endpoints;
|
||
|
}
|
||
|
|
||
|
function setupEndpoints() {
|
||
|
return new Promise(function (resolve, reject) {
|
||
|
modep.getBanks()
|
||
|
.then(function (data) {
|
||
|
setEndpoints(constants.API_BANKS, data);
|
||
|
})
|
||
|
.then(modep.getPedalboards)
|
||
|
.then(function (data) {
|
||
|
setEndpoints(constants.API_PEDALBOARDS, data);
|
||
|
})
|
||
|
.then(modep.getDefaultPedalboard)
|
||
|
.then(function (data) {
|
||
|
setEndpoint(constants.API_PEDALBOARDS_DEFAULT, constants.HTTP_GET, data);
|
||
|
})
|
||
|
.then(modep.getCurrentPedalboard)
|
||
|
.then(function (data) {
|
||
|
setEndpoint(constants.API_PEDALBOARDS_CURRENT, constants.HTTP_GET, data);
|
||
|
})
|
||
|
.then(modep.getCurrentPedals)
|
||
|
.then(function (data) {
|
||
|
setEndpoints(constants.API_PEDALS, data);
|
||
|
})
|
||
|
.then(resolve)
|
||
|
.catch(reject);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
setupEndpoints,
|
||
|
getEndpoints
|
||
|
}
|