239 lines
6.4 KiB
JavaScript

async function ajaxRequest(url, method, data) {
const options = {
url: url,
method: method,
beforeSend: function(xhr) {
xhr.setRequestHeader("X-CSRFToken", CSRF_MiddlewareToken);
}
}
if (data) {
options.data = data;
options.processData = false;
options.contentType = false;
}
try {
const response = await $.ajax(options);
return response
}
catch (error) {
return error
}
}
async function getSavedGuilds() {
return await ajaxRequest("/api/saved-guilds/", "GET");
}
async function getSavedGuild(id) {
return await ajaxRequest(`/api/saved-guilds/${id}/`, "GET");
}
async function newSavedGuild(formData) {
return await ajaxRequest("/api/saved-guilds/", "POST", formData);
}
async function loadGuilds() {
return await ajaxRequest("/guilds", "GET");
}
// Old functions
// Rewrite above
// function getSavedGuilds() {
// return new Promise(function(resolve, reject) {
// $.ajax({
// url: "/api/saved-guilds/",
// type: "GET",
// beforeSend: function(xhr) {
// xhr.setRequestHeader("X-CSRFToken", CSRF_MiddlewareToken);
// },
// success: function(response) {
// resolve(response);
// },
// error: function(response) {
// reject(response);
// }
// });
// });
// }
// function getSavedGuild(id) {
// return new Promise(function(resolve, reject) {
// $.ajax({
// url: `/api/saved-guilds/${id}/`,
// type: "GET",
// beforeSend: function(xhr) {
// xhr.setRequestHeader("X-CSRFToken", CSRF_MiddlewareToken);
// },
// success: function(response) {
// resolve(response);
// },
// error: function(response) {
// reject(response);
// }
// });
// });
// }
// function newSavedGuild(formData) {
// return new Promise(function(resolve, reject) {
// $.ajax({
// url: "/api/saved-guilds/",
// type: "POST",
// data: formData,
// processData: false,
// contentType: false,
// beforeSend: function(xhr) {
// xhr.setRequestHeader("X-CSRFToken", CSRF_MiddlewareToken);
// },
// success: function(response) {
// resolve(response);
// },
// error: function(response) {
// reject(response);
// }
// });
// });
// }
function getSubscriptions() {
return new Promise(function(resolve, reject) {
$.ajax({
url: "/api/subscription/",
type: "GET",
beforeSend: function(xhr) {
xhr.setRequestHeader("X-CSRFToken", CSRF_MiddlewareToken);
},
success: function(response) {
resolve(response);
},
error: function(response) {
reject(response);
}
});
});
}
function getSubscription(uuid) {
return new Promise(function(resolve, reject) {
$.ajax({
url: `/api/subscription/${uuid}/`,
type: "GET",
beforeSend: function(xhr) {
xhr.setRequestHeader("X-CSRFToken", CSRF_MiddlewareToken);
},
success: function(response) {
resolve(response);
},
error: function(response) {
reject(response);
}
});
});
}
function getServer(serverId) {
return new Promise(function(resolve, reject) {
$.ajax({
url: `/api/serverlink/?server_id=${serverId}`,
type: "GET",
beforeSend: function(xhr) {
xhr.setRequestHeader("X-CSRFToken", CSRF_MiddlewareToken);
},
success: function(response) {
resolve(response.results[0]);
},
error: function(response) {
reject(response.results[0]);
}
});
});
}
function newSubscription(formData) {
return new Promise(function(resolve, reject) {
$.ajax({
url: "/api/subscription/",
type: "POST",
data: formData,
processData: false,
contentType: false,
beforeSend: function(xhr) {
xhr.setRequestHeader("X-CSRFToken", CSRF_MiddlewareToken);
},
success: function(response) {
resolve(response);
},
error: function(response) {
reject(response);
}
});
});
}
function editSubscription(uuid, formData) {
return new Promise(function(resolve, reject) {
$.ajax({
url: `/api/subscription/${uuid}/`,
type: "PUT",
data: formData,
processData: false,
contentType: false,
beforeSend: function(xhr) {
xhr.setRequestHeader("X-CSRFToken", CSRF_MiddlewareToken);
},
success: function(response) {
resolve(response);
},
error: function(response) {
reject(response);
}
});
});
}
function patchSubscription(uuid, formData) {
return new Promise(function(resolve, reject) {
$.ajax({
url: `/api/subscription/${uuid}/`,
type: "PATCH",
data: formData,
processData: false,
contentType: false,
beforeSend: function(xhr) {
xhr.setRequestHeader("X-CSRFToken", CSRF_MiddlewareToken);
},
success: function(response) {
resolve(response);
},
error: function(response) {
reject(response);
}
});
});
}
function deleteSubscription(uuid) {
return new Promise(function(resolve, reject) {
$.ajax({
url: `/api/subscription/${uuid}/`,
type: "DELETE",
beforeSend: function(xhr) {
xhr.setRequestHeader("X-CSRFToken", CSRF_MiddlewareToken);
},
success: function(response) {
resolve(response);
},
error: function(response) {
reject(response);
}
});
});
}