Merge pull request #1519 from theshaun/main

QNAP plugin, fix key expiry issue
This commit is contained in:
shamoon 2023-05-19 13:28:23 -07:00 committed by GitHub
commit 6046f7911e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -57,8 +57,23 @@ async function apiCall(widget, endpoint, service) {
return { status, contentType, data: null, responseHeaders };
}
const dataDecoded = xml2json(data.toString(), { compact: true });
return { status, contentType, data: JSON.parse(dataDecoded.toString()), responseHeaders };
let dataDecoded = JSON.parse(xml2json(data.toString(), { compact: true }).toString());
if (dataDecoded.QDocRoot.authPassed._cdata === '0') {
logger.error("QNAP API rejected the request, attempting to obtain new session token");
key = await login(widget, service);
apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
[status, contentType, data, responseHeaders] = await httpProxy(apiUrl);
if (status !== 200) {
logger.error("Error getting data from QNAP: %s status %d. Data: %s", apiUrl, status, data);
return { status, contentType, data: null, responseHeaders };
}
dataDecoded = JSON.parse(xml2json(data.toString(), { compact: true }).toString());
}
return { status, contentType, data: dataDecoded, responseHeaders };
}
export default async function qnapProxyHandler(req, res) {