feat: class join req controller + fixes tests
This commit is contained in:
parent
3093a6c131
commit
f679a324ab
11 changed files with 116 additions and 41 deletions
|
@ -28,12 +28,17 @@ export class BaseController {
|
|||
return res.json();
|
||||
}
|
||||
|
||||
protected async post<T>(path: string, body: unknown): Promise<T> {
|
||||
const res = await fetch(`${this.baseUrl}${path}`, {
|
||||
protected async post<T>(path: string, body?: unknown): Promise<T> {
|
||||
const options: RequestInit = {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify(body),
|
||||
});
|
||||
};
|
||||
|
||||
if (body !== undefined) {
|
||||
options.body = JSON.stringify(body);
|
||||
}
|
||||
|
||||
const res = await fetch(`${this.baseUrl}${path}`, options);
|
||||
|
||||
if (!res.ok) {
|
||||
const errorData = await res.json().catch(() => ({}));
|
||||
|
|
|
@ -2,7 +2,7 @@ import { BaseController } from "@/controllers/base-controller.ts";
|
|||
|
||||
export class StudentController extends BaseController {
|
||||
constructor() {
|
||||
super("students");
|
||||
super("student");
|
||||
}
|
||||
|
||||
getAll(full = true) {
|
||||
|
@ -10,15 +10,15 @@ export class StudentController extends BaseController {
|
|||
}
|
||||
|
||||
getByUsername(username: string) {
|
||||
return this.get<any>(`/${username}`);
|
||||
return this.get<{ student: any }>(`/${username}`);
|
||||
}
|
||||
|
||||
createStudent(data: any) {
|
||||
return this.post<any>("/", data);
|
||||
return this.post<{ student: any }>("/", data);
|
||||
}
|
||||
|
||||
deleteStudent(username: string) {
|
||||
return this.delete<any>(`/${username}`);
|
||||
return this.delete<{ student: any }>(`/${username}`);
|
||||
}
|
||||
|
||||
getClasses(username: string, full = true) {
|
||||
|
@ -40,4 +40,16 @@ export class StudentController extends BaseController {
|
|||
getQuestions(username: string, full = true) {
|
||||
return this.get<{ questions: any[] }>(`/${username}/questions`, { full });
|
||||
}
|
||||
|
||||
getJoinRequests(username: string) {
|
||||
return this.get<{ requests: any[] }>(`/${username}/joinRequests`);
|
||||
}
|
||||
|
||||
createJoinRequest(username: string, classId: string) {
|
||||
return this.post<any>(`/${username}/joinRequests/${classId}`);
|
||||
}
|
||||
|
||||
deleteJoinRequest(username: string, classId: string) {
|
||||
return this.delete<any>(`/${username}/joinRequests/${classId}`);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ import { BaseController } from "@/controllers/base-controller.ts";
|
|||
|
||||
export class TeacherController extends BaseController {
|
||||
constructor() {
|
||||
super("teachers");
|
||||
super("teacher");
|
||||
}
|
||||
|
||||
getAll(full = false) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue