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: `
${JSON.stringify(result, undefined, 1)}
` }); } 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") }