diff --git a/frontend/src/api/createFeed.ts b/frontend/src/api/createFeed.ts index ce2ba84..414c6d9 100644 --- a/frontend/src/api/createFeed.ts +++ b/frontend/src/api/createFeed.ts @@ -44,6 +44,37 @@ export async function createIndividualFeed(modules: Module[]): Promise { } } +export async function createProfessorFeed(modules: Module[]): Promise { + if (import.meta.env.SSR) { + return ""; + } + try { + // Dynamic import to avoid circular dependencies or issues if pb is not initialized + const { pb } = await import("../service/pocketbase"); + + const response = await fetch("/api/professor/feed", { + method: "POST", + headers: { + "Content-Type": "application/json", + "Authorization": pb.authStore.token, + }, + 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) { + return Promise.reject(error); + } +} + interface FeedResponse { modules: FeedModule[]; collectionId: string; diff --git a/frontend/src/store/moduleStore.ts b/frontend/src/store/moduleStore.ts index 5ec39a6..7a8ff10 100644 --- a/frontend/src/store/moduleStore.ts +++ b/frontend/src/store/moduleStore.ts @@ -20,6 +20,7 @@ import { defineStore } from "pinia"; const moduleStore = defineStore("moduleStore", { state: () => ({ modules: new Map(), + isProfessorFeed: false, }), actions: { addModule(module: Module) { @@ -55,6 +56,9 @@ const moduleStore = defineStore("moduleStore", { containsModule(module: Module): boolean { return this.modules.has(module.uuid); }, + setProfessorFeed(isProf: boolean) { + this.isProfessorFeed = isProf; + }, }, }); diff --git a/frontend/src/view/create/RenameModules.vue b/frontend/src/view/create/RenameModules.vue index a630912..d0b7c0b 100644 --- a/frontend/src/view/create/RenameModules.vue +++ b/frontend/src/view/create/RenameModules.vue @@ -18,7 +18,7 @@ along with this program. If not, see .