@eeplatform/basic-edu 1.8.2 → 1.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @eeplatform/basic-edu
2
2
 
3
+ ## 1.8.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 3352256: Program Screening - add two more status in schema validation
8
+
9
+ ## 1.8.3
10
+
11
+ ### Patch Changes
12
+
13
+ - 20e4896: Program Screening - add two more status and action
14
+
3
15
  ## 1.8.2
4
16
 
5
17
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1604,6 +1604,7 @@ type TProgramScreening = {
1604
1604
  updatedAt?: string | Date;
1605
1605
  deletedAt?: string | Date;
1606
1606
  };
1607
+ declare const statusesProgramScreening: string[];
1607
1608
  declare const schemaProgramScreening: Joi.ObjectSchema<any>;
1608
1609
  declare const schemaProgramScreeningUpdate: Joi.ObjectSchema<any>;
1609
1610
  declare function modelProgramScreening(value: TProgramScreening): TProgramScreening;
@@ -1648,4 +1649,4 @@ declare function useProgramScreeningController(): {
1648
1649
  updateStatusById: (req: Request, res: Response, next: NextFunction) => Promise<void>;
1649
1650
  };
1650
1651
 
1651
- export { MAsset, MBuilding, MBuildingUnit, MCurriculum, MGradeLevel, MLearner, MPersonnel, MPlantilla, MStockCard, TAddress, TAddressInformation, TAsset, TBasicEduCount, TBuilding, TBuildingUnit, TCurriculum, TDivision, TEnrollment, TGradeLevel, TLearner, TLearnerInfo, TLearningModality, TParentGuardianInfo, TPersonContact, TPersonnel, TPlantilla, TProgram, TProgramScreening, TRegion, TReturningLearnerInfo, TSchool, TSection, TSectionPreset, TSectionStudent, TSectionSubject, TSeniorHighInformation, TStockCard, TSubject, TTeachingLoad, TTeachingLoadSlot, allowedSectionStudentStatuses, modelBasicEduCount, modelDivision, modelProgram, modelProgramScreening, modelRegion, modelSchool, modelSection, modelSectionPreset, modelSectionStudent, modelSectionSubject, modelSubject, modelTeachingLoad, modelTeachingLoadSlot, schemaAsset, schemaAssetUpdateOption, schemaBasicEduCount, schemaBuilding, schemaBuildingUnit, schemaCurriculum, schemaDivision, schemaDivisionUpdate, schemaEnrollment, schemaGenerateSections, schemaGradeLevel, schemaPersonnel, schemaPlantilla, schemaProgram, schemaProgramScreening, schemaProgramScreeningUpdate, schemaProgramUpdate, schemaRegion, schemaSchool, schemaSchoolUpdate, schemaSection, schemaSectionPreset, schemaSectionStudent, schemaSectionSubject, schemaSectionSubjectSetup, schemaStockCard, schemaSubject, schemaSubjectAdd, schemaTeachingLoad, schemaTeachingLoadSlot, schemaUpdateOptions, schemaUpdateStatus, useAssetController, useAssetRepo, useBasicEduCountRepo, useBuildingController, useBuildingRepo, useBuildingService, useBuildingUnitController, useBuildingUnitRepo, useBuildingUnitService, useCurriculumController, useCurriculumRepo, useDivisionController, useDivisionRepo, useDivisionService, useEnrollmentController, useEnrollmentRepo, useEnrollmentService, useGradeLevelController, useGradeLevelRepo, useLearnerController, useLearnerRepo, usePersonnelController, usePersonnelRepo, usePlantillaController, usePlantillaRepo, usePlantillaService, useProgramController, useProgramRepo, useProgramScreeningController, useProgramScreeningRepo, useRegionController, useRegionRepo, useSchoolController, useSchoolRepo, useSchoolService, useSectionController, useSectionPresetController, useSectionPresetRepo, useSectionRepo, useSectionStudentController, useSectionStudentRepo, useSectionSubjectController, useSectionSubjectRepo, useSectionSubjectService, useStockCardController, useStockCardRepository, useStockCardService, useSubjectController, useSubjectRepo, useSubjectService, useTeachingLoadController, useTeachingLoadRepo, useTeachingLoadSlotController, useTeachingLoadSlotRepo };
1652
+ export { MAsset, MBuilding, MBuildingUnit, MCurriculum, MGradeLevel, MLearner, MPersonnel, MPlantilla, MStockCard, TAddress, TAddressInformation, TAsset, TBasicEduCount, TBuilding, TBuildingUnit, TCurriculum, TDivision, TEnrollment, TGradeLevel, TLearner, TLearnerInfo, TLearningModality, TParentGuardianInfo, TPersonContact, TPersonnel, TPlantilla, TProgram, TProgramScreening, TRegion, TReturningLearnerInfo, TSchool, TSection, TSectionPreset, TSectionStudent, TSectionSubject, TSeniorHighInformation, TStockCard, TSubject, TTeachingLoad, TTeachingLoadSlot, allowedSectionStudentStatuses, modelBasicEduCount, modelDivision, modelProgram, modelProgramScreening, modelRegion, modelSchool, modelSection, modelSectionPreset, modelSectionStudent, modelSectionSubject, modelSubject, modelTeachingLoad, modelTeachingLoadSlot, schemaAsset, schemaAssetUpdateOption, schemaBasicEduCount, schemaBuilding, schemaBuildingUnit, schemaCurriculum, schemaDivision, schemaDivisionUpdate, schemaEnrollment, schemaGenerateSections, schemaGradeLevel, schemaPersonnel, schemaPlantilla, schemaProgram, schemaProgramScreening, schemaProgramScreeningUpdate, schemaProgramUpdate, schemaRegion, schemaSchool, schemaSchoolUpdate, schemaSection, schemaSectionPreset, schemaSectionStudent, schemaSectionSubject, schemaSectionSubjectSetup, schemaStockCard, schemaSubject, schemaSubjectAdd, schemaTeachingLoad, schemaTeachingLoadSlot, schemaUpdateOptions, schemaUpdateStatus, statusesProgramScreening, useAssetController, useAssetRepo, useBasicEduCountRepo, useBuildingController, useBuildingRepo, useBuildingService, useBuildingUnitController, useBuildingUnitRepo, useBuildingUnitService, useCurriculumController, useCurriculumRepo, useDivisionController, useDivisionRepo, useDivisionService, useEnrollmentController, useEnrollmentRepo, useEnrollmentService, useGradeLevelController, useGradeLevelRepo, useLearnerController, useLearnerRepo, usePersonnelController, usePersonnelRepo, usePlantillaController, usePlantillaRepo, usePlantillaService, useProgramController, useProgramRepo, useProgramScreeningController, useProgramScreeningRepo, useRegionController, useRegionRepo, useSchoolController, useSchoolRepo, useSchoolService, useSectionController, useSectionPresetController, useSectionPresetRepo, useSectionRepo, useSectionStudentController, useSectionStudentRepo, useSectionSubjectController, useSectionSubjectRepo, useSectionSubjectService, useStockCardController, useStockCardRepository, useStockCardService, useSubjectController, useSubjectRepo, useSubjectService, useTeachingLoadController, useTeachingLoadRepo, useTeachingLoadSlotController, useTeachingLoadSlotRepo };
package/dist/index.js CHANGED
@@ -1398,6 +1398,7 @@ __export(src_exports, {
1398
1398
  schemaTeachingLoadSlot: () => schemaTeachingLoadSlot,
1399
1399
  schemaUpdateOptions: () => schemaUpdateOptions,
1400
1400
  schemaUpdateStatus: () => schemaUpdateStatus,
1401
+ statusesProgramScreening: () => statusesProgramScreening,
1401
1402
  useAssetController: () => useAssetController,
1402
1403
  useAssetRepo: () => useAssetRepo,
1403
1404
  useBasicEduCountRepo: () => useBasicEduCountRepo,
@@ -4108,6 +4109,13 @@ function useBasicEduCountRepo() {
4108
4109
  var import_nodejs_utils14 = require("@eeplatform/nodejs-utils");
4109
4110
  var import_joi10 = __toESM(require("joi"));
4110
4111
  var import_mongodb9 = require("mongodb");
4112
+ var statusesProgramScreening = [
4113
+ "pending",
4114
+ "passed",
4115
+ "failed",
4116
+ "reclassified",
4117
+ "withdrawn"
4118
+ ];
4111
4119
  var schemaProgramScreening = import_joi10.default.object({
4112
4120
  _id: import_joi10.default.string().hex().optional().allow(null, ""),
4113
4121
  school: import_joi10.default.string().hex().required(),
@@ -4126,7 +4134,7 @@ var schemaProgramScreening = import_joi10.default.object({
4126
4134
  grade: import_joi10.default.number().min(0).max(100).required()
4127
4135
  })
4128
4136
  ).optional(),
4129
- status: import_joi10.default.string().valid("pending", "pass", "failed").optional(),
4137
+ status: import_joi10.default.string().valid(...statusesProgramScreening).optional(),
4130
4138
  createdAt: import_joi10.default.string().isoDate().optional(),
4131
4139
  updatedAt: import_joi10.default.string().isoDate().optional(),
4132
4140
  deletedAt: import_joi10.default.string().isoDate().optional().allow(null, "")
@@ -4524,10 +4532,7 @@ var import_joi11 = __toESM(require("joi"));
4524
4532
  // src/resources/program-screening/program.screening.service.ts
4525
4533
  var import_nodejs_utils16 = require("@eeplatform/nodejs-utils");
4526
4534
  function useProgramScreeningService() {
4527
- const {
4528
- updateStatusById: updateEnrollmentStatusById,
4529
- getById: getEnrollmentById
4530
- } = useEnrollmentRepo();
4535
+ const { updateStatusById: updateEnrollmentStatusById } = useEnrollmentRepo();
4531
4536
  const { updateFieldById, getById: getProgramScreeningById } = useProgramScreeningRepo();
4532
4537
  async function updateStatusById(id, status) {
4533
4538
  const session = import_nodejs_utils16.useAtlas.getClient()?.startSession();
@@ -4537,20 +4542,21 @@ function useProgramScreeningService() {
4537
4542
  if (!application) {
4538
4543
  throw new import_nodejs_utils16.AppError("Application not found", 404);
4539
4544
  }
4540
- if (application.status !== "pending") {
4541
- throw new import_nodejs_utils16.AppError("Only pending applications can be updated", 400);
4542
- }
4543
4545
  await updateFieldById(
4544
4546
  { _id: id, field: "status", value: status },
4545
4547
  session
4546
4548
  );
4547
4549
  let enrollmentStatus = "pending";
4548
- if (status === "passed") {
4550
+ const ReclassifyCond = status === "reclassified" && application.status && ["failed", "withdrawn"].includes(application.status);
4551
+ if (status === "passed" && application.status === "pending" || ReclassifyCond) {
4549
4552
  enrollmentStatus = "pending";
4550
4553
  }
4551
- if (status === "failed") {
4554
+ if (status === "failed" && application.status === "pending") {
4552
4555
  enrollmentStatus = "failed-screening";
4553
4556
  }
4557
+ if (status === "withdrawn" && application.status === "pending") {
4558
+ enrollmentStatus = "withdrawn-screening";
4559
+ }
4554
4560
  await updateEnrollmentStatusById(
4555
4561
  application.applicant,
4556
4562
  enrollmentStatus,
@@ -4778,7 +4784,7 @@ function useProgramScreeningController() {
4778
4784
  }
4779
4785
  const value = req.body;
4780
4786
  const { error: updatePayloadError } = import_joi11.default.object({
4781
- status: import_joi11.default.string().valid("passed", "failed").required()
4787
+ status: import_joi11.default.string().valid(...statusesProgramScreening).required()
4782
4788
  }).validate(value);
4783
4789
  if (updatePayloadError) {
4784
4790
  next(new import_nodejs_utils17.BadRequestError(updatePayloadError.message));
@@ -44063,6 +44069,7 @@ dotenv.config();
44063
44069
  schemaTeachingLoadSlot,
44064
44070
  schemaUpdateOptions,
44065
44071
  schemaUpdateStatus,
44072
+ statusesProgramScreening,
44066
44073
  useAssetController,
44067
44074
  useAssetRepo,
44068
44075
  useBasicEduCountRepo,