|
|
@ -41,20 +41,15 @@ async function login(widget, service) {
|
|
|
|
|
|
|
|
|
|
|
|
async function apiCall(widget, endpoint, service) {
|
|
|
|
async function apiCall(widget, endpoint, service) {
|
|
|
|
let key = cache.get(`${sessionTokenCacheKey}.${service}`);
|
|
|
|
let key = cache.get(`${sessionTokenCacheKey}.${service}`);
|
|
|
|
const method = "GET";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
|
|
|
|
let apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
|
|
|
|
let [status, contentType, data, responseHeaders] = await httpProxy(apiUrl, {
|
|
|
|
let [status, contentType, data, responseHeaders] = await httpProxy(apiUrl);
|
|
|
|
method
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (status === 404) {
|
|
|
|
if (status === 404) {
|
|
|
|
logger.error("QNAP API rejected the request, attempting to obtain new session token");
|
|
|
|
logger.error("QNAP API rejected the request, attempting to obtain new session token");
|
|
|
|
key = await login(widget, service);
|
|
|
|
key = await login(widget, service);
|
|
|
|
apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
|
|
|
|
apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
|
|
|
|
[status, contentType, data, responseHeaders] = await httpProxy(apiUrl, {
|
|
|
|
[status, contentType, data, responseHeaders] = await httpProxy(apiUrl);
|
|
|
|
method
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (status !== 200) {
|
|
|
|
if (status !== 200) {
|
|
|
@ -63,7 +58,6 @@ async function apiCall(widget, endpoint, service) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const dataDecoded = xml2json(data.toString(), { compact: true });
|
|
|
|
const dataDecoded = xml2json(data.toString(), { compact: true });
|
|
|
|
logger.debug("Dayta '%s'", dataDecoded);
|
|
|
|
|
|
|
|
return { status, contentType, data: JSON.parse(dataDecoded.toString()), responseHeaders };
|
|
|
|
return { status, contentType, data: JSON.parse(dataDecoded.toString()), responseHeaders };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|