This repository has been archived on 2024-12-31. You can view files and clone it, but cannot push or open issues or pull requests.

130 lines
3.5 KiB
JavaScript

function load() {
if (localStorage.getItem("api_url") != null) {
document.getElementById("api_url").value = localStorage.getItem("api_url");
}
if (localStorage.getItem("api_key") != null) {
document.getElementById("api_key").value = localStorage.getItem("api_key");
}
}
function save() {
localStorage.setItem("api_url", document.getElementById("api_url").value);
localStorage.setItem("api_key", document.getElementById("api_key").value);
sendSaveToast();
}
function sendSaveToast() {
const Toast = Swal.mixin({
toast: true,
position: 'top-end',
showConfirmButton: false,
timer: 3000,
timerProgressBar: true
})
Toast.fire({
icon: 'success',
title: 'Data saved successfully'
})
}
function sendRequest(type, endpoint, postData = {}) {
return $.ajax({
url: document.getElementById("api_url").value + "/" + endpoint,
type: type,
dataType: "json",
headers: {
Authorization: "Bearer " + document.getElementById("api_key").value
},
data: postData
}).then(result => {
handleResult(result);
}).catch(result => {
handleResult(result.responseJSON)
});
}
async function prepare(title, placeholder, confirm = "Execute") {
return await Swal.fire({
title: title,
input: "text",
inputPlaceholder: placeholder,
showCancelButton: true,
confirmButtonText: confirm,
showLoaderOnConfirm: true
});
}
function handleResult(result) {
console.log(result);
Swal.fire({
title: "Result received",
html: `<pre id="json">${JSON.stringify(result, undefined, 1)}</pre><style>pre {text-align: left}</style>`
});
}
async function createGift() {
let result = await prepare("Create gift", "Article ID");
if (result.isConfirmed) sendRequest("PUT", "gift", {articleID: result.value})
}
async function deleteGift() {
let result = await prepare("Delete gift", "Gift ID");
if (result.isConfirmed) sendRequest("DELETE", "gift/" + result.value)
}
async function getItems() {
let guild = await prepare("Show items", "Guild ID");
if (guild.isConfirmed) sendRequest("GET", "shop/?guildID=" +guild.value)
}
async function enableItem() {
let result = await prepare("Enable item", "Item ID", "Next");
if (!result.isConfirmed) return;
let guild = await prepare("Enable item", "Guild ID");
if (result.isConfirmed) sendRequest("PUT", "shop", {articleID: result.value, guildID: guild.value})
}
async function disableItem() {
let result = await prepare("Disable item", "Item ID", "Next");
if (!result.isConfirmed) return;
let guild = await prepare("Disable item", "Guild ID");
if (result.isConfirmed) sendRequest("DELETE", "shop", {articleID: result.value, guildID: guild.value})
}
async function getServer() {
sendRequest("GET", "user/guilds");
}
async function shortURL() {
let origin = await prepare("Short URL", "Original URL", "Next");
if (!origin.isConfirmed) return;
let custom = await prepare("Short URL", "Custom URL (leave empty for random)");
let optionalJSON = custom.value === "" ? {} : {custom_url: custom.value};
if (custom.isConfirmed) sendRequest("PUT", "link", {original_url: origin.value, ...optionalJSON})
}
async function deleteShortenURL() {
let origin = await prepare("Short URL", "Shorten Code");
if (origin.isConfirmed) sendRequest("DELETE", "link/"+origin.value)
}
async function createAPIKey() {
sendRequest("PUT", "apikey")
}