From beb3bacfa752c8dab02056eebe625bc9ed474901 Mon Sep 17 00:00:00 2001 From: Adriaan Jacquet Date: Thu, 3 Apr 2025 12:40:32 +0200 Subject: [PATCH] fix: response types en import errors gefixt --- frontend/src/controllers/assignments.ts | 6 ++--- frontend/src/controllers/classes.ts | 23 +++++++++++++------- frontend/src/controllers/groups.ts | 24 ++++++++++++-------- frontend/src/controllers/questions.ts | 2 +- frontend/src/controllers/students.ts | 4 ++-- frontend/src/controllers/submission.ts | 23 -------------------- frontend/src/controllers/submissions.ts | 29 ++++++++++++++++++++++++- frontend/src/controllers/teachers.ts | 2 +- frontend/src/controllers/themes.ts | 2 +- 9 files changed, 66 insertions(+), 49 deletions(-) delete mode 100644 frontend/src/controllers/submission.ts diff --git a/frontend/src/controllers/assignments.ts b/frontend/src/controllers/assignments.ts index 65c26bbf..6b069666 100644 --- a/frontend/src/controllers/assignments.ts +++ b/frontend/src/controllers/assignments.ts @@ -1,15 +1,15 @@ import { BaseController } from "./base-controller"; -import type { AssignmentDTO } from "@dwengo-1/interfaces/assignment"; +import type { AssignmentDTO } from "@dwengo-1/common/interfaces/assignment"; import type { SubmissionsResponse } from "./submissions"; import type { QuestionsResponse } from "./questions"; import type { GroupsResponse } from "./groups"; export interface AssignmentsResponse { - assignments: AssignmentDTO[]; + assignments: AssignmentDTO[] | string[]; } export interface AssignmentResponse { - assignments: AssignmentDTO; + assignment: AssignmentDTO; } export class AssignmentController extends BaseController { diff --git a/frontend/src/controllers/classes.ts b/frontend/src/controllers/classes.ts index eb605333..374f0f6e 100644 --- a/frontend/src/controllers/classes.ts +++ b/frontend/src/controllers/classes.ts @@ -1,40 +1,47 @@ import { BaseController } from "./base-controller"; -import type { ClassDTO } from "@dwengo-1/interfaces/class"; +import type { ClassDTO } from "@dwengo-1/common/interfaces/class"; +import type { StudentsResponse } from "./students"; +import type { AssignmentsResponse } from "./assignments"; export interface ClassesResponse { classes: ClassDTO[] | string[]; } +export interface ClassResponse { + class: ClassDTO; +} + export class ClassController extends BaseController { constructor() { super("class"); } async getAll(full = true) { - return this.get<{ classes: any[] }>(`/`, { full }); + return this.get(`/`, { full }); } async getById(id: string) { - return this.get<{ class: any }>(`/${id}`); + return this.get(`/${id}`); } async createClass(data: any) { - return this.post<{ class: any }>(`/`, data); + return this.post(`/`, data); } async deleteClass(id: string) { - return this.delete<{ class: any }>(`/${id}`); + return this.delete(`/${id}`); } async getStudents(id: string, full = true) { - return this.get<{ students: any[] }>(`/${id}/students`, { full }); + return this.get(`/${id}/students`, { full }); } + // TODO async getTeacherInvitations(id: string, full = true) { - return this.get<{ invitations: any[] }>(`/${id}/teacher-invitations`, { full }); + return this.get(`/${id}/teacher-invitations`, { full }); } async getAssignments(id: string, full = true) { - return this.get<{ assignments: any[] }>(`/${id}/assignments`, { full }); + return this.get(`/${id}/assignments`, { full }); } } diff --git a/frontend/src/controllers/groups.ts b/frontend/src/controllers/groups.ts index 806dac4a..e82e5607 100644 --- a/frontend/src/controllers/groups.ts +++ b/frontend/src/controllers/groups.ts @@ -1,9 +1,15 @@ import { BaseController } from "./base-controller"; -import type { GroupDTO } from "@dwengo-1/interfaces/group"; +import type { GroupDTO } from "@dwengo-1/common/interfaces/group"; +import type { SubmissionsResponse } from "./submissions"; +import type { QuestionsResponse } from "./questions"; export interface GroupsResponse { groups: GroupDTO[]; -} // | TODO id +} + +export interface GroupResponse { + group: GroupDTO; +} export class GroupController extends BaseController { constructor(classid: string, assignmentNumber: number) { @@ -11,26 +17,26 @@ export class GroupController extends BaseController { } async getAll(full = true) { - return this.get<{ groups: any[] }>(`/`, { full }); + return this.get(`/`, { full }); } async getByNumber(num: number) { - return this.get<{ group: any }>(`/${num}`); + return this.get(`/${num}`); } async createGroup(data: any) { - return this.post<{ group: any }>(`/`, data); + return this.post(`/`, data); } - async deleteClass(num: number) { - return this.delete<{ group: any }>(`/${num}`); + async deleteGroup(num: number) { + return this.delete(`/${num}`); } async getSubmissions(groupNumber: number, full = true) { - return this.get<{ groups: any[] }>(`/${groupNumber}/submissions`, { full }); + return this.get(`/${groupNumber}/submissions`, { full }); } async getQuestions(groupNumber: number, full = true) { - return this.get<{ questions: any[] }>(`/${groupNumber}/questions`, { full }); + return this.get(`/${groupNumber}/questions`, { full }); } } diff --git a/frontend/src/controllers/questions.ts b/frontend/src/controllers/questions.ts index 9b0182de..16abd38b 100644 --- a/frontend/src/controllers/questions.ts +++ b/frontend/src/controllers/questions.ts @@ -1,4 +1,4 @@ -import type { QuestionDTO, QuestionId } from "@dwengo-1/interfaces/question"; +import type { QuestionDTO, QuestionId } from "@dwengo-1/common/interfaces/question"; export interface QuestionsResponse { questions: QuestionDTO[] | QuestionId[]; diff --git a/frontend/src/controllers/students.ts b/frontend/src/controllers/students.ts index b36f1d5a..f74f02da 100644 --- a/frontend/src/controllers/students.ts +++ b/frontend/src/controllers/students.ts @@ -4,8 +4,8 @@ import type { AssignmentsResponse } from "@/controllers/assignments.ts"; import type { GroupsResponse } from "@/controllers/groups.ts"; import type { SubmissionsResponse } from "@/controllers/submissions.ts"; import type { QuestionsResponse } from "@/controllers/questions.ts"; -import type { StudentDTO } from "@dwengo-1/interfaces/student"; -import type { ClassJoinRequestDTO } from "@dwengo-1/interfaces/class-join-request"; +import type { StudentDTO } from "@dwengo-1/common/interfaces/student"; +import type { ClassJoinRequestDTO } from "@dwengo-1/common/interfaces/class-join-request"; export interface StudentsResponse { students: StudentDTO[] | string[]; diff --git a/frontend/src/controllers/submission.ts b/frontend/src/controllers/submission.ts deleted file mode 100644 index 46b925c8..00000000 --- a/frontend/src/controllers/submission.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { BaseController } from "./base-controller"; - -export class SubmissionController extends BaseController { - constructor(classid: string, assignmentNumber: number, groupNumber: number) { - super(`class/${classid}/assignments/${assignmentNumber}/groups/${groupNumber}`); - } - - async getAll(full = true) { - return this.get(`/`, { full }); - } - - async getByNumber(submissionNumber: number) { - return this.get(`/${submissionNumber}`); - } - - async createSubmission(data: any) { - return this.post(`/`, data); - } - - async deleteSubmission(submissionNumber: number) { - return this.delete(`/${submissionNumber}`); - } -} diff --git a/frontend/src/controllers/submissions.ts b/frontend/src/controllers/submissions.ts index 99b6ba8d..80007891 100644 --- a/frontend/src/controllers/submissions.ts +++ b/frontend/src/controllers/submissions.ts @@ -1,5 +1,32 @@ -import { type SubmissionDTO, SubmissionDTOId } from "@dwengo-1/interfaces/submission"; +import { BaseController } from "./base-controller"; +import type { SubmissionDTO, SubmissionDTOId } from "@dwengo-1/common/interfaces/submission"; export interface SubmissionsResponse { submissions: SubmissionDTO[] | SubmissionDTOId[]; } + +export interface SubmissionResponse { + submission: SubmissionDTO; +}; + +export class SubmissionController extends BaseController { + constructor(classid: string, assignmentNumber: number, groupNumber: number) { + super(`class/${classid}/assignments/${assignmentNumber}/groups/${groupNumber}`); + } + + async getAll(full = true) { + return this.get(`/`, { full }); + } + + async getByNumber(submissionNumber: number) { + return this.get(`/${submissionNumber}`); + } + + async createSubmission(data: any) { + return this.post(`/`, data); + } + + async deleteSubmission(submissionNumber: number) { + return this.delete(`/${submissionNumber}`); + } +} \ No newline at end of file diff --git a/frontend/src/controllers/teachers.ts b/frontend/src/controllers/teachers.ts index e0d38a6c..973e2b02 100644 --- a/frontend/src/controllers/teachers.ts +++ b/frontend/src/controllers/teachers.ts @@ -2,7 +2,7 @@ import { BaseController } from "@/controllers/base-controller.ts"; import type { JoinRequestResponse, JoinRequestsResponse, StudentsResponse } from "@/controllers/students.ts"; import type { QuestionsResponse } from "@/controllers/questions.ts"; import type { ClassesResponse } from "@/controllers/classes.ts"; -import type { TeacherDTO } from "@dwengo-1/interfaces/teacher"; +import type { TeacherDTO } from "@dwengo-1/common/interfaces/teacher"; export interface TeachersResponse { teachers: TeacherDTO[] | string[]; diff --git a/frontend/src/controllers/themes.ts b/frontend/src/controllers/themes.ts index bb76249d..ca173373 100644 --- a/frontend/src/controllers/themes.ts +++ b/frontend/src/controllers/themes.ts @@ -1,5 +1,5 @@ import { BaseController } from "@/controllers/base-controller.ts"; -import type { Theme } from "@dwengo-1/interfaces/theme"; +import type { Theme } from "@dwengo-1/common/interfaces/theme"; export class ThemeController extends BaseController { constructor() {