@7365admin1/core 3.35.0 → 3.36.0
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 +6 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +74 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +74 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -2498,6 +2498,7 @@ declare function useSiteCameraRepo(): {
|
|
|
2498
2498
|
category?: string;
|
|
2499
2499
|
direction?: string;
|
|
2500
2500
|
}) => Promise<{}>;
|
|
2501
|
+
getCamerasBySiteId: (site: string | ObjectId) => Promise<Array<TSiteCamera>>;
|
|
2501
2502
|
delCachedData: () => void;
|
|
2502
2503
|
getBySiteGuardPost: (site: string | ObjectId, guardPost: number) => Promise<{} | null>;
|
|
2503
2504
|
updateById: (_id: string | ObjectId, value: Partial<Pick<TSiteCamera, "host" | "username" | "password" | "category" | "guardPost" | "updatedAt">>, session?: ClientSession) => Promise<string>;
|
|
@@ -3099,6 +3100,7 @@ declare function usePersonRepo(): {
|
|
|
3099
3100
|
getById: (_id: string | ObjectId) => Promise<TPerson | null>;
|
|
3100
3101
|
createTextIndex: () => Promise<void>;
|
|
3101
3102
|
getPersonByPlateNumber: (plateNumber: string) => Promise<TPerson | null>;
|
|
3103
|
+
getApprovedPersonByPlateNumber: (plateNumber: string, excludePersonId?: string | ObjectId) => Promise<TPerson | null>;
|
|
3102
3104
|
getByNRIC: (value: string) => Promise<TPerson | null>;
|
|
3103
3105
|
createIndexes: () => Promise<void>;
|
|
3104
3106
|
getPersonByPhoneNumber: (value: string) => Promise<TPerson | null>;
|
package/dist/index.js
CHANGED
|
@@ -24812,6 +24812,18 @@ function useSiteCameraRepo() {
|
|
|
24812
24812
|
throw new import_node_server_utils73.BadRequestError("Failed to retrieve site cameras.");
|
|
24813
24813
|
}
|
|
24814
24814
|
}
|
|
24815
|
+
async function getCamerasBySiteId(site) {
|
|
24816
|
+
const _site = (0, import_node_server_utils73.toObjectId)(site);
|
|
24817
|
+
try {
|
|
24818
|
+
const items = await collection.find({ site: _site, status: "active", type: "anpr" }).toArray();
|
|
24819
|
+
return items;
|
|
24820
|
+
} catch (error) {
|
|
24821
|
+
if (error instanceof import_node_server_utils73.BadRequestError) {
|
|
24822
|
+
throw error;
|
|
24823
|
+
}
|
|
24824
|
+
throw new import_node_server_utils73.BadRequestError("Failed to retrieve site cameras.");
|
|
24825
|
+
}
|
|
24826
|
+
}
|
|
24815
24827
|
async function getBySiteGuardPost(site, guardPost) {
|
|
24816
24828
|
try {
|
|
24817
24829
|
site = new import_mongodb44.ObjectId(site);
|
|
@@ -25168,6 +25180,7 @@ function useSiteCameraRepo() {
|
|
|
25168
25180
|
getBySite,
|
|
25169
25181
|
getVisitorsInBySite,
|
|
25170
25182
|
getBySites,
|
|
25183
|
+
getCamerasBySiteId,
|
|
25171
25184
|
delCachedData,
|
|
25172
25185
|
getBySiteGuardPost,
|
|
25173
25186
|
updateById,
|
|
@@ -25479,6 +25492,22 @@ function usePersonRepo() {
|
|
|
25479
25492
|
);
|
|
25480
25493
|
}
|
|
25481
25494
|
}
|
|
25495
|
+
async function getApprovedPersonByPlateNumber(plateNumber, excludePersonId) {
|
|
25496
|
+
try {
|
|
25497
|
+
const query = {
|
|
25498
|
+
plateNumber,
|
|
25499
|
+
status: "approved"
|
|
25500
|
+
};
|
|
25501
|
+
if (excludePersonId) {
|
|
25502
|
+
query._id = { $ne: (0, import_node_server_utils74.toObjectId)(excludePersonId) };
|
|
25503
|
+
}
|
|
25504
|
+
return await collection.findOne(query);
|
|
25505
|
+
} catch (error) {
|
|
25506
|
+
throw new import_node_server_utils74.InternalServerError(
|
|
25507
|
+
"Failed to fetch approved person by plate number."
|
|
25508
|
+
);
|
|
25509
|
+
}
|
|
25510
|
+
}
|
|
25482
25511
|
async function getByNRIC(value) {
|
|
25483
25512
|
try {
|
|
25484
25513
|
if (!value || value.trim() === "") {
|
|
@@ -25859,6 +25888,7 @@ function usePersonRepo() {
|
|
|
25859
25888
|
getById,
|
|
25860
25889
|
createTextIndex,
|
|
25861
25890
|
getPersonByPlateNumber,
|
|
25891
|
+
getApprovedPersonByPlateNumber,
|
|
25862
25892
|
getByNRIC,
|
|
25863
25893
|
createIndexes,
|
|
25864
25894
|
getPersonByPhoneNumber,
|
|
@@ -27033,7 +27063,8 @@ function useVehicleService() {
|
|
|
27033
27063
|
throw new Error("Unable to start session for vehicle service.");
|
|
27034
27064
|
}
|
|
27035
27065
|
}
|
|
27036
|
-
const
|
|
27066
|
+
const plateNumbers = Array.isArray(value.plateNumber) ? value.plateNumber : value.plateNumber ? [value.plateNumber] : [];
|
|
27067
|
+
const [_vehiclePlateNumber] = plateNumbers;
|
|
27037
27068
|
const [existingPlateNumber, org] = await Promise.all([
|
|
27038
27069
|
_getVehicleByPlateNumber(_vehiclePlateNumber),
|
|
27039
27070
|
_getById(value.org)
|
|
@@ -27098,7 +27129,6 @@ function useVehicleService() {
|
|
|
27098
27129
|
}
|
|
27099
27130
|
}
|
|
27100
27131
|
const owner = value.name;
|
|
27101
|
-
const plateNumbers = value.plateNumber;
|
|
27102
27132
|
try {
|
|
27103
27133
|
if (!isExternalSession) {
|
|
27104
27134
|
session.startTransaction();
|
|
@@ -27315,7 +27345,10 @@ function useVehicleService() {
|
|
|
27315
27345
|
const dahuaResponse = await _addPlateNumber(dahuaPayload);
|
|
27316
27346
|
if (dahuaResponse?.statusCode != 200) {
|
|
27317
27347
|
console.log("dahuaResponse", dahuaResponse);
|
|
27318
|
-
console.log(
|
|
27348
|
+
console.log(
|
|
27349
|
+
"approveVehicleById dahuaResponse dahuaResponse?.statusCode != 200",
|
|
27350
|
+
dahuaResponse?.statusCode
|
|
27351
|
+
);
|
|
27319
27352
|
throw new import_node_server_utils78.BadRequestError("Failed to add plate number to ANPR");
|
|
27320
27353
|
}
|
|
27321
27354
|
const responseData = dahuaResponse?.data.toString("utf-8");
|
|
@@ -27522,7 +27555,19 @@ function useVehicleService() {
|
|
|
27522
27555
|
if (value.peopleId) {
|
|
27523
27556
|
value.peopleId = new import_mongodb49.ObjectId(value.peopleId);
|
|
27524
27557
|
}
|
|
27525
|
-
const {
|
|
27558
|
+
const {
|
|
27559
|
+
name,
|
|
27560
|
+
plateNumber,
|
|
27561
|
+
start,
|
|
27562
|
+
end,
|
|
27563
|
+
recNo,
|
|
27564
|
+
type,
|
|
27565
|
+
unit,
|
|
27566
|
+
site,
|
|
27567
|
+
block,
|
|
27568
|
+
level,
|
|
27569
|
+
...rest
|
|
27570
|
+
} = value;
|
|
27526
27571
|
if (_name != name || _plateNumber != plateNumber) {
|
|
27527
27572
|
const startDahua = value.start ? formatDahuaDate(new Date(value.start)) : formatDahuaDate(new Date(_start));
|
|
27528
27573
|
const endDahua = value.end ? formatDahuaDate(new Date(value.end)) : formatDahuaDate(new Date(_end));
|
|
@@ -27549,7 +27594,11 @@ function useVehicleService() {
|
|
|
27549
27594
|
for (const camera of siteCameras) {
|
|
27550
27595
|
const { host, username, password } = camera;
|
|
27551
27596
|
if (_plateNumber != plateNumber) {
|
|
27552
|
-
console.log(
|
|
27597
|
+
console.log(
|
|
27598
|
+
"updateVehicleById _plateNumber != plateNumber",
|
|
27599
|
+
_plateNumber,
|
|
27600
|
+
plateNumber
|
|
27601
|
+
);
|
|
27553
27602
|
const removePlateNumber = {
|
|
27554
27603
|
host,
|
|
27555
27604
|
username,
|
|
@@ -27596,7 +27645,11 @@ function useVehicleService() {
|
|
|
27596
27645
|
);
|
|
27597
27646
|
}
|
|
27598
27647
|
} else {
|
|
27599
|
-
console.log(
|
|
27648
|
+
console.log(
|
|
27649
|
+
"updateVehicleById _plateNumber == plateNumber",
|
|
27650
|
+
_plateNumber,
|
|
27651
|
+
plateNumber
|
|
27652
|
+
);
|
|
27600
27653
|
const dahuaPayload = {
|
|
27601
27654
|
host,
|
|
27602
27655
|
username,
|
|
@@ -36390,7 +36443,8 @@ function usePersonService() {
|
|
|
36390
36443
|
getById: _getById,
|
|
36391
36444
|
updateById: _updateById,
|
|
36392
36445
|
getByUserId: _getByUserId,
|
|
36393
|
-
reviewResidentPerson: _reviewResidentPerson
|
|
36446
|
+
reviewResidentPerson: _reviewResidentPerson,
|
|
36447
|
+
getApprovedPersonByPlateNumber
|
|
36394
36448
|
} = usePersonRepo();
|
|
36395
36449
|
const { addPlateNumber: _addPlateNumber } = useDahuaService();
|
|
36396
36450
|
const {
|
|
@@ -36403,7 +36457,7 @@ function usePersonService() {
|
|
|
36403
36457
|
} = useUserRepo();
|
|
36404
36458
|
const { add: addMember } = useMemberRepo();
|
|
36405
36459
|
const { getById: _getUnitById, updateById: updateUnitById } = useBuildingUnitRepo();
|
|
36406
|
-
const { getAllCameraWithPassword: _getAllSiteCameras } = useSiteCameraRepo();
|
|
36460
|
+
const { getAllCameraWithPassword: _getAllSiteCameras, getCamerasBySiteId } = useSiteCameraRepo();
|
|
36407
36461
|
const { updateStatusById } = useFileRepo();
|
|
36408
36462
|
const { getById: getOrgById } = useOrgRepo();
|
|
36409
36463
|
const { getSiteById } = useSiteRepo();
|
|
@@ -36498,7 +36552,7 @@ function usePersonService() {
|
|
|
36498
36552
|
"./public/handlebars/registration-pending"
|
|
36499
36553
|
)
|
|
36500
36554
|
});
|
|
36501
|
-
mailer.sendMail({
|
|
36555
|
+
await mailer.sendMail({
|
|
36502
36556
|
to: value.email,
|
|
36503
36557
|
subject: "Registration Received \u2013 Pending Review",
|
|
36504
36558
|
html: emailContent,
|
|
@@ -36658,7 +36712,7 @@ function usePersonService() {
|
|
|
36658
36712
|
value.approvedBy.id = approvedBy._id;
|
|
36659
36713
|
}
|
|
36660
36714
|
const vehicle = {
|
|
36661
|
-
plateNumber: person.plateNumber
|
|
36715
|
+
plateNumber: person.plateNumber ?? "",
|
|
36662
36716
|
type: "whitelist",
|
|
36663
36717
|
category: person.type || "",
|
|
36664
36718
|
name: person.name,
|
|
@@ -36690,7 +36744,16 @@ function usePersonService() {
|
|
|
36690
36744
|
case "approved":
|
|
36691
36745
|
userStatus = "active";
|
|
36692
36746
|
if (person.plateNumber && person.plateNumber.trim() !== "") {
|
|
36693
|
-
await
|
|
36747
|
+
const anprCameraList = await getCamerasBySiteId(
|
|
36748
|
+
person.site.toString()
|
|
36749
|
+
);
|
|
36750
|
+
const existingPerson = await getApprovedPersonByPlateNumber(
|
|
36751
|
+
person.plateNumber,
|
|
36752
|
+
id
|
|
36753
|
+
);
|
|
36754
|
+
if (anprCameraList.length > 0 && !existingPerson) {
|
|
36755
|
+
await addVehicle(vehicle, session);
|
|
36756
|
+
}
|
|
36694
36757
|
}
|
|
36695
36758
|
title = "Your account has been approved";
|
|
36696
36759
|
hideLogin = false;
|