@7365admin1/module-hygiene 4.29.1-staging.13 → 4.29.1-staging.15
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/.changeset/area-import-unit-ids.md +5 -0
- package/.changeset/search-input-bounds.md +5 -0
- package/dist/index.js +281 -270
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +281 -270
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/test/area-import-unit-id.test.mjs +18 -0
- package/test/escape-regex.util.test.mjs +26 -0
package/dist/index.js
CHANGED
|
@@ -924,21 +924,30 @@ function useHygieneDashboardController() {
|
|
|
924
924
|
}
|
|
925
925
|
|
|
926
926
|
// src/models/hygiene-area.model.ts
|
|
927
|
-
var
|
|
927
|
+
var import_joi3 = __toESM(require("joi"));
|
|
928
928
|
var import_mongodb2 = require("mongodb");
|
|
929
929
|
var import_node_server_utils3 = require("@7365admin1/node-server-utils");
|
|
930
930
|
var import_core2 = require("@7365admin1/core");
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
931
|
+
|
|
932
|
+
// src/utils/area-unit.util.ts
|
|
933
|
+
var import_joi2 = __toESM(require("joi"));
|
|
934
|
+
var areaUnitSchema = import_joi2.default.object({
|
|
935
|
+
unit: import_joi2.default.string().hex().required(),
|
|
936
|
+
name: import_joi2.default.string().required()
|
|
937
|
+
});
|
|
938
|
+
function toAreaUnit(unit) {
|
|
939
|
+
return { unit: String(unit._id), name: unit.name };
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
// src/models/hygiene-area.model.ts
|
|
943
|
+
var areaSchema = import_joi3.default.object({
|
|
944
|
+
site: import_joi3.default.string().hex().required(),
|
|
945
|
+
serviceType: import_joi3.default.string().valid(...Object.values(import_core2.AppServiceType)).required(),
|
|
946
|
+
name: import_joi3.default.string().required(),
|
|
947
|
+
type: import_joi3.default.string().valid(...allowedTypes).required(),
|
|
948
|
+
set: import_joi3.default.number().min(0).optional(),
|
|
949
|
+
units: import_joi3.default.array().items(
|
|
950
|
+
areaUnitSchema.optional()
|
|
942
951
|
).min(1).unique("unit", { ignoreUndefined: true }).messages({
|
|
943
952
|
"array.unique": "Duplicate area units are not allowed"
|
|
944
953
|
})
|
|
@@ -993,6 +1002,11 @@ function capitalizeText(text) {
|
|
|
993
1002
|
return text.toLowerCase().split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
994
1003
|
}
|
|
995
1004
|
|
|
1005
|
+
// src/utils/escape-regex.util.ts
|
|
1006
|
+
function escapeRegex(value) {
|
|
1007
|
+
return String(value ?? "").replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
1008
|
+
}
|
|
1009
|
+
|
|
996
1010
|
// src/repositories/hygiene-area.repository.ts
|
|
997
1011
|
function useAreaRepo() {
|
|
998
1012
|
const db = import_node_server_utils4.useAtlas.getDb();
|
|
@@ -1089,7 +1103,7 @@ function useAreaRepo() {
|
|
|
1089
1103
|
cacheOptions.type = type;
|
|
1090
1104
|
}
|
|
1091
1105
|
if (search) {
|
|
1092
|
-
query.$or = [{ name: { $regex: search, $options: "i" } }];
|
|
1106
|
+
query.$or = [{ name: { $regex: escapeRegex(search), $options: "i" } }];
|
|
1093
1107
|
cacheOptions.search = search;
|
|
1094
1108
|
}
|
|
1095
1109
|
const cacheKey = (0, import_node_server_utils4.makeCacheKey)(namespace_collection, cacheOptions);
|
|
@@ -1431,14 +1445,14 @@ var import_mongodb5 = require("mongodb");
|
|
|
1431
1445
|
var import_node_server_utils7 = require("@7365admin1/node-server-utils");
|
|
1432
1446
|
|
|
1433
1447
|
// src/models/hygiene-unit.model.ts
|
|
1434
|
-
var
|
|
1448
|
+
var import_joi4 = __toESM(require("joi"));
|
|
1435
1449
|
var import_mongodb4 = require("mongodb");
|
|
1436
1450
|
var import_node_server_utils6 = require("@7365admin1/node-server-utils");
|
|
1437
1451
|
var import_core3 = require("@7365admin1/core");
|
|
1438
|
-
var unitSchema =
|
|
1439
|
-
site:
|
|
1440
|
-
serviceType:
|
|
1441
|
-
name:
|
|
1452
|
+
var unitSchema = import_joi4.default.object({
|
|
1453
|
+
site: import_joi4.default.string().hex().required(),
|
|
1454
|
+
serviceType: import_joi4.default.string().valid(...Object.values(import_core3.AppServiceType)).required(),
|
|
1455
|
+
name: import_joi4.default.string().required()
|
|
1442
1456
|
});
|
|
1443
1457
|
function MUnit(value) {
|
|
1444
1458
|
const { error } = unitSchema.validate(value);
|
|
@@ -1551,7 +1565,7 @@ function useUnitRepository() {
|
|
|
1551
1565
|
throw new import_node_server_utils7.BadRequestError("Invalid site ID format.");
|
|
1552
1566
|
}
|
|
1553
1567
|
if (search) {
|
|
1554
|
-
query.$or = [{ name: { $regex: search, $options: "i" } }];
|
|
1568
|
+
query.$or = [{ name: { $regex: escapeRegex(search), $options: "i" } }];
|
|
1555
1569
|
cacheOptions.search = search;
|
|
1556
1570
|
}
|
|
1557
1571
|
const cacheKey = (0, import_node_server_utils7.makeCacheKey)(namespace_collection, cacheOptions);
|
|
@@ -1773,10 +1787,7 @@ function useAreaService() {
|
|
|
1773
1787
|
}
|
|
1774
1788
|
}
|
|
1775
1789
|
if (foundUnit) {
|
|
1776
|
-
areaUnits.push(
|
|
1777
|
-
unit: foundUnit._id,
|
|
1778
|
-
name: foundUnit.name
|
|
1779
|
-
});
|
|
1790
|
+
areaUnits.push(toAreaUnit(foundUnit));
|
|
1780
1791
|
}
|
|
1781
1792
|
}
|
|
1782
1793
|
if (areaUnits.length > 0) {
|
|
@@ -1873,7 +1884,7 @@ function useAreaService() {
|
|
|
1873
1884
|
}
|
|
1874
1885
|
|
|
1875
1886
|
// src/controllers/hygiene-area.controller.ts
|
|
1876
|
-
var
|
|
1887
|
+
var import_joi5 = __toESM(require("joi"));
|
|
1877
1888
|
var import_node_server_utils9 = require("@7365admin1/node-server-utils");
|
|
1878
1889
|
var import_core4 = require("@7365admin1/core");
|
|
1879
1890
|
|
|
@@ -1934,13 +1945,13 @@ function useAreaController() {
|
|
|
1934
1945
|
}
|
|
1935
1946
|
async function getAreas(req, res, next) {
|
|
1936
1947
|
const query = { ...req.query, ...req.params };
|
|
1937
|
-
const validation =
|
|
1938
|
-
page:
|
|
1939
|
-
limit:
|
|
1940
|
-
search:
|
|
1941
|
-
type:
|
|
1942
|
-
site:
|
|
1943
|
-
serviceType:
|
|
1948
|
+
const validation = import_joi5.default.object({
|
|
1949
|
+
page: import_joi5.default.number().min(1).optional().allow("", null),
|
|
1950
|
+
limit: import_joi5.default.number().min(1).optional().allow("", null),
|
|
1951
|
+
search: import_joi5.default.string().optional().allow("", null),
|
|
1952
|
+
type: import_joi5.default.string().valid("all", ...allowedTypes).optional().allow("", null),
|
|
1953
|
+
site: import_joi5.default.string().hex().required(),
|
|
1954
|
+
serviceType: import_joi5.default.string().valid(...Object.values(import_core4.AppServiceType)).required()
|
|
1944
1955
|
});
|
|
1945
1956
|
const { error } = validation.validate(query);
|
|
1946
1957
|
if (error) {
|
|
@@ -1971,7 +1982,7 @@ function useAreaController() {
|
|
|
1971
1982
|
}
|
|
1972
1983
|
}
|
|
1973
1984
|
async function getAreaById(req, res, next) {
|
|
1974
|
-
const validation =
|
|
1985
|
+
const validation = import_joi5.default.string().hex().required();
|
|
1975
1986
|
const _id = req.params.id;
|
|
1976
1987
|
const { error, value } = validation.validate(_id);
|
|
1977
1988
|
if (error) {
|
|
@@ -1991,15 +2002,15 @@ function useAreaController() {
|
|
|
1991
2002
|
}
|
|
1992
2003
|
async function updateArea(req, res, next) {
|
|
1993
2004
|
const payload = { id: req.params.id, ...req.body };
|
|
1994
|
-
const schema =
|
|
1995
|
-
id:
|
|
1996
|
-
name:
|
|
1997
|
-
type:
|
|
1998
|
-
set:
|
|
1999
|
-
units:
|
|
2000
|
-
|
|
2001
|
-
unit:
|
|
2002
|
-
name:
|
|
2005
|
+
const schema = import_joi5.default.object({
|
|
2006
|
+
id: import_joi5.default.string().hex().required(),
|
|
2007
|
+
name: import_joi5.default.string().optional().allow("", null),
|
|
2008
|
+
type: import_joi5.default.string().optional().allow("", null, ...allowedTypes),
|
|
2009
|
+
set: import_joi5.default.number().min(0).optional(),
|
|
2010
|
+
units: import_joi5.default.array().items(
|
|
2011
|
+
import_joi5.default.object({
|
|
2012
|
+
unit: import_joi5.default.string().hex().required(),
|
|
2013
|
+
name: import_joi5.default.string().required()
|
|
2003
2014
|
}).required()
|
|
2004
2015
|
).min(1).unique("unit", { ignoreUndefined: true }).optional().messages({
|
|
2005
2016
|
"array.unique": "Duplicate area units are not allowed"
|
|
@@ -2024,7 +2035,7 @@ function useAreaController() {
|
|
|
2024
2035
|
}
|
|
2025
2036
|
async function deleteArea(req, res, next) {
|
|
2026
2037
|
const id = req.params.id;
|
|
2027
|
-
const validation =
|
|
2038
|
+
const validation = import_joi5.default.string().hex().required();
|
|
2028
2039
|
const { error, value } = validation.validate(id);
|
|
2029
2040
|
if (error) {
|
|
2030
2041
|
import_node_server_utils9.logger.log({ level: "error", message: error.message });
|
|
@@ -2047,9 +2058,9 @@ function useAreaController() {
|
|
|
2047
2058
|
return;
|
|
2048
2059
|
}
|
|
2049
2060
|
const query = { ...req.query, ...req.params };
|
|
2050
|
-
const validation =
|
|
2051
|
-
site:
|
|
2052
|
-
serviceType:
|
|
2061
|
+
const validation = import_joi5.default.object({
|
|
2062
|
+
site: import_joi5.default.string().hex().required(),
|
|
2063
|
+
serviceType: import_joi5.default.string().valid(...Object.values(import_core4.AppServiceType)).required()
|
|
2053
2064
|
});
|
|
2054
2065
|
const { error, value } = validation.validate(query);
|
|
2055
2066
|
if (error) {
|
|
@@ -2070,9 +2081,9 @@ function useAreaController() {
|
|
|
2070
2081
|
}
|
|
2071
2082
|
async function exportAreas(req, res, next) {
|
|
2072
2083
|
const query = { ...req.query, ...req.params };
|
|
2073
|
-
const validation =
|
|
2074
|
-
site:
|
|
2075
|
-
serviceType:
|
|
2084
|
+
const validation = import_joi5.default.object({
|
|
2085
|
+
site: import_joi5.default.string().hex().required(),
|
|
2086
|
+
serviceType: import_joi5.default.string().valid(...Object.values(import_core4.AppServiceType)).required()
|
|
2076
2087
|
});
|
|
2077
2088
|
const { error, value } = validation.validate(query);
|
|
2078
2089
|
if (error) {
|
|
@@ -2354,7 +2365,7 @@ function useUnitService() {
|
|
|
2354
2365
|
}
|
|
2355
2366
|
|
|
2356
2367
|
// src/controllers/hygiene-unit.controller.ts
|
|
2357
|
-
var
|
|
2368
|
+
var import_joi6 = __toESM(require("joi"));
|
|
2358
2369
|
var import_node_server_utils12 = require("@7365admin1/node-server-utils");
|
|
2359
2370
|
var import_core5 = require("@7365admin1/core");
|
|
2360
2371
|
function useUnitController() {
|
|
@@ -2385,12 +2396,12 @@ function useUnitController() {
|
|
|
2385
2396
|
}
|
|
2386
2397
|
async function getUnits(req, res, next) {
|
|
2387
2398
|
const query = { ...req.query, ...req.params };
|
|
2388
|
-
const validation =
|
|
2389
|
-
page:
|
|
2390
|
-
limit:
|
|
2391
|
-
search:
|
|
2392
|
-
site:
|
|
2393
|
-
serviceType:
|
|
2399
|
+
const validation = import_joi6.default.object({
|
|
2400
|
+
page: import_joi6.default.number().min(1).optional().allow("", null),
|
|
2401
|
+
limit: import_joi6.default.number().min(1).optional().allow("", null),
|
|
2402
|
+
search: import_joi6.default.string().optional().allow("", null),
|
|
2403
|
+
site: import_joi6.default.string().hex().required(),
|
|
2404
|
+
serviceType: import_joi6.default.string().valid(...Object.values(import_core5.AppServiceType)).required()
|
|
2394
2405
|
});
|
|
2395
2406
|
const { error } = validation.validate(query);
|
|
2396
2407
|
if (error) {
|
|
@@ -2421,9 +2432,9 @@ function useUnitController() {
|
|
|
2421
2432
|
}
|
|
2422
2433
|
async function updateUnit(req, res, next) {
|
|
2423
2434
|
const payload = { id: req.params.id, ...req.body };
|
|
2424
|
-
const validation =
|
|
2425
|
-
id:
|
|
2426
|
-
name:
|
|
2435
|
+
const validation = import_joi6.default.object({
|
|
2436
|
+
id: import_joi6.default.string().hex().required(),
|
|
2437
|
+
name: import_joi6.default.string().required()
|
|
2427
2438
|
});
|
|
2428
2439
|
const { error } = validation.validate(payload);
|
|
2429
2440
|
if (error) {
|
|
@@ -2444,8 +2455,8 @@ function useUnitController() {
|
|
|
2444
2455
|
}
|
|
2445
2456
|
async function deleteUnit(req, res, next) {
|
|
2446
2457
|
const id = req.params.id;
|
|
2447
|
-
const validation =
|
|
2448
|
-
id:
|
|
2458
|
+
const validation = import_joi6.default.object({
|
|
2459
|
+
id: import_joi6.default.string().hex().required()
|
|
2449
2460
|
});
|
|
2450
2461
|
const { error, value } = validation.validate({ id });
|
|
2451
2462
|
if (error) {
|
|
@@ -2469,9 +2480,9 @@ function useUnitController() {
|
|
|
2469
2480
|
return;
|
|
2470
2481
|
}
|
|
2471
2482
|
const query = { ...req.query, ...req.params };
|
|
2472
|
-
const validation =
|
|
2473
|
-
site:
|
|
2474
|
-
serviceType:
|
|
2483
|
+
const validation = import_joi6.default.object({
|
|
2484
|
+
site: import_joi6.default.string().hex().required(),
|
|
2485
|
+
serviceType: import_joi6.default.string().valid(...Object.values(import_core5.AppServiceType)).required()
|
|
2475
2486
|
});
|
|
2476
2487
|
const { error, value } = validation.validate(query);
|
|
2477
2488
|
if (error) {
|
|
@@ -2492,9 +2503,9 @@ function useUnitController() {
|
|
|
2492
2503
|
}
|
|
2493
2504
|
async function exportUnits(req, res, next) {
|
|
2494
2505
|
const query = { ...req.query, ...req.params };
|
|
2495
|
-
const validation =
|
|
2496
|
-
site:
|
|
2497
|
-
serviceType:
|
|
2506
|
+
const validation = import_joi6.default.object({
|
|
2507
|
+
site: import_joi6.default.string().hex().required(),
|
|
2508
|
+
serviceType: import_joi6.default.string().valid(...Object.values(import_core5.AppServiceType)).required()
|
|
2498
2509
|
});
|
|
2499
2510
|
const { error, value } = validation.validate(query);
|
|
2500
2511
|
if (error) {
|
|
@@ -2537,15 +2548,15 @@ function useUnitController() {
|
|
|
2537
2548
|
}
|
|
2538
2549
|
|
|
2539
2550
|
// src/models/hygiene-parent-checklist.model.ts
|
|
2540
|
-
var
|
|
2551
|
+
var import_joi7 = __toESM(require("joi"));
|
|
2541
2552
|
var import_mongodb6 = require("mongodb");
|
|
2542
2553
|
var import_node_server_utils13 = require("@7365admin1/node-server-utils");
|
|
2543
2554
|
var import_core6 = require("@7365admin1/core");
|
|
2544
|
-
var parentChecklistSchema =
|
|
2545
|
-
createdAt:
|
|
2546
|
-
site:
|
|
2547
|
-
serviceType:
|
|
2548
|
-
dateStr:
|
|
2555
|
+
var parentChecklistSchema = import_joi7.default.object({
|
|
2556
|
+
createdAt: import_joi7.default.alternatives().try(import_joi7.default.date(), import_joi7.default.string()).optional().allow("", null),
|
|
2557
|
+
site: import_joi7.default.string().hex().required(),
|
|
2558
|
+
serviceType: import_joi7.default.string().valid(...Object.values(import_core6.AppServiceType)).required(),
|
|
2559
|
+
dateStr: import_joi7.default.string().optional().allow("", null)
|
|
2549
2560
|
});
|
|
2550
2561
|
function MParentChecklist(value) {
|
|
2551
2562
|
const { error } = parentChecklistSchema.validate(value);
|
|
@@ -3118,7 +3129,7 @@ function useParentChecklistRepo() {
|
|
|
3118
3129
|
}
|
|
3119
3130
|
|
|
3120
3131
|
// src/controllers/hygiene-parent-checklist.controller.ts
|
|
3121
|
-
var
|
|
3132
|
+
var import_joi8 = __toESM(require("joi"));
|
|
3122
3133
|
var import_node_server_utils15 = require("@7365admin1/node-server-utils");
|
|
3123
3134
|
var import_core8 = require("@7365admin1/core");
|
|
3124
3135
|
function useParentChecklistController() {
|
|
@@ -3128,10 +3139,10 @@ function useParentChecklistController() {
|
|
|
3128
3139
|
} = useParentChecklistRepo();
|
|
3129
3140
|
async function createParentChecklist(req, res, next) {
|
|
3130
3141
|
const payload = req.body;
|
|
3131
|
-
const validation =
|
|
3132
|
-
createdAt:
|
|
3133
|
-
site:
|
|
3134
|
-
serviceType:
|
|
3142
|
+
const validation = import_joi8.default.object({
|
|
3143
|
+
createdAt: import_joi8.default.alternatives().try(import_joi8.default.date(), import_joi8.default.string()).optional().allow("", null),
|
|
3144
|
+
site: import_joi8.default.string().hex().required(),
|
|
3145
|
+
serviceType: import_joi8.default.string().valid(...Object.values(import_core8.AppServiceType)).optional().allow("", null)
|
|
3135
3146
|
});
|
|
3136
3147
|
const { error } = validation.validate(payload);
|
|
3137
3148
|
if (error) {
|
|
@@ -3151,15 +3162,15 @@ function useParentChecklistController() {
|
|
|
3151
3162
|
}
|
|
3152
3163
|
async function getAllParentChecklist(req, res, next) {
|
|
3153
3164
|
const query = { ...req.query, ...req.params };
|
|
3154
|
-
const validation =
|
|
3155
|
-
page:
|
|
3156
|
-
limit:
|
|
3157
|
-
search:
|
|
3158
|
-
site:
|
|
3159
|
-
serviceType:
|
|
3160
|
-
startDate:
|
|
3161
|
-
endDate:
|
|
3162
|
-
status:
|
|
3165
|
+
const validation = import_joi8.default.object({
|
|
3166
|
+
page: import_joi8.default.number().min(1).optional().allow("", null),
|
|
3167
|
+
limit: import_joi8.default.number().min(1).optional().allow("", null),
|
|
3168
|
+
search: import_joi8.default.string().optional().allow("", null),
|
|
3169
|
+
site: import_joi8.default.string().hex().required(),
|
|
3170
|
+
serviceType: import_joi8.default.string().valid(...Object.values(import_core8.AppServiceType)).required(),
|
|
3171
|
+
startDate: import_joi8.default.alternatives().try(import_joi8.default.date(), import_joi8.default.string()).optional().allow("", null),
|
|
3172
|
+
endDate: import_joi8.default.alternatives().try(import_joi8.default.date(), import_joi8.default.string()).optional().allow("", null),
|
|
3173
|
+
status: import_joi8.default.string().valid(...allowedStatus, "all").optional().allow("", null)
|
|
3163
3174
|
});
|
|
3164
3175
|
const { error } = validation.validate(query);
|
|
3165
3176
|
if (error) {
|
|
@@ -3201,28 +3212,28 @@ function useParentChecklistController() {
|
|
|
3201
3212
|
}
|
|
3202
3213
|
|
|
3203
3214
|
// src/models/hygiene-area-checklist.model.ts
|
|
3204
|
-
var
|
|
3215
|
+
var import_joi9 = __toESM(require("joi"));
|
|
3205
3216
|
var import_mongodb8 = require("mongodb");
|
|
3206
3217
|
var import_node_server_utils16 = require("@7365admin1/node-server-utils");
|
|
3207
3218
|
var import_core9 = require("@7365admin1/core");
|
|
3208
3219
|
var allowedChecklistStatus = ["open", "completed", "closed"];
|
|
3209
|
-
var areaChecklistSchema =
|
|
3210
|
-
schedule:
|
|
3211
|
-
serviceType:
|
|
3212
|
-
area:
|
|
3213
|
-
name:
|
|
3214
|
-
type:
|
|
3215
|
-
checklist:
|
|
3216
|
-
|
|
3217
|
-
set:
|
|
3218
|
-
units:
|
|
3219
|
-
|
|
3220
|
-
unit:
|
|
3221
|
-
name:
|
|
3220
|
+
var areaChecklistSchema = import_joi9.default.object({
|
|
3221
|
+
schedule: import_joi9.default.string().hex().required(),
|
|
3222
|
+
serviceType: import_joi9.default.string().valid(...Object.values(import_core9.AppServiceType)).required(),
|
|
3223
|
+
area: import_joi9.default.string().hex().required(),
|
|
3224
|
+
name: import_joi9.default.string().required(),
|
|
3225
|
+
type: import_joi9.default.string().valid(...allowedTypes).required(),
|
|
3226
|
+
checklist: import_joi9.default.array().items(
|
|
3227
|
+
import_joi9.default.object({
|
|
3228
|
+
set: import_joi9.default.number().min(0).required(),
|
|
3229
|
+
units: import_joi9.default.array().items(
|
|
3230
|
+
import_joi9.default.object({
|
|
3231
|
+
unit: import_joi9.default.string().hex().required(),
|
|
3232
|
+
name: import_joi9.default.string().required()
|
|
3222
3233
|
}).required()
|
|
3223
3234
|
).min(1).required(),
|
|
3224
|
-
isScheduleTask:
|
|
3225
|
-
scheduleTaskId:
|
|
3235
|
+
isScheduleTask: import_joi9.default.boolean().optional().default(false),
|
|
3236
|
+
scheduleTaskId: import_joi9.default.string().hex().optional().allow(null)
|
|
3226
3237
|
}).required()
|
|
3227
3238
|
).optional().default([])
|
|
3228
3239
|
});
|
|
@@ -4699,7 +4710,7 @@ function useAreaChecklistService() {
|
|
|
4699
4710
|
}
|
|
4700
4711
|
|
|
4701
4712
|
// src/controllers/hygiene-area-checklist.controller.ts
|
|
4702
|
-
var
|
|
4713
|
+
var import_joi10 = __toESM(require("joi"));
|
|
4703
4714
|
var import_node_server_utils20 = require("@7365admin1/node-server-utils");
|
|
4704
4715
|
var import_core11 = require("@7365admin1/core");
|
|
4705
4716
|
|
|
@@ -4940,9 +4951,9 @@ function useAreaChecklistController() {
|
|
|
4940
4951
|
site: req.params.site,
|
|
4941
4952
|
schedule: req.params.schedule
|
|
4942
4953
|
};
|
|
4943
|
-
const validation =
|
|
4944
|
-
site:
|
|
4945
|
-
schedule:
|
|
4954
|
+
const validation = import_joi10.default.object({
|
|
4955
|
+
site: import_joi10.default.string().hex().required(),
|
|
4956
|
+
schedule: import_joi10.default.string().hex().required()
|
|
4946
4957
|
});
|
|
4947
4958
|
const { error, value } = validation.validate(payload);
|
|
4948
4959
|
if (error) {
|
|
@@ -4962,14 +4973,14 @@ function useAreaChecklistController() {
|
|
|
4962
4973
|
}
|
|
4963
4974
|
async function getAllAreaChecklist(req, res, next) {
|
|
4964
4975
|
const query = { ...req.query, ...req.params };
|
|
4965
|
-
const validation =
|
|
4966
|
-
page:
|
|
4967
|
-
limit:
|
|
4968
|
-
search:
|
|
4969
|
-
type:
|
|
4970
|
-
status:
|
|
4971
|
-
schedule:
|
|
4972
|
-
serviceType:
|
|
4976
|
+
const validation = import_joi10.default.object({
|
|
4977
|
+
page: import_joi10.default.number().min(1).optional().allow("", null),
|
|
4978
|
+
limit: import_joi10.default.number().min(1).optional().allow("", null),
|
|
4979
|
+
search: import_joi10.default.string().optional().allow("", null),
|
|
4980
|
+
type: import_joi10.default.string().valid(...allowedTypes, "all").optional().allow("", null),
|
|
4981
|
+
status: import_joi10.default.string().valid(...allowedStatus, "all").optional().allow("", null),
|
|
4982
|
+
schedule: import_joi10.default.string().hex().required(),
|
|
4983
|
+
serviceType: import_joi10.default.string().valid(...Object.values(import_core11.AppServiceType)).required()
|
|
4973
4984
|
});
|
|
4974
4985
|
const { error } = validation.validate(query);
|
|
4975
4986
|
if (error) {
|
|
@@ -5004,14 +5015,14 @@ function useAreaChecklistController() {
|
|
|
5004
5015
|
}
|
|
5005
5016
|
async function getAreaChecklistHistory(req, res, next) {
|
|
5006
5017
|
const query = { ...req.query, ...req.params };
|
|
5007
|
-
const validation =
|
|
5008
|
-
page:
|
|
5009
|
-
limit:
|
|
5010
|
-
search:
|
|
5011
|
-
type:
|
|
5012
|
-
schedule:
|
|
5013
|
-
status:
|
|
5014
|
-
createdAt:
|
|
5018
|
+
const validation = import_joi10.default.object({
|
|
5019
|
+
page: import_joi10.default.number().min(1).optional().allow("", null),
|
|
5020
|
+
limit: import_joi10.default.number().min(1).optional().allow("", null),
|
|
5021
|
+
search: import_joi10.default.string().optional().allow("", null),
|
|
5022
|
+
type: import_joi10.default.string().optional().allow("", ...allowedTypes),
|
|
5023
|
+
schedule: import_joi10.default.string().hex().required(),
|
|
5024
|
+
status: import_joi10.default.string().allow("", null, ...allowedStatus),
|
|
5025
|
+
createdAt: import_joi10.default.alternatives().try(import_joi10.default.date(), import_joi10.default.string()).optional().allow("", null)
|
|
5015
5026
|
});
|
|
5016
5027
|
const { error } = validation.validate(query);
|
|
5017
5028
|
if (error) {
|
|
@@ -5045,7 +5056,7 @@ function useAreaChecklistController() {
|
|
|
5045
5056
|
}
|
|
5046
5057
|
}
|
|
5047
5058
|
async function getAreaChecklistHistoryDetails(req, res, next) {
|
|
5048
|
-
const validation =
|
|
5059
|
+
const validation = import_joi10.default.string().hex().required();
|
|
5049
5060
|
const _id = req.params.id;
|
|
5050
5061
|
const { error, value } = validation.validate(_id);
|
|
5051
5062
|
if (error) {
|
|
@@ -5065,12 +5076,12 @@ function useAreaChecklistController() {
|
|
|
5065
5076
|
}
|
|
5066
5077
|
async function getAreaChecklistUnits(req, res, next) {
|
|
5067
5078
|
const query = { ...req.query, ...req.params };
|
|
5068
|
-
const validation =
|
|
5069
|
-
page:
|
|
5070
|
-
limit:
|
|
5071
|
-
search:
|
|
5072
|
-
serviceType:
|
|
5073
|
-
id:
|
|
5079
|
+
const validation = import_joi10.default.object({
|
|
5080
|
+
page: import_joi10.default.number().min(1).optional().allow("", null),
|
|
5081
|
+
limit: import_joi10.default.number().min(1).optional().allow("", null),
|
|
5082
|
+
search: import_joi10.default.string().optional().allow("", null),
|
|
5083
|
+
serviceType: import_joi10.default.string().valid(...Object.values(import_core11.AppServiceType)).required(),
|
|
5084
|
+
id: import_joi10.default.string().hex().required()
|
|
5074
5085
|
});
|
|
5075
5086
|
const { error } = validation.validate(query);
|
|
5076
5087
|
if (error) {
|
|
@@ -5120,21 +5131,21 @@ function useAreaChecklistController() {
|
|
|
5120
5131
|
...decisionValues,
|
|
5121
5132
|
completedBy
|
|
5122
5133
|
};
|
|
5123
|
-
const validation =
|
|
5124
|
-
id:
|
|
5125
|
-
set:
|
|
5126
|
-
unit:
|
|
5127
|
-
decision:
|
|
5128
|
-
approve:
|
|
5129
|
-
reject:
|
|
5130
|
-
remarks:
|
|
5134
|
+
const validation = import_joi10.default.object({
|
|
5135
|
+
id: import_joi10.default.string().hex().required(),
|
|
5136
|
+
set: import_joi10.default.number().integer().min(1).required(),
|
|
5137
|
+
unit: import_joi10.default.string().hex().required(),
|
|
5138
|
+
decision: import_joi10.default.string().valid("approve", "reject").required(),
|
|
5139
|
+
approve: import_joi10.default.boolean().optional(),
|
|
5140
|
+
reject: import_joi10.default.boolean().optional(),
|
|
5141
|
+
remarks: import_joi10.default.string().optional().allow("", null),
|
|
5131
5142
|
/*
|
|
5132
5143
|
* Shape only. WHETHER a photo is required depends on the set's current
|
|
5133
5144
|
* state in the database, which Joi cannot see — see the check below.
|
|
5134
5145
|
* Each entry must still be a real id: a blank string carries no evidence.
|
|
5135
5146
|
*/
|
|
5136
|
-
attachment:
|
|
5137
|
-
completedBy:
|
|
5147
|
+
attachment: import_joi10.default.array().items(import_joi10.default.string().trim().min(1)).optional(),
|
|
5148
|
+
completedBy: import_joi10.default.string().hex().required()
|
|
5138
5149
|
});
|
|
5139
5150
|
const { error } = validation.validate(payload);
|
|
5140
5151
|
if (error) {
|
|
@@ -5171,7 +5182,7 @@ function useAreaChecklistController() {
|
|
|
5171
5182
|
}
|
|
5172
5183
|
}
|
|
5173
5184
|
async function downloadChecklistPdf(req, res, next) {
|
|
5174
|
-
const validation =
|
|
5185
|
+
const validation = import_joi10.default.string().hex().required();
|
|
5175
5186
|
const schedule = req.params.schedule;
|
|
5176
5187
|
const { error, value } = validation.validate(schedule);
|
|
5177
5188
|
if (error) {
|
|
@@ -5217,16 +5228,16 @@ function useAreaChecklistController() {
|
|
|
5217
5228
|
}
|
|
5218
5229
|
|
|
5219
5230
|
// src/models/hygiene-supply.model.ts
|
|
5220
|
-
var
|
|
5231
|
+
var import_joi11 = __toESM(require("joi"));
|
|
5221
5232
|
var import_mongodb12 = require("mongodb");
|
|
5222
5233
|
var import_node_server_utils21 = require("@7365admin1/node-server-utils");
|
|
5223
5234
|
var import_core12 = require("@7365admin1/core");
|
|
5224
|
-
var supplySchema =
|
|
5225
|
-
site:
|
|
5226
|
-
serviceType:
|
|
5227
|
-
name:
|
|
5228
|
-
unitOfMeasurement:
|
|
5229
|
-
attachment:
|
|
5235
|
+
var supplySchema = import_joi11.default.object({
|
|
5236
|
+
site: import_joi11.default.string().hex().required(),
|
|
5237
|
+
serviceType: import_joi11.default.string().valid(...Object.values(import_core12.AppServiceType)).required(),
|
|
5238
|
+
name: import_joi11.default.string().required(),
|
|
5239
|
+
unitOfMeasurement: import_joi11.default.string().required(),
|
|
5240
|
+
attachment: import_joi11.default.string().allow(null, "").optional()
|
|
5230
5241
|
});
|
|
5231
5242
|
function MSupply(value) {
|
|
5232
5243
|
const { error } = supplySchema.validate(value);
|
|
@@ -5354,7 +5365,7 @@ function useSupplyRepository() {
|
|
|
5354
5365
|
throw new import_node_server_utils22.BadRequestError("Invalid site ID format.");
|
|
5355
5366
|
}
|
|
5356
5367
|
if (search) {
|
|
5357
|
-
query.name = { $regex: search, $options: "i" };
|
|
5368
|
+
query.name = { $regex: escapeRegex(search), $options: "i" };
|
|
5358
5369
|
cacheOptions.search = search;
|
|
5359
5370
|
}
|
|
5360
5371
|
const cacheKey = (0, import_node_server_utils22.makeCacheKey)(namespace_collection, cacheOptions);
|
|
@@ -5516,7 +5527,7 @@ function useSupplyRepository() {
|
|
|
5516
5527
|
}
|
|
5517
5528
|
|
|
5518
5529
|
// src/controllers/hygiene-supply.controller.ts
|
|
5519
|
-
var
|
|
5530
|
+
var import_joi12 = __toESM(require("joi"));
|
|
5520
5531
|
var import_node_server_utils23 = require("@7365admin1/node-server-utils");
|
|
5521
5532
|
var import_core13 = require("@7365admin1/core");
|
|
5522
5533
|
function useSupplyController() {
|
|
@@ -5547,12 +5558,12 @@ function useSupplyController() {
|
|
|
5547
5558
|
}
|
|
5548
5559
|
async function getSupplies(req, res, next) {
|
|
5549
5560
|
const query = { ...req.query, ...req.params };
|
|
5550
|
-
const validation =
|
|
5551
|
-
page:
|
|
5552
|
-
limit:
|
|
5553
|
-
search:
|
|
5554
|
-
site:
|
|
5555
|
-
serviceType:
|
|
5561
|
+
const validation = import_joi12.default.object({
|
|
5562
|
+
page: import_joi12.default.number().min(1).optional().allow("", null),
|
|
5563
|
+
limit: import_joi12.default.number().min(1).optional().allow("", null),
|
|
5564
|
+
search: import_joi12.default.string().optional().allow("", null),
|
|
5565
|
+
site: import_joi12.default.string().hex().required(),
|
|
5566
|
+
serviceType: import_joi12.default.string().valid(...Object.values(import_core13.AppServiceType)).required()
|
|
5556
5567
|
});
|
|
5557
5568
|
const { error } = validation.validate(query);
|
|
5558
5569
|
if (error) {
|
|
@@ -5582,7 +5593,7 @@ function useSupplyController() {
|
|
|
5582
5593
|
}
|
|
5583
5594
|
}
|
|
5584
5595
|
async function getSupplyById(req, res, next) {
|
|
5585
|
-
const validation =
|
|
5596
|
+
const validation = import_joi12.default.string().hex().required();
|
|
5586
5597
|
const _id = req.params.id;
|
|
5587
5598
|
const { error, value } = validation.validate(_id);
|
|
5588
5599
|
if (error) {
|
|
@@ -5602,12 +5613,12 @@ function useSupplyController() {
|
|
|
5602
5613
|
}
|
|
5603
5614
|
async function updateSupply(req, res, next) {
|
|
5604
5615
|
const payload = { id: req.params.id, ...req.body };
|
|
5605
|
-
const validation =
|
|
5606
|
-
id:
|
|
5607
|
-
name:
|
|
5608
|
-
unitOfMeasurement:
|
|
5609
|
-
qty:
|
|
5610
|
-
attachment:
|
|
5616
|
+
const validation = import_joi12.default.object({
|
|
5617
|
+
id: import_joi12.default.string().hex().required(),
|
|
5618
|
+
name: import_joi12.default.string().optional().allow("", null),
|
|
5619
|
+
unitOfMeasurement: import_joi12.default.string().optional().allow("", null),
|
|
5620
|
+
qty: import_joi12.default.number().min(0).optional().allow("", null),
|
|
5621
|
+
attachment: import_joi12.default.string().optional().allow("", null)
|
|
5611
5622
|
});
|
|
5612
5623
|
const { error } = validation.validate(payload);
|
|
5613
5624
|
if (error) {
|
|
@@ -5628,7 +5639,7 @@ function useSupplyController() {
|
|
|
5628
5639
|
}
|
|
5629
5640
|
async function deleteSupply(req, res, next) {
|
|
5630
5641
|
const id = req.params.id;
|
|
5631
|
-
const validation =
|
|
5642
|
+
const validation = import_joi12.default.string().hex().required();
|
|
5632
5643
|
const { error, value } = validation.validate(id);
|
|
5633
5644
|
if (error) {
|
|
5634
5645
|
import_node_server_utils23.logger.log({ level: "error", message: error.message });
|
|
@@ -5655,18 +5666,18 @@ function useSupplyController() {
|
|
|
5655
5666
|
}
|
|
5656
5667
|
|
|
5657
5668
|
// src/models/hygiene-stock.model.ts
|
|
5658
|
-
var
|
|
5669
|
+
var import_joi13 = __toESM(require("joi"));
|
|
5659
5670
|
var import_mongodb14 = require("mongodb");
|
|
5660
5671
|
var import_node_server_utils24 = require("@7365admin1/node-server-utils");
|
|
5661
5672
|
var import_core14 = require("@7365admin1/core");
|
|
5662
|
-
var stockSchema =
|
|
5663
|
-
site:
|
|
5664
|
-
serviceType:
|
|
5665
|
-
supply:
|
|
5666
|
-
in:
|
|
5667
|
-
out:
|
|
5668
|
-
balance:
|
|
5669
|
-
remarks:
|
|
5673
|
+
var stockSchema = import_joi13.default.object({
|
|
5674
|
+
site: import_joi13.default.string().hex().required(),
|
|
5675
|
+
serviceType: import_joi13.default.string().valid(...Object.values(import_core14.AppServiceType)).required(),
|
|
5676
|
+
supply: import_joi13.default.string().hex().required(),
|
|
5677
|
+
in: import_joi13.default.number().min(0).optional(),
|
|
5678
|
+
out: import_joi13.default.number().min(0).optional(),
|
|
5679
|
+
balance: import_joi13.default.number().min(0).required(),
|
|
5680
|
+
remarks: import_joi13.default.string().optional().allow("", null)
|
|
5670
5681
|
});
|
|
5671
5682
|
function MStock(value) {
|
|
5672
5683
|
const { error } = stockSchema.validate(value);
|
|
@@ -5881,7 +5892,7 @@ function useStockService() {
|
|
|
5881
5892
|
}
|
|
5882
5893
|
|
|
5883
5894
|
// src/controllers/hygiene-stock.controller.ts
|
|
5884
|
-
var
|
|
5895
|
+
var import_joi14 = __toESM(require("joi"));
|
|
5885
5896
|
var import_node_server_utils27 = require("@7365admin1/node-server-utils");
|
|
5886
5897
|
var import_core15 = require("@7365admin1/core");
|
|
5887
5898
|
function useStockController() {
|
|
@@ -5889,12 +5900,12 @@ function useStockController() {
|
|
|
5889
5900
|
const { createStock: _createStock } = useStockService();
|
|
5890
5901
|
async function createStock(req, res, next) {
|
|
5891
5902
|
const payload = { ...req.body, ...req.params };
|
|
5892
|
-
const validation =
|
|
5893
|
-
site:
|
|
5894
|
-
serviceType:
|
|
5895
|
-
supply:
|
|
5896
|
-
qty:
|
|
5897
|
-
remarks:
|
|
5903
|
+
const validation = import_joi14.default.object({
|
|
5904
|
+
site: import_joi14.default.string().hex().required(),
|
|
5905
|
+
serviceType: import_joi14.default.string().valid(...Object.values(import_core15.AppServiceType)).required(),
|
|
5906
|
+
supply: import_joi14.default.string().hex().required(),
|
|
5907
|
+
qty: import_joi14.default.number().min(0).required(),
|
|
5908
|
+
remarks: import_joi14.default.string().optional().allow("", null)
|
|
5898
5909
|
});
|
|
5899
5910
|
const { error } = validation.validate(payload);
|
|
5900
5911
|
if (error) {
|
|
@@ -5914,13 +5925,13 @@ function useStockController() {
|
|
|
5914
5925
|
}
|
|
5915
5926
|
async function getStocksBySupplyId(req, res, next) {
|
|
5916
5927
|
const query = { ...req.query, ...req.params };
|
|
5917
|
-
const validation =
|
|
5918
|
-
page:
|
|
5919
|
-
limit:
|
|
5920
|
-
search:
|
|
5921
|
-
site:
|
|
5922
|
-
serviceType:
|
|
5923
|
-
supply:
|
|
5928
|
+
const validation = import_joi14.default.object({
|
|
5929
|
+
page: import_joi14.default.number().min(1).optional().allow("", null),
|
|
5930
|
+
limit: import_joi14.default.number().min(1).optional().allow("", null),
|
|
5931
|
+
search: import_joi14.default.string().optional().allow("", null),
|
|
5932
|
+
site: import_joi14.default.string().hex().required(),
|
|
5933
|
+
serviceType: import_joi14.default.string().valid(...Object.values(import_core15.AppServiceType)).required(),
|
|
5934
|
+
supply: import_joi14.default.string().hex().required()
|
|
5924
5935
|
});
|
|
5925
5936
|
const { error } = validation.validate(query);
|
|
5926
5937
|
if (error) {
|
|
@@ -5982,21 +5993,21 @@ async function applyCheckOutDecision(decision, decide, returnStock) {
|
|
|
5982
5993
|
}
|
|
5983
5994
|
|
|
5984
5995
|
// src/models/hygiene-checkout-item.model.ts
|
|
5985
|
-
var
|
|
5996
|
+
var import_joi15 = __toESM(require("joi"));
|
|
5986
5997
|
var import_mongodb16 = require("mongodb");
|
|
5987
5998
|
var import_node_server_utils28 = require("@7365admin1/node-server-utils");
|
|
5988
5999
|
var import_core16 = require("@7365admin1/core");
|
|
5989
6000
|
var allowedCheckOutItemStatus = ["pending", "completed"];
|
|
5990
|
-
var checkOutItemSchema =
|
|
5991
|
-
site:
|
|
5992
|
-
serviceType:
|
|
5993
|
-
supply:
|
|
5994
|
-
supplyName:
|
|
5995
|
-
supplyQty:
|
|
5996
|
-
qty:
|
|
5997
|
-
attachment:
|
|
5998
|
-
createdBy:
|
|
5999
|
-
createdByName:
|
|
6001
|
+
var checkOutItemSchema = import_joi15.default.object({
|
|
6002
|
+
site: import_joi15.default.string().hex().required(),
|
|
6003
|
+
serviceType: import_joi15.default.string().valid(...Object.values(import_core16.AppServiceType)).required(),
|
|
6004
|
+
supply: import_joi15.default.string().hex().required(),
|
|
6005
|
+
supplyName: import_joi15.default.string().required(),
|
|
6006
|
+
supplyQty: import_joi15.default.number().min(0).required(),
|
|
6007
|
+
qty: import_joi15.default.number().min(0).required(),
|
|
6008
|
+
attachment: import_joi15.default.array().items(import_joi15.default.string()).optional().allow(null),
|
|
6009
|
+
createdBy: import_joi15.default.string().hex().required(),
|
|
6010
|
+
createdByName: import_joi15.default.string().required()
|
|
6000
6011
|
});
|
|
6001
6012
|
function MCheckOutItem(value) {
|
|
6002
6013
|
const { error } = checkOutItemSchema.validate(value);
|
|
@@ -6120,7 +6131,7 @@ function useCheckOutItemRepository() {
|
|
|
6120
6131
|
throw new import_node_server_utils29.BadRequestError("Invalid site ID format.");
|
|
6121
6132
|
}
|
|
6122
6133
|
if (search) {
|
|
6123
|
-
query.supplyName = { $regex: search, $options: "i" };
|
|
6134
|
+
query.supplyName = { $regex: escapeRegex(search), $options: "i" };
|
|
6124
6135
|
cacheOptions.search = search;
|
|
6125
6136
|
}
|
|
6126
6137
|
const cacheKey = (0, import_node_server_utils29.makeCacheKey)(namespace_collection, cacheOptions);
|
|
@@ -6476,7 +6487,7 @@ function useCheckOutItemService() {
|
|
|
6476
6487
|
}
|
|
6477
6488
|
|
|
6478
6489
|
// src/controllers/hygiene-checkout-item.controller.ts
|
|
6479
|
-
var
|
|
6490
|
+
var import_joi16 = __toESM(require("joi"));
|
|
6480
6491
|
var import_node_server_utils31 = require("@7365admin1/node-server-utils");
|
|
6481
6492
|
var import_core18 = require("@7365admin1/core");
|
|
6482
6493
|
function useCheckOutItemController() {
|
|
@@ -6500,13 +6511,13 @@ function useCheckOutItemController() {
|
|
|
6500
6511
|
...req.params,
|
|
6501
6512
|
createdBy
|
|
6502
6513
|
};
|
|
6503
|
-
const validation =
|
|
6504
|
-
site:
|
|
6505
|
-
serviceType:
|
|
6506
|
-
supply:
|
|
6507
|
-
qty:
|
|
6508
|
-
attachment:
|
|
6509
|
-
createdBy:
|
|
6514
|
+
const validation = import_joi16.default.object({
|
|
6515
|
+
site: import_joi16.default.string().hex().required(),
|
|
6516
|
+
serviceType: import_joi16.default.string().valid(...Object.values(import_core18.AppServiceType)).required(),
|
|
6517
|
+
supply: import_joi16.default.string().hex().required(),
|
|
6518
|
+
qty: import_joi16.default.number().min(0).required(),
|
|
6519
|
+
attachment: import_joi16.default.array().items(import_joi16.default.string()).optional().allow(null),
|
|
6520
|
+
createdBy: import_joi16.default.string().hex().required()
|
|
6510
6521
|
});
|
|
6511
6522
|
const { error } = validation.validate(payload);
|
|
6512
6523
|
if (error) {
|
|
@@ -6535,15 +6546,15 @@ function useCheckOutItemController() {
|
|
|
6535
6546
|
...req.params,
|
|
6536
6547
|
createdBy
|
|
6537
6548
|
};
|
|
6538
|
-
const validation =
|
|
6539
|
-
site:
|
|
6540
|
-
serviceType:
|
|
6541
|
-
createdBy:
|
|
6542
|
-
items:
|
|
6543
|
-
|
|
6544
|
-
supply:
|
|
6545
|
-
qty:
|
|
6546
|
-
attachment:
|
|
6549
|
+
const validation = import_joi16.default.object({
|
|
6550
|
+
site: import_joi16.default.string().hex().required(),
|
|
6551
|
+
serviceType: import_joi16.default.string().valid(...Object.values(import_core18.AppServiceType)).required(),
|
|
6552
|
+
createdBy: import_joi16.default.string().hex().required(),
|
|
6553
|
+
items: import_joi16.default.array().items(
|
|
6554
|
+
import_joi16.default.object({
|
|
6555
|
+
supply: import_joi16.default.string().hex().required(),
|
|
6556
|
+
qty: import_joi16.default.number().min(0).required(),
|
|
6557
|
+
attachment: import_joi16.default.array().items(import_joi16.default.string()).optional().allow(null)
|
|
6547
6558
|
})
|
|
6548
6559
|
).min(1).required()
|
|
6549
6560
|
});
|
|
@@ -6565,12 +6576,12 @@ function useCheckOutItemController() {
|
|
|
6565
6576
|
}
|
|
6566
6577
|
async function getCheckOutItems(req, res, next) {
|
|
6567
6578
|
const query = { ...req.query, ...req.params };
|
|
6568
|
-
const validation =
|
|
6569
|
-
page:
|
|
6570
|
-
limit:
|
|
6571
|
-
search:
|
|
6572
|
-
site:
|
|
6573
|
-
serviceType:
|
|
6579
|
+
const validation = import_joi16.default.object({
|
|
6580
|
+
page: import_joi16.default.number().min(1).optional().allow("", null),
|
|
6581
|
+
limit: import_joi16.default.number().min(1).optional().allow("", null),
|
|
6582
|
+
search: import_joi16.default.string().optional().allow("", null),
|
|
6583
|
+
site: import_joi16.default.string().hex().required(),
|
|
6584
|
+
serviceType: import_joi16.default.string().valid(...Object.values(import_core18.AppServiceType)).required()
|
|
6574
6585
|
});
|
|
6575
6586
|
const { error } = validation.validate(query);
|
|
6576
6587
|
if (error) {
|
|
@@ -6600,7 +6611,7 @@ function useCheckOutItemController() {
|
|
|
6600
6611
|
}
|
|
6601
6612
|
}
|
|
6602
6613
|
async function getCheckOutItemById(req, res, next) {
|
|
6603
|
-
const validation =
|
|
6614
|
+
const validation = import_joi16.default.string().hex().required();
|
|
6604
6615
|
const _id = req.params.id;
|
|
6605
6616
|
const { error, value } = validation.validate(_id);
|
|
6606
6617
|
if (error) {
|
|
@@ -6639,13 +6650,13 @@ function useCheckOutItemController() {
|
|
|
6639
6650
|
...decisionValues,
|
|
6640
6651
|
completedBy
|
|
6641
6652
|
};
|
|
6642
|
-
const validation =
|
|
6643
|
-
id:
|
|
6644
|
-
decision:
|
|
6645
|
-
approve:
|
|
6646
|
-
reject:
|
|
6647
|
-
remarks:
|
|
6648
|
-
completedBy:
|
|
6653
|
+
const validation = import_joi16.default.object({
|
|
6654
|
+
id: import_joi16.default.string().hex().required(),
|
|
6655
|
+
decision: import_joi16.default.string().valid("approve", "disapprove").required(),
|
|
6656
|
+
approve: import_joi16.default.boolean().required(),
|
|
6657
|
+
reject: import_joi16.default.boolean().required(),
|
|
6658
|
+
remarks: import_joi16.default.string().optional().allow("", null),
|
|
6659
|
+
completedBy: import_joi16.default.string().hex().required()
|
|
6649
6660
|
});
|
|
6650
6661
|
const { error } = validation.validate(payload);
|
|
6651
6662
|
if (error) {
|
|
@@ -6678,21 +6689,21 @@ function useCheckOutItemController() {
|
|
|
6678
6689
|
// src/models/hygiene-schedule-task.model.ts
|
|
6679
6690
|
var import_node_server_utils32 = require("@7365admin1/node-server-utils");
|
|
6680
6691
|
var import_core19 = require("@7365admin1/core");
|
|
6681
|
-
var
|
|
6692
|
+
var import_joi17 = __toESM(require("joi"));
|
|
6682
6693
|
var import_mongodb18 = require("mongodb");
|
|
6683
|
-
var scheduleTaskSchema =
|
|
6684
|
-
site:
|
|
6685
|
-
serviceType:
|
|
6686
|
-
title:
|
|
6687
|
-
time:
|
|
6688
|
-
dates:
|
|
6689
|
-
|
|
6694
|
+
var scheduleTaskSchema = import_joi17.default.object({
|
|
6695
|
+
site: import_joi17.default.string().hex().required(),
|
|
6696
|
+
serviceType: import_joi17.default.string().valid(...Object.values(import_core19.AppServiceType)).required(),
|
|
6697
|
+
title: import_joi17.default.string().required(),
|
|
6698
|
+
time: import_joi17.default.string().pattern(/^([0-1]\d|2[0-3]):([0-5]\d)$/).required(),
|
|
6699
|
+
dates: import_joi17.default.array().min(1).items(
|
|
6700
|
+
import_joi17.default.string().pattern(/^\d{4}-\d{2}-\d{2}$/).required()
|
|
6690
6701
|
).required(),
|
|
6691
|
-
description:
|
|
6692
|
-
areas:
|
|
6693
|
-
|
|
6694
|
-
name:
|
|
6695
|
-
value:
|
|
6702
|
+
description: import_joi17.default.string().optional().allow("", null),
|
|
6703
|
+
areas: import_joi17.default.array().min(1).items(
|
|
6704
|
+
import_joi17.default.object({
|
|
6705
|
+
name: import_joi17.default.string().required(),
|
|
6706
|
+
value: import_joi17.default.any().required()
|
|
6696
6707
|
})
|
|
6697
6708
|
).required()
|
|
6698
6709
|
});
|
|
@@ -6811,7 +6822,7 @@ function useScheduleTaskRepository() {
|
|
|
6811
6822
|
throw new import_node_server_utils33.BadRequestError("Invalid site ID format.");
|
|
6812
6823
|
}
|
|
6813
6824
|
if (search) {
|
|
6814
|
-
query.$or = [{ title: { $regex: search, $options: "i" } }];
|
|
6825
|
+
query.$or = [{ title: { $regex: escapeRegex(search), $options: "i" } }];
|
|
6815
6826
|
cacheOptions.search = search;
|
|
6816
6827
|
}
|
|
6817
6828
|
const cacheKey = (0, import_node_server_utils33.makeCacheKey)(namespace_collection, cacheOptions);
|
|
@@ -7287,7 +7298,7 @@ function useScheduleTaskService() {
|
|
|
7287
7298
|
}
|
|
7288
7299
|
|
|
7289
7300
|
// src/controllers/hygiene-schedule-task.controller.ts
|
|
7290
|
-
var
|
|
7301
|
+
var import_joi18 = __toESM(require("joi"));
|
|
7291
7302
|
var import_node_server_utils35 = require("@7365admin1/node-server-utils");
|
|
7292
7303
|
var import_core20 = require("@7365admin1/core");
|
|
7293
7304
|
function useScheduleTaskController() {
|
|
@@ -7318,12 +7329,12 @@ function useScheduleTaskController() {
|
|
|
7318
7329
|
}
|
|
7319
7330
|
async function getScheduleTasks(req, res, next) {
|
|
7320
7331
|
const query = { ...req.query, ...req.params };
|
|
7321
|
-
const validation =
|
|
7322
|
-
page:
|
|
7323
|
-
limit:
|
|
7324
|
-
search:
|
|
7325
|
-
site:
|
|
7326
|
-
serviceType:
|
|
7332
|
+
const validation = import_joi18.default.object({
|
|
7333
|
+
page: import_joi18.default.number().min(1).optional().allow("", null),
|
|
7334
|
+
limit: import_joi18.default.number().min(1).optional().allow("", null),
|
|
7335
|
+
search: import_joi18.default.string().optional().allow("", null),
|
|
7336
|
+
site: import_joi18.default.string().hex().required(),
|
|
7337
|
+
serviceType: import_joi18.default.string().valid(...Object.values(import_core20.AppServiceType)).required()
|
|
7327
7338
|
});
|
|
7328
7339
|
const { error } = validation.validate(query);
|
|
7329
7340
|
if (error) {
|
|
@@ -7353,7 +7364,7 @@ function useScheduleTaskController() {
|
|
|
7353
7364
|
}
|
|
7354
7365
|
}
|
|
7355
7366
|
async function getScheduleTaskById(req, res, next) {
|
|
7356
|
-
const validation =
|
|
7367
|
+
const validation = import_joi18.default.string().hex().required();
|
|
7357
7368
|
const _id = req.params.id;
|
|
7358
7369
|
const { error, value } = validation.validate(_id);
|
|
7359
7370
|
if (error) {
|
|
@@ -7373,18 +7384,18 @@ function useScheduleTaskController() {
|
|
|
7373
7384
|
}
|
|
7374
7385
|
async function updateScheduleTask(req, res, next) {
|
|
7375
7386
|
const payload = { id: req.params.id, ...req.body };
|
|
7376
|
-
const validation =
|
|
7377
|
-
id:
|
|
7378
|
-
title:
|
|
7379
|
-
time:
|
|
7380
|
-
dates:
|
|
7381
|
-
|
|
7387
|
+
const validation = import_joi18.default.object({
|
|
7388
|
+
id: import_joi18.default.string().hex().required(),
|
|
7389
|
+
title: import_joi18.default.string().optional().allow("", null),
|
|
7390
|
+
time: import_joi18.default.string().pattern(/^([0-1]\d|2[0-3]):([0-5]\d)$/).optional().allow("", null),
|
|
7391
|
+
dates: import_joi18.default.array().min(1).items(
|
|
7392
|
+
import_joi18.default.string().pattern(/^\d{4}-\d{2}-\d{2}$/).required()
|
|
7382
7393
|
).optional(),
|
|
7383
|
-
description:
|
|
7384
|
-
areas:
|
|
7385
|
-
|
|
7386
|
-
name:
|
|
7387
|
-
value:
|
|
7394
|
+
description: import_joi18.default.string().optional().allow("", null),
|
|
7395
|
+
areas: import_joi18.default.array().min(1).items(
|
|
7396
|
+
import_joi18.default.object({
|
|
7397
|
+
name: import_joi18.default.string().required(),
|
|
7398
|
+
value: import_joi18.default.any().required()
|
|
7388
7399
|
})
|
|
7389
7400
|
).optional()
|
|
7390
7401
|
});
|
|
@@ -7406,7 +7417,7 @@ function useScheduleTaskController() {
|
|
|
7406
7417
|
}
|
|
7407
7418
|
}
|
|
7408
7419
|
async function deleteScheduleTask(req, res, next) {
|
|
7409
|
-
const validation =
|
|
7420
|
+
const validation = import_joi18.default.string().hex().required();
|
|
7410
7421
|
const _id = req.params.id;
|
|
7411
7422
|
const { error, value } = validation.validate(_id);
|
|
7412
7423
|
if (error) {
|
|
@@ -7650,17 +7661,17 @@ function useQRService() {
|
|
|
7650
7661
|
}
|
|
7651
7662
|
|
|
7652
7663
|
// src/controllers/hygiene-qr.controller.ts
|
|
7653
|
-
var
|
|
7664
|
+
var import_joi19 = __toESM(require("joi"));
|
|
7654
7665
|
var import_node_server_utils37 = require("@7365admin1/node-server-utils");
|
|
7655
7666
|
function useQRController() {
|
|
7656
7667
|
const { generateQRImage: _generateQRImage, generateQRPDF: _generateQRPDF } = useQRService();
|
|
7657
7668
|
async function generateQR(req, res, next) {
|
|
7658
|
-
const validation =
|
|
7659
|
-
url:
|
|
7660
|
-
filename:
|
|
7661
|
-
title:
|
|
7662
|
-
subtitle:
|
|
7663
|
-
download:
|
|
7669
|
+
const validation = import_joi19.default.object({
|
|
7670
|
+
url: import_joi19.default.string().uri().required(),
|
|
7671
|
+
filename: import_joi19.default.string().optional().allow("", null),
|
|
7672
|
+
title: import_joi19.default.string().optional().allow("", null),
|
|
7673
|
+
subtitle: import_joi19.default.string().optional().allow("", null),
|
|
7674
|
+
download: import_joi19.default.boolean().optional().default(false)
|
|
7664
7675
|
});
|
|
7665
7676
|
const query = { ...req.query };
|
|
7666
7677
|
const { error, value } = validation.validate(query);
|