@eeplatform/basic-edu 1.10.35 → 1.10.37
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 +12 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +37 -26
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +669 -654
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @eeplatform/basic-edu
|
|
2
2
|
|
|
3
|
+
## 1.10.37
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 84cc4a1: Fix enrollent and screening program
|
|
8
|
+
|
|
9
|
+
## 1.10.36
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 57a23b0: Fix enrollment status update validation
|
|
14
|
+
|
|
3
15
|
## 1.10.35
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -1695,6 +1695,7 @@ type TProgramScreening = {
|
|
|
1695
1695
|
declare const statusesProgramScreening: string[];
|
|
1696
1696
|
declare const schemaProgramScreening: Joi.ObjectSchema<any>;
|
|
1697
1697
|
declare const schemaProgramScreeningUpdate: Joi.ObjectSchema<any>;
|
|
1698
|
+
declare const schemaProgramScreeningUpdateStatus: Joi.ObjectSchema<any>;
|
|
1698
1699
|
declare function modelProgramScreening(value: TProgramScreening): TProgramScreening;
|
|
1699
1700
|
|
|
1700
1701
|
declare function useProgramScreeningRepo(): {
|
|
@@ -1964,4 +1965,4 @@ declare function useStrandController(): {
|
|
|
1964
1965
|
deleteById: (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
1965
1966
|
};
|
|
1966
1967
|
|
|
1967
|
-
export { MAsset, MBuilding, MBuildingUnit, MCurriculum, MGradeLevel, MLearner, MPersonnel, MPlantilla, MStockCard, TAddress, TAddressInformation, TAsset, TBasicEduCount, TBlockTime, TBuilding, TBuildingUnit, TCurriculum, TDivision, TEnrollment, TGradeLevel, TKindergartenDomain, TKindergartenRoutine, TLearner, TLearnerInfo, TLearningModality, TParentGuardianInfo, TPersonContact, TPersonnel, TPlantilla, TProgram, TProgramScreening, TRegion, TReturningLearnerInfo, TSchool, TSection, TSectionPreset, TSectionStudent, TSectionSubject, TSeniorHighInformation, TStockCard, TStrand, TSubject, TTeachingLoad, TTeachingLoadSlot, TTrack, allowedSectionStudentStatuses, modelBasicEduCount, modelDivision, modelKindergartenDomain, modelKindergartenRoutine, modelProgram, modelProgramScreening, modelRegion, modelSchool, modelSection, modelSectionPreset, modelSectionStudent, modelSectionSubject, modelStrand, modelSubject, modelTeachingLoad, modelTeachingLoadSlot, modelTrack, schemaAsset, schemaAssetUpdateOption, schemaBasicEduCount, schemaBuilding, schemaBuildingUnit, schemaCurriculum, schemaDivision, schemaDivisionUpdate, schemaEnrollment, schemaGenerateSections, schemaGradeLevel, schemaKindergartenDomain, schemaKindergartenRoutine, schemaKindergartenRoutineUpdate, schemaPersonnel, schemaPlantilla, schemaProgram, schemaProgramScreening, schemaProgramScreeningUpdate, schemaProgramUpdate, schemaRegion, schemaSchool, schemaSchoolUpdate, schemaSection, schemaSectionPreset, schemaSectionStudent, schemaSectionSubject, schemaSectionSubjectSetup, schemaStockCard, schemaStrand, schemaSubject, schemaSubjectAdd, schemaTeachingLoad, schemaTeachingLoadSlot, schemaTrack, schemaUpdateOptions, schemaUpdateStatus, statusesProgramScreening, useAssetController, useAssetRepo, useBasicEduCountRepo, useBuildingController, useBuildingRepo, useBuildingService, useBuildingUnitController, useBuildingUnitRepo, useBuildingUnitService, useCurriculumController, useCurriculumRepo, useDivisionController, useDivisionRepo, useDivisionService, useEnrollmentController, useEnrollmentRepo, useEnrollmentService, useGradeLevelController, useGradeLevelRepo, useKindergartenDomainController, useKindergartenDomainRepo, useKindergartenDomainService, useKindergartenRoutineController, useKindergartenRoutineRepo, 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, useStrandController, useStrandRepo, useSubjectController, useSubjectRepo, useSubjectService, useTeachingLoadController, useTeachingLoadRepo, useTeachingLoadSlotController, useTeachingLoadSlotRepo, useTrackController, useTrackRepo, useTrackService };
|
|
1968
|
+
export { MAsset, MBuilding, MBuildingUnit, MCurriculum, MGradeLevel, MLearner, MPersonnel, MPlantilla, MStockCard, TAddress, TAddressInformation, TAsset, TBasicEduCount, TBlockTime, TBuilding, TBuildingUnit, TCurriculum, TDivision, TEnrollment, TGradeLevel, TKindergartenDomain, TKindergartenRoutine, TLearner, TLearnerInfo, TLearningModality, TParentGuardianInfo, TPersonContact, TPersonnel, TPlantilla, TProgram, TProgramScreening, TRegion, TReturningLearnerInfo, TSchool, TSection, TSectionPreset, TSectionStudent, TSectionSubject, TSeniorHighInformation, TStockCard, TStrand, TSubject, TTeachingLoad, TTeachingLoadSlot, TTrack, allowedSectionStudentStatuses, modelBasicEduCount, modelDivision, modelKindergartenDomain, modelKindergartenRoutine, modelProgram, modelProgramScreening, modelRegion, modelSchool, modelSection, modelSectionPreset, modelSectionStudent, modelSectionSubject, modelStrand, modelSubject, modelTeachingLoad, modelTeachingLoadSlot, modelTrack, schemaAsset, schemaAssetUpdateOption, schemaBasicEduCount, schemaBuilding, schemaBuildingUnit, schemaCurriculum, schemaDivision, schemaDivisionUpdate, schemaEnrollment, schemaGenerateSections, schemaGradeLevel, schemaKindergartenDomain, schemaKindergartenRoutine, schemaKindergartenRoutineUpdate, schemaPersonnel, schemaPlantilla, schemaProgram, schemaProgramScreening, schemaProgramScreeningUpdate, schemaProgramScreeningUpdateStatus, schemaProgramUpdate, schemaRegion, schemaSchool, schemaSchoolUpdate, schemaSection, schemaSectionPreset, schemaSectionStudent, schemaSectionSubject, schemaSectionSubjectSetup, schemaStockCard, schemaStrand, schemaSubject, schemaSubjectAdd, schemaTeachingLoad, schemaTeachingLoadSlot, schemaTrack, schemaUpdateOptions, schemaUpdateStatus, statusesProgramScreening, useAssetController, useAssetRepo, useBasicEduCountRepo, useBuildingController, useBuildingRepo, useBuildingService, useBuildingUnitController, useBuildingUnitRepo, useBuildingUnitService, useCurriculumController, useCurriculumRepo, useDivisionController, useDivisionRepo, useDivisionService, useEnrollmentController, useEnrollmentRepo, useEnrollmentService, useGradeLevelController, useGradeLevelRepo, useKindergartenDomainController, useKindergartenDomainRepo, useKindergartenDomainService, useKindergartenRoutineController, useKindergartenRoutineRepo, 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, useStrandController, useStrandRepo, useSubjectController, useSubjectRepo, useSubjectService, useTeachingLoadController, useTeachingLoadRepo, useTeachingLoadSlotController, useTeachingLoadSlotRepo, useTrackController, useTrackRepo, useTrackService };
|
package/dist/index.js
CHANGED
|
@@ -1389,6 +1389,7 @@ __export(src_exports, {
|
|
|
1389
1389
|
schemaProgram: () => schemaProgram,
|
|
1390
1390
|
schemaProgramScreening: () => schemaProgramScreening,
|
|
1391
1391
|
schemaProgramScreeningUpdate: () => schemaProgramScreeningUpdate,
|
|
1392
|
+
schemaProgramScreeningUpdateStatus: () => schemaProgramScreeningUpdateStatus,
|
|
1392
1393
|
schemaProgramUpdate: () => schemaProgramUpdate,
|
|
1393
1394
|
schemaRegion: () => schemaRegion,
|
|
1394
1395
|
schemaSchool: () => schemaSchool,
|
|
@@ -3106,7 +3107,7 @@ var learnerInfoSchema = import_joi5.default.object({
|
|
|
3106
3107
|
});
|
|
3107
3108
|
var schemaUpdateStatus = import_joi5.default.object({
|
|
3108
3109
|
_id: import_joi5.default.string().hex().length(24).required(),
|
|
3109
|
-
status: import_joi5.default.string().valid("pending", "accepted", "rejected", "cancelled").required()
|
|
3110
|
+
status: import_joi5.default.string().valid("screening", "pending", "accepted", "rejected", "cancelled").required()
|
|
3110
3111
|
});
|
|
3111
3112
|
var gradeLevels = [
|
|
3112
3113
|
"kindergarten",
|
|
@@ -3150,7 +3151,7 @@ var schemaEnrollment = import_joi5.default.object({
|
|
|
3150
3151
|
// Added to match frontend
|
|
3151
3152
|
specialProgramMajor: import_joi5.default.string().optional().allow("", null),
|
|
3152
3153
|
// Added to match frontend
|
|
3153
|
-
gwa: import_joi5.default.number().optional().allow(null, 0),
|
|
3154
|
+
gwa: import_joi5.default.number().max(100).optional().allow(null, 0),
|
|
3154
3155
|
subjects: import_joi5.default.array().items(
|
|
3155
3156
|
import_joi5.default.object({
|
|
3156
3157
|
title: import_joi5.default.string().max(100).required(),
|
|
@@ -4102,7 +4103,7 @@ var statusesProgramScreening = [
|
|
|
4102
4103
|
"passed",
|
|
4103
4104
|
"failed",
|
|
4104
4105
|
"reclassified",
|
|
4105
|
-
"
|
|
4106
|
+
"cancelled"
|
|
4106
4107
|
];
|
|
4107
4108
|
var schemaProgramScreening = import_joi9.default.object({
|
|
4108
4109
|
_id: import_joi9.default.string().hex().optional().allow(null, ""),
|
|
@@ -4133,6 +4134,10 @@ var schemaProgramScreeningUpdate = import_joi9.default.object({
|
|
|
4133
4134
|
specialProgramName: import_joi9.default.string().optional().allow("", null),
|
|
4134
4135
|
status: import_joi9.default.string().valid("pending", "pass", "failed").optional().allow("", null)
|
|
4135
4136
|
});
|
|
4137
|
+
var schemaProgramScreeningUpdateStatus = import_joi9.default.object({
|
|
4138
|
+
_id: import_joi9.default.string().hex().length(24).required(),
|
|
4139
|
+
status: import_joi9.default.string().valid("passed", "failed", "reclassified").required()
|
|
4140
|
+
});
|
|
4136
4141
|
function modelProgramScreening(value) {
|
|
4137
4142
|
const { error } = schemaProgramScreening.validate(value);
|
|
4138
4143
|
if (error) {
|
|
@@ -4589,19 +4594,26 @@ function useProgramScreeningService() {
|
|
|
4589
4594
|
const { updateStatusById: updateEnrollmentStatusById, removeProgramById } = useEnrollmentRepo();
|
|
4590
4595
|
const { updateFieldById, getById: getProgramScreeningById } = useProgramScreeningRepo();
|
|
4591
4596
|
async function updateStatusById(id, status) {
|
|
4597
|
+
const { error } = schemaProgramScreeningUpdateStatus.validate({
|
|
4598
|
+
_id: id,
|
|
4599
|
+
status
|
|
4600
|
+
});
|
|
4601
|
+
if (error) {
|
|
4602
|
+
throw new import_nodejs_utils14.BadRequestError(`Invalid data: ${error.message}`);
|
|
4603
|
+
}
|
|
4592
4604
|
const session = import_nodejs_utils14.useAtlas.getClient()?.startSession();
|
|
4593
4605
|
try {
|
|
4594
4606
|
await session?.startTransaction();
|
|
4595
4607
|
const application = await getProgramScreeningById(id);
|
|
4596
4608
|
if (!application) {
|
|
4597
|
-
throw new import_nodejs_utils14.
|
|
4609
|
+
throw new import_nodejs_utils14.NotFoundError("Application not found");
|
|
4598
4610
|
}
|
|
4599
4611
|
await updateFieldById(
|
|
4600
4612
|
{ _id: id, field: "status", value: status },
|
|
4601
4613
|
session
|
|
4602
4614
|
);
|
|
4603
4615
|
let enrollmentStatus = "pending";
|
|
4604
|
-
const ReclassifyCond = status === "reclassified" && application.status
|
|
4616
|
+
const ReclassifyCond = status === "reclassified" && application.status === "failed";
|
|
4605
4617
|
if (ReclassifyCond) {
|
|
4606
4618
|
await removeProgramById(String(application.applicant), session);
|
|
4607
4619
|
}
|
|
@@ -4611,9 +4623,6 @@ function useProgramScreeningService() {
|
|
|
4611
4623
|
if (status === "failed" && application.status === "pending") {
|
|
4612
4624
|
enrollmentStatus = "failed-screening";
|
|
4613
4625
|
}
|
|
4614
|
-
if (status === "withdrawn" && application.status === "pending") {
|
|
4615
|
-
enrollmentStatus = "withdrawn-screening";
|
|
4616
|
-
}
|
|
4617
4626
|
await updateEnrollmentStatusById(
|
|
4618
4627
|
application.applicant,
|
|
4619
4628
|
enrollmentStatus,
|
|
@@ -4621,10 +4630,10 @@ function useProgramScreeningService() {
|
|
|
4621
4630
|
);
|
|
4622
4631
|
await session?.commitTransaction();
|
|
4623
4632
|
return "Status updated successfully";
|
|
4624
|
-
} catch (
|
|
4633
|
+
} catch (error2) {
|
|
4625
4634
|
await session?.abortTransaction();
|
|
4626
|
-
if (
|
|
4627
|
-
throw
|
|
4635
|
+
if (error2 instanceof import_nodejs_utils14.AppError) {
|
|
4636
|
+
throw error2;
|
|
4628
4637
|
} else {
|
|
4629
4638
|
throw new import_nodejs_utils14.AppError("Failed to update status", 500);
|
|
4630
4639
|
}
|
|
@@ -4833,22 +4842,17 @@ function useProgramScreeningController() {
|
|
|
4833
4842
|
}
|
|
4834
4843
|
async function updateStatusById(req, res, next) {
|
|
4835
4844
|
const id = req.params.id;
|
|
4836
|
-
const
|
|
4837
|
-
const { error } =
|
|
4845
|
+
const status = req.body.status ?? "";
|
|
4846
|
+
const { error } = schemaProgramScreeningUpdateStatus.validate({
|
|
4847
|
+
_id: id,
|
|
4848
|
+
status
|
|
4849
|
+
});
|
|
4838
4850
|
if (error) {
|
|
4839
4851
|
next(new import_nodejs_utils15.BadRequestError(error.message));
|
|
4840
4852
|
return;
|
|
4841
4853
|
}
|
|
4842
|
-
const value = req.body;
|
|
4843
|
-
const { error: updatePayloadError } = import_joi10.default.object({
|
|
4844
|
-
status: import_joi10.default.string().valid(...statusesProgramScreening).required()
|
|
4845
|
-
}).validate(value);
|
|
4846
|
-
if (updatePayloadError) {
|
|
4847
|
-
next(new import_nodejs_utils15.BadRequestError(updatePayloadError.message));
|
|
4848
|
-
return;
|
|
4849
|
-
}
|
|
4850
4854
|
try {
|
|
4851
|
-
const message = await _updateStatusById(id,
|
|
4855
|
+
const message = await _updateStatusById(id, status);
|
|
4852
4856
|
res.json({ message });
|
|
4853
4857
|
return;
|
|
4854
4858
|
} catch (error2) {
|
|
@@ -5646,6 +5650,11 @@ function useEnrollmentService() {
|
|
|
5646
5650
|
"Only enrollments in screening status can be withdrawn."
|
|
5647
5651
|
);
|
|
5648
5652
|
}
|
|
5653
|
+
if (enrollment.status === "cancelled" && !enrollment.specialProgram && status === "pending") {
|
|
5654
|
+
throw new import_nodejs_utils19.BadRequestError(
|
|
5655
|
+
"Cancelled enrollment without special program cannot be updated to pending."
|
|
5656
|
+
);
|
|
5657
|
+
}
|
|
5649
5658
|
const result = await _updateStatusById(_id, status, session);
|
|
5650
5659
|
if (result.modifiedCount === 0) {
|
|
5651
5660
|
throw new import_nodejs_utils19.InternalServerError("Failed to accept enrollment");
|
|
@@ -5670,10 +5679,11 @@ function useEnrollmentService() {
|
|
|
5670
5679
|
await addLearner(enrollment, session);
|
|
5671
5680
|
}
|
|
5672
5681
|
const programScreening = await getByApplicantId(_id);
|
|
5673
|
-
if (programScreening) {
|
|
5674
|
-
|
|
5675
|
-
|
|
5676
|
-
|
|
5682
|
+
if (programScreening && status === "cancelled") {
|
|
5683
|
+
await updateStatusByApplicantId(_id, "cancelled", session);
|
|
5684
|
+
}
|
|
5685
|
+
if (programScreening && programScreening.status === "cancelled" && enrollment.status === "cancelled" && enrollment.specialProgram && status === "pending") {
|
|
5686
|
+
await updateStatusByApplicantId(_id, "reclassified", session);
|
|
5677
5687
|
}
|
|
5678
5688
|
await session.commitTransaction();
|
|
5679
5689
|
return "Enrollment accepted successfully";
|
|
@@ -47446,6 +47456,7 @@ dotenv.config();
|
|
|
47446
47456
|
schemaProgram,
|
|
47447
47457
|
schemaProgramScreening,
|
|
47448
47458
|
schemaProgramScreeningUpdate,
|
|
47459
|
+
schemaProgramScreeningUpdateStatus,
|
|
47449
47460
|
schemaProgramUpdate,
|
|
47450
47461
|
schemaRegion,
|
|
47451
47462
|
schemaSchool,
|