lightuup/js/common.js
2023-12-02 20:12:40 +01:00

59 lines
1.5 KiB
JavaScript

const UUP_API_ENDPOINT = 'https://api.uupdump.net/';
const STATUS_DIV_NAME = '#status';
const STATUS_TITLE_NAME = '#status-title';
const STATUS_TEXT_NAME = '#status-text';
const TEXT_ERROR = 'Error';
const TEXT_PLEASE_WAIT = 'Please wait...';
const TEXT_RETRIEVING_DATA = 'The data you requested is being retrieved...';
const $ = document.querySelector.bind(document)
const $$ = document.querySelectorAll.bind(document)
async function getResponseFromApi(page, params) {
let query = '';
let data;
if(Object.keys(params).length != 0)
query = '?' + new URLSearchParams(params).toString();
const url = `${UUP_API_ENDPOINT}${page}${query}`;
try {
const response = await fetch(url);
data = await response.json();
} catch(error) {
return {'error': error.message};
}
if(!('response' in data))
return {'error': 'Response from the server is invalid.'};
return data['response'];
}
function showSection(selector) {
$(selector).classList.remove('hidden');
}
function hideSection(selector) {
$(selector).classList.add('hidden');
}
function setStatusError(text) {
$(STATUS_TITLE_NAME).innerHTML = TEXT_ERROR;
$(STATUS_TEXT_NAME).innerHTML = text;
showSection(STATUS_DIV_NAME);
}
function setStatusLoading() {
$(STATUS_TITLE_NAME).innerHTML = TEXT_PLEASE_WAIT;
$(STATUS_TEXT_NAME).innerHTML = TEXT_RETRIEVING_DATA;
showSection(STATUS_DIV_NAME);
}
function clearStatus() {
hideSection(STATUS_DIV_NAME);
}