Files
htwkalender/frontend/src/api/fetchCourse.ts
2023-10-17 21:16:58 +02:00

66 lines
1.6 KiB
TypeScript

// function to fetch course data from the API
import { Module } from "../model/module.ts";
export async function fetchCourse(): Promise<string[]> {
const courses: string[] = [];
await fetch("/api/courses")
.then((response) => {
return response.json();
})
.then((coursesResponse) => {
coursesResponse.forEach((course: string) => courses.push(course));
});
return courses;
}
export async function fetchModulesByCourseAndSemester(
course: string,
semester: string,
): Promise<Module[]> {
const modules: Module[] = [];
await fetch("/api/course/modules?course=" + course + "&semester=" + semester)
.then((response) => {
return response.json();
})
.then((modulesResponse) => {
modulesResponse.forEach((module: Module) =>
modules.push(
new Module(
module.name,
course,
module.name,
module.prof,
semester,
module.events,
),
),
);
});
return modules;
}
export async function fetchAllModules(): Promise<Module[]> {
let modules: Module[] = [];
await fetch("/api/modules")
.then((response) => {
return response.json() as Promise<Module[]>;
})
.then((responseModules: Module[]) => {
responseModules.forEach((module: Module) => {
modules.push(
new Module(
module.name,
module.course,
module.name,
module.prof,
module.semester,
module.events,
),
);
});
});
return modules;
}