diff --git a/backend/src/controllers/questions.ts b/backend/src/controllers/questions.ts index 00a51329..0f0604b2 100644 --- a/backend/src/controllers/questions.ts +++ b/backend/src/controllers/questions.ts @@ -1,9 +1,9 @@ import { Request, Response } from 'express'; import { createQuestion, deleteQuestion, getAllQuestions, getAnswersByQuestion, getQuestion } from '../services/questions.js'; -import { QuestionDTO, QuestionId } from '../interfaces/question.js'; import { FALLBACK_LANG, FALLBACK_SEQ_NUM } from '../config.js'; import { LearningObjectIdentifier } from '../entities/content/learning-object-identifier.js'; import { Language } from '../entities/content/language.js'; +import { QuestionDTO, QuestionId } from 'dwengo-1-common/src/interfaces/question'; function getObjectId(req: Request, res: Response): LearningObjectIdentifier | null { const { hruid, version } = req.params; diff --git a/backend/src/interfaces/question.ts b/backend/src/interfaces/question.ts index 93019dae..86cd6523 100644 --- a/backend/src/interfaces/question.ts +++ b/backend/src/interfaces/question.ts @@ -1,15 +1,6 @@ import { Question } from '../entities/questions/question.entity.js'; -import { LearningObjectIdentifier } from '../entities/content/learning-object-identifier.js'; import { mapToStudentDTO } from './student.js'; -import { StudentDTO } from 'dwengo-1-common/src/interfaces/student'; - -export interface QuestionDTO { - learningObjectIdentifier: LearningObjectIdentifier; - sequenceNumber?: number; - author: StudentDTO; - timestamp?: string; - content: string; -} +import { QuestionDTO, QuestionId } from 'dwengo-1-common/src/interfaces/question'; /** * Convert a Question entity to a DTO format. @@ -30,11 +21,6 @@ export function mapToQuestionDTO(question: Question): QuestionDTO { }; } -export interface QuestionId { - learningObjectIdentifier: LearningObjectIdentifier; - sequenceNumber: number; -} - export function mapToQuestionId(question: QuestionDTO): QuestionId { return { learningObjectIdentifier: question.learningObjectIdentifier, diff --git a/backend/src/services/questions.ts b/backend/src/services/questions.ts index 0e52440f..ed61902e 100644 --- a/backend/src/services/questions.ts +++ b/backend/src/services/questions.ts @@ -1,5 +1,5 @@ import { getAnswerRepository, getQuestionRepository } from '../data/repositories.js'; -import { mapToQuestionDTO, mapToQuestionId, QuestionDTO, QuestionId } from '../interfaces/question.js'; +import { mapToQuestionDTO, mapToQuestionId } from '../interfaces/question.js'; import { Question } from '../entities/questions/question.entity.js'; import { Answer } from '../entities/questions/answer.entity.js'; import { mapToAnswerDTO, mapToAnswerId } from '../interfaces/answer.js'; @@ -8,6 +8,7 @@ import { LearningObjectIdentifier } from '../entities/content/learning-object-id import { mapToUser } from '../interfaces/user.js'; import { Student } from '../entities/users/student.entity.js'; import { mapToStudent } from '../interfaces/student.js'; +import { QuestionDTO, QuestionId } from 'dwengo-1-common/src/interfaces/question'; export async function getAllQuestions(id: LearningObjectIdentifier, full: boolean): Promise { const questionRepository: QuestionRepository = getQuestionRepository(); diff --git a/backend/src/services/teachers.ts b/backend/src/services/teachers.ts index 3b2a5bbb..aa6ce2d8 100644 --- a/backend/src/services/teachers.ts +++ b/backend/src/services/teachers.ts @@ -1,11 +1,12 @@ import { getClassRepository, getLearningObjectRepository, getQuestionRepository, getTeacherRepository } from '../data/repositories.js'; import { mapToClassDTO } from '../interfaces/class.js'; import { getClassStudents } from './classes.js'; -import { mapToQuestionDTO, mapToQuestionId, QuestionDTO, QuestionId } from '../interfaces/question.js'; +import { mapToQuestionDTO, mapToQuestionId } 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'; +import { QuestionDTO, QuestionId } from 'dwengo-1-common/src/interfaces/question'; export async function getAllTeachers(full: boolean): Promise { const teacherRepository = getTeacherRepository(); diff --git a/common/src/interfaces/answer.d.ts b/common/src/interfaces/answer.d.ts index b8fc9b55..d2faf87d 100644 --- a/common/src/interfaces/answer.d.ts +++ b/common/src/interfaces/answer.d.ts @@ -1,5 +1,5 @@ -import { QuestionDTO } from 'dwengo-1-backend/src/interfaces/question.js'; import { UserDTO } from './user'; +import { QuestionDTO } from './question'; export interface AnswerDTO { author: UserDTO; diff --git a/common/src/interfaces/question.d.ts b/common/src/interfaces/question.d.ts new file mode 100644 index 00000000..2b2a263c --- /dev/null +++ b/common/src/interfaces/question.d.ts @@ -0,0 +1,14 @@ +import { StudentDTO } from './student'; + +export interface QuestionDTO { + learningObjectIdentifier: LearningObjectIdentifier; + sequenceNumber?: number; + author: StudentDTO; + timestamp?: string; + content: string; +} + +export interface QuestionId { + learningObjectIdentifier: LearningObjectIdentifier; + sequenceNumber: number; +}