@@ -5,6 +5,13 @@ import {
55 updateCourseById ,
66} from "#services/course" ;
77import { logger } from "#util" ;
8+ import { isEntityIdValid } from "#middleware/entityIdValidation" ;
9+ import Semester from "#models/semester" ;
10+ import Department from "#models/department" ;
11+ import Module from "#models/module" ;
12+ import Practical from "#models/practical" ;
13+ import Tutorial from "#models/tutorial" ;
14+ import Assignment from "#models/assignment" ;
815
916async function addCourse ( req , res ) {
1017 const {
@@ -30,31 +37,52 @@ async function addCourse(req, res) {
3037 reccTextbooks,
3138 refBooks,
3239 } = req . body ;
40+
41+ const isSemesterValid = await isEntityIdValid ( semester , Semester ) ;
42+ const isDepartmentValid = await isEntityIdValid ( department , Department ) ;
43+ const isModuleValid = await isEntityIdValid ( modules , Module ) ;
44+ const isPracticalValid = await isEntityIdValid ( practicals , Practical ) ;
45+ const isTutorialValid = await isEntityIdValid ( tutorials , Tutorial ) ;
46+ const isAssignmentValid = await isEntityIdValid ( assignments , Assignment ) ;
47+
3348 try {
34- const newCourse = await createCourse (
35- name ,
36- code ,
37- theoryHours ,
38- department ,
39- tutorialHours ,
40- practicalHours ,
41- ISAMarks ,
42- ESEMarks ,
43- tutorialMarks ,
44- practicalMarks ,
45- semester ,
46- subType ,
47- prerequisites ,
48- objective ,
49- outcomes ,
50- modules ,
51- practicals ,
52- tutorials ,
53- assignments ,
54- reccTextbooks ,
55- refBooks ,
56- ) ;
57- res . json ( { res : `added course ${ newCourse . ERPID } ` } ) ;
49+ if (
50+ ! isSemesterValid ||
51+ ! isDepartmentValid ||
52+ ! isModuleValid ||
53+ ! isPracticalValid ||
54+ ! isTutorialValid ||
55+ ! isAssignmentValid
56+ ) {
57+ res . status ( 400 ) . json ( {
58+ error : "Invalid ID(s)" ,
59+ } ) ;
60+ } else {
61+ const newCourse = await createCourse (
62+ name ,
63+ code ,
64+ theoryHours ,
65+ department ,
66+ tutorialHours ,
67+ practicalHours ,
68+ ISAMarks ,
69+ ESEMarks ,
70+ tutorialMarks ,
71+ practicalMarks ,
72+ semester ,
73+ subType ,
74+ prerequisites ,
75+ objective ,
76+ outcomes ,
77+ modules ,
78+ practicals ,
79+ tutorials ,
80+ assignments ,
81+ reccTextbooks ,
82+ refBooks ,
83+ ) ;
84+ res . json ( { res : `added course ${ newCourse . ERPID } ` } ) ;
85+ }
5886 } catch ( error ) {
5987 logger . error ( "Error while inserting" , error ) ;
6088 res . status ( 500 ) ;
0 commit comments