2022-02-07 15:41:27 +01:00
|
|
|
const logger = require('./logger.js');
|
|
|
|
const util = require('./util.js');
|
|
|
|
const constants = require('./constants.js');
|
|
|
|
const modep = require('./modep.js');
|
2022-02-10 20:52:02 +01:00
|
|
|
const info = require('./info.js');
|
2022-02-07 15:41:27 +01:00
|
|
|
|
|
|
|
const endpoints = new Map();
|
|
|
|
|
2022-02-08 11:11:49 +01:00
|
|
|
function setEndpoint(url, get, post) {
|
2022-03-10 00:32:38 +01:00
|
|
|
if (get === undefined && post === undefined) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
var endpoint = {};
|
|
|
|
if (get !== undefined) {
|
|
|
|
endpoint.GET = get;
|
|
|
|
}
|
|
|
|
if (post !== undefined) {
|
|
|
|
endpoint.POST = post;
|
|
|
|
}
|
|
|
|
endpoints.set(url, endpoint);
|
|
|
|
logger.debug('set up endpoint \'' + url + '\' > ' + JSON.stringify(endpoint));
|
2022-02-07 15:41:27 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
function getEndpoints() {
|
|
|
|
return endpoints;
|
|
|
|
}
|
|
|
|
|
2022-03-10 00:32:38 +01:00
|
|
|
async function setupEndpoints() {
|
|
|
|
const timestamp = new Date();
|
|
|
|
logger.debug('setting up endpoints...');
|
|
|
|
setEndpoint(constants.API_INFO, { method: info.getHostInfo });
|
|
|
|
setEndpoint(constants.API_TEMPERATURE, { method: info.getTemperature });
|
|
|
|
setEndpoint(constants.API_BANKS, { method: modep.getBanks })
|
|
|
|
setEndpoint(constants.API_BANKS_BY_ID, { method: modep.getBankById });
|
|
|
|
setEndpoint(constants.API_PEDALBOARDS, { method: modep.getPedalboards });
|
|
|
|
setEndpoint(
|
|
|
|
constants.API_PEDALBOARDS_BY_ID,
|
|
|
|
{ method: modep.getPedalboardById },
|
|
|
|
{ method: modep.setPedalboardById }
|
|
|
|
);
|
|
|
|
setEndpoint(
|
|
|
|
constants.API_PEDALBOARDS_DEFAULT,
|
|
|
|
{ method: modep.getDefaultPedalboard }
|
|
|
|
);
|
|
|
|
setEndpoint(
|
|
|
|
constants.API_PEDALBOARDS_CURRENT,
|
|
|
|
{ method: modep.getCurrentPedalboard }
|
|
|
|
);
|
|
|
|
setEndpoint(
|
|
|
|
constants.API_PEDALS,
|
|
|
|
{ method: modep.getCurrentPedals }
|
|
|
|
);
|
|
|
|
setEndpoint(
|
|
|
|
constants.API_PEDAL_BY_ID,
|
|
|
|
{ method: modep.getCurrentPedalById },
|
|
|
|
{ method: modep.setControlByRequest }
|
|
|
|
);
|
|
|
|
setEndpoint(
|
|
|
|
constants.API_BYPASS,
|
|
|
|
undefined,
|
|
|
|
{ method: modep.toggleBypass }
|
|
|
|
);
|
|
|
|
setEndpoint(
|
|
|
|
constants.API_BYPASS_BY_ID,
|
|
|
|
undefined,
|
|
|
|
{ method: modep.toggleBypass }
|
|
|
|
);
|
|
|
|
logger.debug('setting up ' + endpoints.size + ' endpoints took ' + util.timeDiff(timestamp) + 'ms');
|
2022-02-07 15:41:27 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
setupEndpoints,
|
|
|
|
getEndpoints
|
|
|
|
}
|