269 lines
7.5 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
}
}
// Saved Guilds
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 deleteSavedGuild(id) {
return await ajaxRequest(`/api/saved-guilds/${id}/`, "DELETE");
}
// Loading Guilds
async function loadGuilds() {
return await ajaxRequest("/guilds", "GET");
}
// Subscriptions
async function getSubscriptions(guildId) {
const url = `/api/subscription/?guild_id=${guildId}`;
return await ajaxRequest(url, "GET");
}
async function getSubscription(id) {
return await ajaxRequest(`/api/subscription/${id}/`, "GET");
}
async function newSubscription(formData) {
return await ajaxRequest("/api/subscription/", "POST", formData);
}
async function deleteSubscription(id) {
return await ajaxRequest(`/api/subscription/${id}/`, "DELETE");
}
async function editSubscription(id, formData) {
return await ajaxRequest(`/api/subscription/${id}/`, "PUT", formData);
}
// 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);
// }
// });
// });
// }