@royalschedule/validators 2.10.49 → 2.10.51
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/build/validators/linked-event-sets.js +35 -4
- package/build/validators/linked-event-sets.js.map +1 -1
- package/package.json +1 -1
- package/build/validators/calendar-exceptions.d.ts +0 -3
- package/build/validators/calendar-exceptions.js +0 -41
- package/build/validators/calendar-exceptions.js.map +0 -1
- package/build/validators/syllabus.d.ts +0 -3
- package/build/validators/syllabus.js +0 -19
- package/build/validators/syllabus.js.map +0 -1
|
@@ -15,19 +15,50 @@ exports.default = joi_1.default.object({
|
|
|
15
15
|
.valid('parallel', 'sequential', 'custom'),
|
|
16
16
|
anchor: joi_1.default.when('type', {
|
|
17
17
|
is: 'parallel',
|
|
18
|
-
then: joi_1.default.string().valid('start', 'middle', 'end').required()
|
|
19
|
-
otherwise: joi_1.default.forbidden()
|
|
18
|
+
then: joi_1.default.string().valid('start', 'middle', 'end').required()
|
|
20
19
|
}),
|
|
21
20
|
gap: joi_1.default.when('type', {
|
|
22
21
|
is: 'sequential',
|
|
23
22
|
then: joi_1.default.object({
|
|
24
23
|
min: joi_1.default.number().required(),
|
|
25
24
|
max: joi_1.default.number().required()
|
|
26
|
-
}).required()
|
|
27
|
-
|
|
25
|
+
}).required()
|
|
26
|
+
}),
|
|
27
|
+
configurations: joi_1.default.when('type', {
|
|
28
|
+
is: 'custom',
|
|
29
|
+
then: joi_1.default.array()
|
|
30
|
+
.items(joi_1.default.array()
|
|
31
|
+
.items(joi_1.default.object({
|
|
32
|
+
eventId: joi_1.default.string().required(),
|
|
33
|
+
offset: joi_1.default.number().required(),
|
|
34
|
+
anchor: joi_1.default.string().valid('start', 'middle', 'end').required()
|
|
35
|
+
}))).required(),
|
|
36
|
+
otherwise: joi_1.default.array()
|
|
37
|
+
.items(joi_1.default.array()
|
|
38
|
+
.items(joi_1.default.object({
|
|
39
|
+
eventId: joi_1.default.string().required(),
|
|
40
|
+
offset: joi_1.default.number().required(),
|
|
41
|
+
anchor: joi_1.default.string().valid('start', 'middle', 'end').required()
|
|
42
|
+
})))
|
|
28
43
|
}),
|
|
29
44
|
createdAt: date_1.default.isDate(),
|
|
30
45
|
updatedAt: date_1.default.isDate().allow(null),
|
|
31
46
|
ORIGIN: joi_1.default.string().allow(null)
|
|
47
|
+
}).custom((value, helpers) => {
|
|
48
|
+
const { events, configurations } = value;
|
|
49
|
+
if (value.type !== 'custom' || !configurations || !events || events.length === 0)
|
|
50
|
+
return value;
|
|
51
|
+
const eventIds = events.map((e) => (typeof e === 'string' ? e : e.id));
|
|
52
|
+
for (let i = 0; i < configurations.length; i++) {
|
|
53
|
+
const config = configurations[i];
|
|
54
|
+
const configIds = config.map((item) => item.eventId);
|
|
55
|
+
const hasDuplicates = new Set(configIds).size !== configIds.length;
|
|
56
|
+
const missing = eventIds.filter((id) => !configIds.includes(id));
|
|
57
|
+
const extra = configIds.filter((id) => !eventIds.includes(id));
|
|
58
|
+
if (hasDuplicates || missing.length > 0 || extra.length > 0) {
|
|
59
|
+
return helpers.error('any.invalid');
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return value;
|
|
32
63
|
});
|
|
33
64
|
//# sourceMappingURL=linked-event-sets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linked-event-sets.js","sourceRoot":"","sources":["../../src/validators/linked-event-sets.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsD;AACtD,mCAAyD;AAGzD,yCAAiE;AACjE,0DAAiE;AAGjE,kBAAe,aAAG,CAAC,MAAM,CAAM;IAC7B,EAAE,EAAW,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAA,eAAM,EAAC,CAAC,CAAC,CAAC;IAElD,MAAM,EAAO,aAAG,CAAC,KAAK,EAAE;SACP,KAAK,CACJ,aAAG,CAAC,YAAY,EAAE,CAAC,GAAG,CACpB,aAAG,CAAC,MAAM,EAAE,EACZ,aAAG,CAAC,MAAM,CAAC,WAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACrE,CACF;IAEjB,IAAI,EAAS,aAAG,CAAC,MAAM,EAAE;SACR,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC;IAG1D,MAAM,EAAO,aAAG,CAAC,IAAI,CAAC,MAAM,EAAE;QACd,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"linked-event-sets.js","sourceRoot":"","sources":["../../src/validators/linked-event-sets.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const joi_1 = __importDefault(require("joi"));
|
|
7
|
-
const util_1 = require("../common/util");
|
|
8
|
-
const date_1 = __importDefault(require("../common/date"));
|
|
9
|
-
const collections = ['courses', 'courseevents'];
|
|
10
|
-
exports.default = joi_1.default.object({
|
|
11
|
-
id: joi_1.default.string(),
|
|
12
|
-
description: joi_1.default.string().allow(null, ''),
|
|
13
|
-
reason: joi_1.default.string().allow(null, ''),
|
|
14
|
-
action: joi_1.default.string().valid('cancel', 'remove', 'reschedule', 'add', 'substitute'),
|
|
15
|
-
start: date_1.default.isDate(),
|
|
16
|
-
end: date_1.default.isDate().allow(null).greater(joi_1.default.ref('start')),
|
|
17
|
-
sources: joi_1.default.array()
|
|
18
|
-
.items(joi_1.default.object({
|
|
19
|
-
to: [
|
|
20
|
-
joi_1.default.string(),
|
|
21
|
-
joi_1.default.custom(util_1.Util.functions.schemaWrapper(require('./course-events'))),
|
|
22
|
-
joi_1.default.custom(util_1.Util.functions.schemaWrapper(require('./courses'))),
|
|
23
|
-
],
|
|
24
|
-
toModel: joi_1.default.string().valid(...collections)
|
|
25
|
-
})),
|
|
26
|
-
exception: joi_1.default.object({
|
|
27
|
-
to: [
|
|
28
|
-
joi_1.default.string(),
|
|
29
|
-
joi_1.default.custom(util_1.Util.functions.schemaWrapper(require('./groups'))),
|
|
30
|
-
joi_1.default.custom(util_1.Util.functions.schemaWrapper(require('./courses'))),
|
|
31
|
-
joi_1.default.custom(util_1.Util.functions.schemaWrapper(require('./teachers'))),
|
|
32
|
-
joi_1.default.custom(util_1.Util.functions.schemaWrapper(require('./locations'))),
|
|
33
|
-
joi_1.default.custom(util_1.Util.functions.schemaWrapper(require('./persons'))),
|
|
34
|
-
],
|
|
35
|
-
toModel: joi_1.default.string().valid('groups', 'courses', 'teachers', 'locations', 'persons'),
|
|
36
|
-
include: joi_1.default.boolean(),
|
|
37
|
-
start: date_1.default.isDate(),
|
|
38
|
-
end: date_1.default.isDate().greater(joi_1.default.ref('start')),
|
|
39
|
-
}),
|
|
40
|
-
});
|
|
41
|
-
//# sourceMappingURL=calendar-exceptions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-exceptions.js","sourceRoot":"","sources":["../../src/validators/calendar-exceptions.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsD;AAGtD,yCAAiE;AACjE,0DAAiE;AAIjE,MAAM,WAAW,GAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAE1D,kBAAe,aAAG,CAAC,MAAM,CAAoD;IAC3E,EAAE,EAAW,aAAG,CAAC,MAAM,EAAE;IAEzB,WAAW,EAAO,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IAC9C,MAAM,EAAY,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IAC9C,MAAM,EAAY,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC;IAE3F,KAAK,EAAa,cAAQ,CAAC,MAAM,EAAE;IACnC,GAAG,EAAe,cAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzE,OAAO,EAAW,aAAG,CAAC,KAAK,EAAE;SACV,KAAK,CACJ,aAAG,CAAC,MAAM,CAAC;QACT,EAAE,EAAE;YACF,aAAG,CAAC,MAAM,EAAE;YACZ,aAAG,CAAC,MAAM,CAAC,WAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACpE,aAAG,CAAC,MAAM,CAAC,WAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;SAC/D;QACA,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;KAC5C,CAAC,CACH;IACpB,SAAS,EAAS,aAAG,CAAC,MAAM,CAAC;QACT,EAAE,EAAE;YACF,aAAG,CAAC,MAAM,EAAE;YACZ,aAAG,CAAC,MAAM,CAAC,WAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YAC7D,aAAG,CAAC,MAAM,CAAC,WAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;YAC9D,aAAG,CAAC,MAAM,CAAC,WAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;YAC/D,aAAG,CAAC,MAAM,CAAC,WAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YAChE,aAAG,CAAC,MAAM,CAAC,WAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;SAC/D;QACD,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC;QACpF,OAAO,EAAE,aAAG,CAAC,OAAO,EAAE;QACtB,KAAK,EAAI,cAAQ,CAAC,MAAM,EAAE;QAC1B,GAAG,EAAM,cAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KACrD,CAAC;CACrB,CAAC,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const joi_1 = __importDefault(require("joi"));
|
|
7
|
-
exports.default = joi_1.default.object({
|
|
8
|
-
id: joi_1.default.string(),
|
|
9
|
-
schoolType: joi_1.default.string(),
|
|
10
|
-
subjectCode: joi_1.default.string().allow(null, ''),
|
|
11
|
-
subjectName: joi_1.default.string().allow(null, ''),
|
|
12
|
-
subjectDesignation: joi_1.default.string().allow(null, ''),
|
|
13
|
-
courseCode: joi_1.default.string().allow(null, ''),
|
|
14
|
-
courseName: joi_1.default.string().allow(null, ''),
|
|
15
|
-
point: joi_1.default.number().min(0).allow(null),
|
|
16
|
-
official: joi_1.default.boolean(),
|
|
17
|
-
ids: joi_1.default.string(),
|
|
18
|
-
});
|
|
19
|
-
//# sourceMappingURL=syllabus.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"syllabus.js","sourceRoot":"","sources":["../../src/validators/syllabus.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsD;AAQtD,kBAAe,aAAG,CAAC,MAAM,CAA2C;IAClE,EAAE,EAA0B,aAAG,CAAC,MAAM,EAAE;IACxC,UAAU,EAAkB,aAAG,CAAC,MAAM,EAAE;IACxC,WAAW,EAAiB,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IACxD,WAAW,EAAiB,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IACxD,kBAAkB,EAAU,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IACxD,UAAU,EAAkB,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IACxD,UAAU,EAAkB,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IACxD,KAAK,EAAuB,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3D,QAAQ,EAAoB,aAAG,CAAC,OAAO,EAAE;IACzC,GAAG,EAAyB,aAAG,CAAC,MAAM,EAAE;CACzC,CAAC,CAAC"}
|