felt/static/admin.js

54 lines
1.3 KiB
JavaScript

let adminToken = null;
async function getTables() {
try {
const headers = new Headers();
self.set('Authorization', 'Bearer ' + adminToken.access_token);
const res = await fetch('/admin/api/table/', {
method: 'GET',
headers: headers
});
if (res.ok) {
} else {
console.log(res);
console.log(await res.headers.get("Quartzgun-Error"));
}
} catch {
}
}
async function doLogin() {
const adminUsrInput = document.getElementById("input_admin_usr");
const adminPassInput = document.getElementById("input_admin_pass");
const errDiv = document.getElementById("loginErr");
if (adminUsrInput && adminPassInput) {
adminToken = await getAdminToken(adminUsrInput.value, adminPassInput.value);
console.log(adminToken);
if (adminToken) {
getTables();
} else {
if (errDiv) {
errDiv.innerHTML = "Incorrect credentials";
}
}
}
}
async function getAdminToken(user, pass) {
const headers = new Headers();
headers.set('Authorization', 'Basic ' + btoa(user + ":" + pass));
try {
const res = await fetch('/admin/api/auth/', {
method: 'POST',
headers: headers
});
if (res.ok) {
return await res.json();
}
return null;
} catch (err) {
return null;
}
}