import { Module } from "../model/module.ts"; export async function createIndividualFeed(modules: Module[]): Promise { try { const response = await fetch("/api/createFeed", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(modules), }); if ( response.status === 429 || response.status === 500 || response.status != 200 ) { return Promise.reject(response.statusText); } return await response.json(); } catch (error) { // Catch possible errors and return an unfilled promise return Promise.reject(error); } } interface FeedResponse { modules: FeedModule[]; collectionId: string; collectionName: string; id: string; retrieved: string; updated: string; } interface FeedModule { course: string; name: string; reminder: boolean; userDefinedName: string; uuid: string; } export async function saveIndividualFeed( token: string, modules: Module[], ): Promise { await fetch("/api/collections/feeds/records/" + token, { method: "PATCH", headers: { "Content-Type": "application/json", }, body: '{"modules":' + JSON.stringify(modules) + "}", }) .then(async (response) => { // parse response.json to FeedResponse const feedResponse: FeedResponse = await response.json(); return feedResponse; }) .then((response: FeedResponse) => { token = response.id; }); return token; } export async function deleteIndividualFeed(token: string): Promise { await fetch("/api/feed?token=" + token, { method: "DELETE", }) .then((response) => { if (response.ok) { return Promise.resolve(response); } else { return Promise.reject(response); } }) .catch((error) => { return Promise.reject(error); }); }