Corban-Lee Jones b9c0f237f7
All checks were successful
Build and Push Docker Image / build (push) Successful in 14s
unique content rule frontend (incomplete)
not finished for saving, editing existing subscriptions.

Only appears as option under 'advanced' at the minute, choices have no affect.
2024-09-14 00:59:08 +01:00

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");
}