All checks were successful
Build and Push Docker Image / build (push) Successful in 14s
not finished for saving, editing existing subscriptions. Only appears as option under 'advanced' at the minute, choices have no affect.
186 lines
4.5 KiB
JavaScript
186 lines
4.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
|
|
}
|
|
}
|
|
|
|
function makeQuerystring(filters, sort) {
|
|
let querystring = "?";
|
|
for (key in filters) {
|
|
querystring += `${key}=${filters[key]}&`;
|
|
}
|
|
|
|
return sort ? querystring += `ordering=${sort}` : querystring;
|
|
}
|
|
|
|
// 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");
|
|
}
|
|
|
|
// Loading Channels
|
|
async function loadChannels(guildId) {
|
|
return await ajaxRequest(`/channels?guild=${guildId}`, "GET");
|
|
}
|
|
|
|
// Subscriptions
|
|
|
|
async function getSubscriptions(filters, sort) {
|
|
let querystring = makeQuerystring(filters, sort);
|
|
return await ajaxRequest(`/api/subscription/${querystring}`, "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);
|
|
}
|
|
|
|
async function getSubscriptionOptions() {
|
|
return await ajaxRequest("/api/subscription/", "OPTIONS")
|
|
}
|
|
|
|
|
|
// SubChannels
|
|
|
|
async function getSubChannels(subscriptionId) {
|
|
return await ajaxRequest(`/api/subchannel/?subscription=${subscriptionId}`, "GET");
|
|
}
|
|
|
|
async function getSubChannel(id) {
|
|
return await ajaxRequest(`/api/subchannel/${id}/`, "GET");
|
|
}
|
|
|
|
async function newSubChannel(formData) {
|
|
return await ajaxRequest("/api/subchannel/", "POST", formData);
|
|
}
|
|
|
|
async function deleteSubChannel(id) {
|
|
return await ajaxRequest(`/api/subchannel/${id}/`, "DELETE")
|
|
}
|
|
|
|
async function deleteSubChannels(subscriptionId) {
|
|
return await ajaxRequest(`/api/subscription/${subscriptionId}/subchannels/`, "DELETE");
|
|
}
|
|
|
|
|
|
// Filters
|
|
|
|
async function getFilters(filters, sort) {
|
|
let querystring = makeQuerystring(filters, sort);
|
|
return await ajaxRequest(`/api/filter/${querystring}`, "GET");
|
|
}
|
|
|
|
async function getFilter(id) {
|
|
return await ajaxRequest(`/api/filter/${id}/`, "GET");
|
|
}
|
|
|
|
async function newFilter(formData) {
|
|
return await ajaxRequest("/api/filter/", "POST", formData);
|
|
}
|
|
|
|
async function deleteFilter(id) {
|
|
return await ajaxRequest(`/api/filter/${id}/`, "DELETE");
|
|
}
|
|
|
|
async function editFilter(id, formData) {
|
|
return await ajaxRequest(`/api/filter/${id}/`, "PUT", formData);
|
|
}
|
|
|
|
async function getFilterOptions() {
|
|
return await ajaxRequest("/api/filter/", "OPTIONS")
|
|
}
|
|
|
|
|
|
// Tracked Content
|
|
|
|
async function getTrackedContent(filters, sort) {
|
|
let querystring = makeQuerystring(filters, sort);
|
|
url = `/api/tracked-content/${querystring}`;
|
|
return await ajaxRequest(url, "GET");
|
|
}
|
|
|
|
async function deleteTrackedContent(guid) {
|
|
const encodedGuid = encodeURIComponent(guid);
|
|
return await ajaxRequest(`/api/tracked-content/${encodedGuid}/`, "DELETE");
|
|
}
|
|
|
|
async function getTrackedContentOptions() {
|
|
return await ajaxRequest("/api/tracked-content/", "OPTIONS")
|
|
}
|
|
|
|
// Mutators
|
|
|
|
async function getMutators() {
|
|
return await ajaxRequest("/api/article-mutator/?page_size=25", "GET");
|
|
}
|
|
|
|
// guild settings
|
|
|
|
async function getGuildSettings(guildId) {
|
|
return await ajaxRequest(`/api/guild-settings/?guild_id=${guildId}`, "GET");
|
|
}
|
|
|
|
async function editGuildSettings(id, formData) {
|
|
return await ajaxRequest(`/api/guild-settings/${id}/`, "PUT", formData);
|
|
}
|
|
|
|
// Unique Content Rules
|
|
|
|
async function getUniqueContentRules() {
|
|
return await ajaxRequest("/api/unique-content-rule/", "GET");
|
|
}
|
|
|
|
async function getUniqueContentRule(ruleId) {
|
|
return await ajaxRequest(`/api/unique-content-rule/${ruleId}/`, "GET");
|
|
}
|
|
|