From d6b79dccede103b1a47d4456ec652f3cd983cc99 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Mon, 31 Mar 2025 21:48:13 +0200 Subject: [PATCH] refactor(common): Student --- backend/src/controllers/students.ts | 3 ++- backend/src/interfaces/question.ts | 3 ++- backend/src/interfaces/student.ts | 14 +------------- backend/src/services/classes.ts | 3 ++- backend/src/services/students.ts | 3 ++- backend/src/services/teachers.ts | 2 +- common/src/interfaces/student.d.ts | 12 ++++++++++++ 7 files changed, 22 insertions(+), 18 deletions(-) create mode 100644 common/src/interfaces/student.d.ts diff --git a/backend/src/controllers/students.ts b/backend/src/controllers/students.ts index 8ce5b11a..4e23ebc4 100644 --- a/backend/src/controllers/students.ts +++ b/backend/src/controllers/students.ts @@ -9,7 +9,8 @@ import { getStudentGroups, getStudentSubmissions, } from '../services/students.js'; -import { StudentDTO } from '../interfaces/student.js'; + +import { StudentDTO } from 'dwengo-1-common/src/interfaces/student'; // TODO: accept arguments (full, ...) // TODO: endpoints diff --git a/backend/src/interfaces/question.ts b/backend/src/interfaces/question.ts index 0da87eb7..93019dae 100644 --- a/backend/src/interfaces/question.ts +++ b/backend/src/interfaces/question.ts @@ -1,6 +1,7 @@ import { Question } from '../entities/questions/question.entity.js'; import { LearningObjectIdentifier } from '../entities/content/learning-object-identifier.js'; -import { mapToStudentDTO, StudentDTO } from './student.js'; +import { mapToStudentDTO } from './student.js'; +import { StudentDTO } from 'dwengo-1-common/src/interfaces/student'; export interface QuestionDTO { learningObjectIdentifier: LearningObjectIdentifier; diff --git a/backend/src/interfaces/student.ts b/backend/src/interfaces/student.ts index ecce8f89..e1e4253f 100644 --- a/backend/src/interfaces/student.ts +++ b/backend/src/interfaces/student.ts @@ -1,18 +1,6 @@ import { Student } from '../entities/users/student.entity.js'; import { getStudentRepository } from '../data/repositories.js'; - -export interface StudentDTO { - id: string; - username: string; - firstName: string; - lastName: string; - endpoints?: { - classes: string; - questions: string; - invitations: string; - groups: string; - }; -} +import { StudentDTO } from 'dwengo-1-common/src/interfaces/student'; export function mapToStudentDTO(student: Student): StudentDTO { return { diff --git a/backend/src/services/classes.ts b/backend/src/services/classes.ts index ecc4b43e..c8d9f6ce 100644 --- a/backend/src/services/classes.ts +++ b/backend/src/services/classes.ts @@ -1,10 +1,11 @@ import { getClassRepository, getStudentRepository, getTeacherInvitationRepository, getTeacherRepository } from '../data/repositories.js'; import { mapToClassDTO } from '../interfaces/class.js'; -import { mapToStudentDTO, StudentDTO } from '../interfaces/student.js'; +import { mapToStudentDTO } from '../interfaces/student.js'; import { mapToTeacherInvitationDTO, mapToTeacherInvitationDTOIds } from '../interfaces/teacher-invitation.js'; import { getLogger } from '../logging/initalize.js'; import { ClassDTO } from 'dwengo-1-common/src/interfaces/class'; import { TeacherInvitationDTO } from 'dwengo-1-common/src/interfaces/teacher-invitation'; +import { StudentDTO } from 'dwengo-1-common/src/interfaces/student'; const logger = getLogger(); diff --git a/backend/src/services/students.ts b/backend/src/services/students.ts index f8d92486..9c14d749 100644 --- a/backend/src/services/students.ts +++ b/backend/src/services/students.ts @@ -1,13 +1,14 @@ import { getClassRepository, getGroupRepository, getStudentRepository, getSubmissionRepository } from '../data/repositories.js'; import { mapToClassDTO } from '../interfaces/class.js'; import { mapToGroupDTO, mapToGroupDTOId } from '../interfaces/group.js'; -import { mapToStudent, mapToStudentDTO, StudentDTO } from '../interfaces/student.js'; +import { mapToStudent, mapToStudentDTO } from '../interfaces/student.js'; import { mapToSubmissionDTO, mapToSubmissionDTOId } from '../interfaces/submission.js'; import { getAllAssignments } from './assignments.js'; import { AssignmentDTO } from 'dwengo-1-common/src/interfaces/assignment'; import { ClassDTO } from 'dwengo-1-common/src/interfaces/class'; import { GroupDTO } from 'dwengo-1-common/src/interfaces/group'; import { SubmissionDTO, SubmissionDTOId } from 'dwengo-1-common/src/interfaces/submission'; +import { StudentDTO } from 'dwengo-1-common/src/interfaces/student'; export async function getAllStudents(full: boolean): Promise { const studentRepository = getStudentRepository(); diff --git a/backend/src/services/teachers.ts b/backend/src/services/teachers.ts index 9589d0ba..3b2a5bbb 100644 --- a/backend/src/services/teachers.ts +++ b/backend/src/services/teachers.ts @@ -1,11 +1,11 @@ import { getClassRepository, getLearningObjectRepository, getQuestionRepository, getTeacherRepository } from '../data/repositories.js'; import { mapToClassDTO } from '../interfaces/class.js'; import { getClassStudents } from './classes.js'; -import { StudentDTO } from '../interfaces/student.js'; import { mapToQuestionDTO, mapToQuestionId, QuestionDTO, QuestionId } from '../interfaces/question.js'; import { mapToTeacher, mapToTeacherDTO } from '../interfaces/teacher.js'; import { ClassDTO } from 'dwengo-1-common/src/interfaces/class'; import { TeacherDTO } from 'dwengo-1-common/src/interfaces/teacher'; +import { StudentDTO } from 'dwengo-1-common/src/interfaces/student'; export async function getAllTeachers(full: boolean): Promise { const teacherRepository = getTeacherRepository(); diff --git a/common/src/interfaces/student.d.ts b/common/src/interfaces/student.d.ts new file mode 100644 index 00000000..cb13d3c2 --- /dev/null +++ b/common/src/interfaces/student.d.ts @@ -0,0 +1,12 @@ +export interface StudentDTO { + id: string; + username: string; + firstName: string; + lastName: string; + endpoints?: { + classes: string; + questions: string; + invitations: string; + groups: string; + }; +}