Skip to content
This repository was archived by the owner on Oct 5, 2023. It is now read-only.

Commit 1aa8e9f

Browse files
authored
CU-1zpr5w2-BE-Add-fields-to-Quiz-model (#1030)
* CU-1zpr5w2-BE-Add-fields-to-Quiz-model
1 parent abf8e48 commit 1aa8e9f

4 files changed

Lines changed: 43 additions & 26 deletions

File tree

packages/server/schema.gql

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ type Account implements BaseModel {
99
updatedAt: DateTime!
1010
username: String!
1111
email: String!
12-
displayName: String!
12+
displayName: String
1313
avatar: ID
1414
otp: String
1515
otpExpired: DateTime
@@ -90,9 +90,6 @@ type Lesson implements BaseModel {
9090
classworkAssignmentListBeforeClass: [ID!]
9191
classworkAssignmentListInClass: [ID!]
9292
classworkAssignmentListAfterClass: [ID!]
93-
quizListBeforeClass: [ID!]
94-
quizListInClass: [ID!]
95-
quizListAfterClass: [ID!]
9693
}
9794

9895
type LessonsPayload {
@@ -261,6 +258,9 @@ type Question implements BaseModel {
261258
createdAt: DateTime!
262259
updatedAt: DateTime!
263260
title: String!
261+
detailQuiz: String
262+
explainTheAnswer: String
263+
duDate: DateTime
264264
scores: Float!
265265
createdByAccountId: ID!
266266
}
@@ -334,7 +334,6 @@ enum Permission {
334334
Academic_AddAbsentStudentsToLesson
335335
Academic_RemoveAbsentStudentsFromLesson
336336
Academic_CommentsForTheLesson
337-
Academic_PublishAllLessons
338337
OrgOffice_Access
339338
OrgOffice_CreateOrgOffice
340339
OrgOffice_ListOrgOffices
@@ -349,7 +348,6 @@ enum Permission {
349348
Classwork_RemoveAttachmentsFromClassworkAssignment
350349
Classwork_AddVideoToClassworkAssignment
351350
Classwork_RemoveVideoToClassworkAssignment
352-
Classwork_PublishAllClassworkAssignments
353351
Classwork_ListClassworkMaterial
354352
Classwork_UpdateClassworkMaterial
355353
Classwork_CreateClassworkMaterial
@@ -359,11 +357,9 @@ enum Permission {
359357
Classwork_SetGradeForClassworkSubmission
360358
Classwork_AddVideoToClassworkMaterial
361359
Classwork_RemoveVideoToClassworkMaterial
362-
Classwork_PublishAllClassworkMaterial
363360
Classwork_CreateClassworkSubmission
364361
Classwork_ListClassworkSubmission
365362
Classwork_ShowSubmissionStatusList
366-
Classwork_UpdateClassworkSubmission
367363
AvgGradeStatisticsOfClassworkInTheCourse
368364
Comment_CreateComment
369365
Rating_CreateRating
@@ -591,29 +587,22 @@ type Mutation {
591587
removeAttachmentsFromClassworkMaterial(attachments: [String!]!, classworkMaterialId: ID!): ClassworkMaterial!
592588
addVideoToClassworkMaterial(videoInput: AddVideoToClassworkInput!, classworkMaterialId: ID!): ClassworkMaterial!
593589
removeVideoFromClassworkMaterial(videoId: String!, classworkMaterialId: ID!): ClassworkMaterial!
594-
publishAllClassworkMaterialsOfTheCourse(courseId: ID!): [ClassworkMaterial!]!
595590
createClassworkAssignment(courseId: ID!, input: CreateClassworkAssignmentInput!): ClassworkAssignment!
596591
updateClassworkAssignment(updateInput: UpdateClassworkAssignmentInput!, id: ID!): ClassworkAssignment!
597592
updateClassworkAssignmentPublication(publication: String!, id: ID!): ClassworkAssignment!
598593
addAttachmentsToClassworkAssignment(attachmentsInput: AddAttachmentsToClassworkInput!, classworkAssignmentId: ID!): ClassworkAssignment!
599594
removeAttachmentsFromClassworkAssignments(attachments: [String!]!, classworkAssignmentId: ID!): ClassworkAssignment!
600595
addVideoToClassworkAssignment(videoInput: AddVideoToClassworkInput!, classworkAssignmentId: ID!): ClassworkAssignment!
601596
removeVideoFromClassworkAssignment(videoId: ID!, classworkAssignmentId: ID!): ClassworkAssignment!
602-
publishAllClassworkAssignmentsOfTheCourse(courseId: ID!): [ClassworkAssignment!]!
603597
createClassworkSubmission(createClassworkSubmissionInput: CreateClassworkSubmissionInput!, courseId: ID!): ClassworkSubmission!
604598
setGradeForClassworkSubmission(setGradeForClassworkSubmissionInput: SetGradeForClassworkSubmissionInput!): ClassworkSubmission!
605-
updateClassworkSubmission(updateInput: UpdateClassworkSubmissionInput!, classworkAssignmentId: ID!): ClassworkSubmission!
606-
addFilesToClassworkSubmission(submissionFilesInput: AddFilesToClassworkSubmissionInput!, classworkSubmissionId: ID!): ClassworkSubmission!
607-
removeFilesFromClassworkSubmission(submissionFilesInput: [String!], classworkSubmissionId: ID!): ClassworkSubmission!
608599
createLesson(createLessonInput: CreateLessonInput!): Lesson!
609600
updateLesson(updateInput: UpdateLessonInput!, lessonId: ID!, courseId: ID!): Lesson!
610601
addAbsentStudentsToLesson(absentStudentIds: [String!]!, lessonId: ID!, courseId: ID!): Lesson!
611602
removeAbsentStudentsFromLesson(absentStudentIds: [String!]!, lessonId: ID!, courseId: ID!): Lesson!
612603
commentsByLecturer(commentsForTheLessonByLecturerInput: CommentsForTheLessonByLecturerInput!, commentsForTheLessonByLecturerQuery: CommentsForTheLessonByLecturerQuery!): Lesson!
613-
publishAllLessonsOfTheCourse(courseId: ID!): [Lesson!]!
614604
createQuiz(input: CreateQuizInput!): Quiz!
615605
updatePublicationQuiz(publicationState: String!, id: String!): Quiz!
616-
publishAllQuizOfTheCourse(courseId: ID!): [Quiz!]!
617606
createQuestion(input: CreateQuestionInput!): Question!
618607
createQuizSubmit(input: CreateQuizSubmitInput!): QuizSubmit!
619608
submitQuiz(input: SubmitQuizInput!): QuizSubmit!
@@ -754,14 +743,6 @@ input SetGradeForClassworkSubmissionInput {
754743
grade: Float!
755744
}
756745

757-
input UpdateClassworkSubmissionInput {
758-
description: String
759-
}
760-
761-
input AddFilesToClassworkSubmissionInput {
762-
submissionFiles: [Upload!]!
763-
}
764-
765746
input CreateLessonInput {
766747
startTime: DateTime!
767748
endTime: DateTime!
@@ -784,9 +765,6 @@ input UpdateLessonInput {
784765
classworkAssignmentListBeforeClass: [String!]
785766
classworkAssignmentListInClass: [String!]
786767
classworkAssignmentListAfterClass: [String!]
787-
quizListBeforeClass: [String!]
788-
quizListInClass: [String!]
789-
quizListAfterClass: [String!]
790768
}
791769

792770
enum UpdateLessonTimeOptions {
@@ -805,6 +783,9 @@ input CommentsForTheLessonByLecturerQuery {
805783

806784
input CreateQuizInput {
807785
title: String!
786+
detailQuiz: String
787+
explainTheAnswer: String
788+
duDate: DateTime
808789
courseId: String!
809790
questionIds: [String!] = []
810791
duration: Float

packages/server/src/modules/quiz/models/Quiz.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,18 @@ export class Quiz extends BaseModel {
1414
@prop({ trim: true })
1515
description?: string
1616

17+
@Field({ nullable: true })
18+
@prop({ required: false, trim: true })
19+
detailQuiz?: string
20+
21+
@Field({ nullable: true })
22+
@prop({ required: false, trim: true })
23+
explainTheAnswer?: string
24+
25+
@Field({ nullable: true })
26+
@prop({ default: null })
27+
dueDate?: Date
28+
1729
@Field((_type) => ID)
1830
@prop({ type: Types.ObjectId, required: true, index: true })
1931
courseId: string

packages/server/src/modules/quiz/quiz.service.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,9 @@ export class QuizService {
116116
duration?: number
117117
createdByAccountId: string
118118
publicationState?: string
119+
detailQuiz?: string
120+
explainTheAnswer?: string
121+
dueDate?: Date
119122
orgId: string
120123
}): Promise<DocumentType<Quiz>> {
121124
this.logger.log(`[${this.createQuiz.name}] Creating Quiz`)
@@ -128,9 +131,18 @@ export class QuizService {
128131
duration,
129132
createdByAccountId,
130133
publicationState,
134+
detailQuiz,
135+
explainTheAnswer,
136+
dueDate,
131137
orgId,
132138
} = quizInput
133139

140+
const dateNow: Date = new Date()
141+
142+
if (dueDate && dueDate <= dateNow) {
143+
throw new Error('Ngày hết hạng không hợp lệ !')
144+
}
145+
134146
const quiz = await this.quizModel.create({
135147
title,
136148
questionIds,
@@ -139,6 +151,9 @@ export class QuizService {
139151
duration,
140152
createdByAccountId,
141153
publicationState,
154+
detailQuiz,
155+
explainTheAnswer,
156+
dueDate,
142157
orgId,
143158
})
144159

packages/server/src/modules/quiz/quiz.type.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,15 @@ export class CreateQuizInput {
7373

7474
@Field((_type) => Publication, { nullable: true })
7575
publicationState?: string
76+
77+
@Field({ nullable: true })
78+
detailQuiz?: string
79+
80+
@Field({ nullable: true })
81+
explainTheAnswer?: string
82+
83+
@Field({ nullable: true })
84+
dueDate?: Date
7685
}
7786
@InputType()
7887
export class CreateQuizSubmitInput {

0 commit comments

Comments
 (0)