@volcanicminds/backend 1.0.2 → 1.0.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/dist/lib/api/users/controller/user.js +5 -0
- package/dist/lib/api/users/controller/user.js.map +1 -1
- package/dist/lib/api/users/routes.js +18 -0
- package/dist/lib/api/users/routes.js.map +1 -1
- package/dist/lib/loader/schemas.js +43 -12
- package/dist/lib/loader/schemas.js.map +1 -1
- package/dist/lib/schemas/user.js +11 -1
- package/dist/lib/schemas/user.js.map +1 -1
- package/dist/package.json +1 -1
- package/lib/api/users/controller/user.ts +5 -0
- package/lib/api/users/routes.ts +18 -0
- package/lib/loader/schemas.ts +48 -11
- package/lib/schemas/user.ts +11 -0
- package/package.json +1 -1
|
@@ -22,6 +22,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
23
|
exports.currentUser = currentUser;
|
|
24
24
|
exports.isAdmin = isAdmin;
|
|
25
|
+
exports.getRoles = getRoles;
|
|
25
26
|
exports.count = count;
|
|
26
27
|
exports.find = find;
|
|
27
28
|
exports.findOne = findOne;
|
|
@@ -36,6 +37,10 @@ function isAdmin(req, reply) {
|
|
|
36
37
|
const user = req.user;
|
|
37
38
|
reply.send({ isAdmin: (user === null || user === void 0 ? void 0 : user.getId()) && req.hasRole(roles.admin) });
|
|
38
39
|
}
|
|
40
|
+
function getRoles(req, reply) {
|
|
41
|
+
const allRoles = Object.keys(roles).map((key) => roles[key]);
|
|
42
|
+
reply.send(allRoles);
|
|
43
|
+
}
|
|
39
44
|
function count(req, reply) {
|
|
40
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
46
|
return req.server['userManager'].countQuery(req.data());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../lib/api/users/controller/user.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAGA,kCAGC;AAED,0BAGC;AAED,sBAEC;AAED,oBAGC;AAED,0BAIC;AAED,wBAIC;AAED,wBAOC;AAED,wBAMC;
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../lib/api/users/controller/user.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,24 @@ module.exports = {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
|
+
{
|
|
48
|
+
method: 'GET',
|
|
49
|
+
path: '/roles',
|
|
50
|
+
roles: [roles.admin],
|
|
51
|
+
handler: 'user.getRoles',
|
|
52
|
+
middlewares: ['global.isAuthenticated'],
|
|
53
|
+
config: {
|
|
54
|
+
title: 'Get all roles',
|
|
55
|
+
description: 'Get all roles',
|
|
56
|
+
response: {
|
|
57
|
+
200: {
|
|
58
|
+
description: 'Default response',
|
|
59
|
+
type: 'array',
|
|
60
|
+
items: { $ref: 'roleSchema#' }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
47
65
|
{
|
|
48
66
|
method: 'GET',
|
|
49
67
|
path: '/:id',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/users/routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/users/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,28 +5,59 @@ const path_1 = require("../util/path");
|
|
|
5
5
|
const glob = require('glob');
|
|
6
6
|
const path = require('path');
|
|
7
7
|
function apply(server) {
|
|
8
|
-
const
|
|
8
|
+
const [baseSchemaPath, customSchemaPath] = (0, path_1.normalizePatterns)(['..', 'schemas', '*.{ts,js}'], ['src', 'schemas', '*.{ts,js}']);
|
|
9
|
+
const customSchemas = [];
|
|
10
|
+
const customSchemaIds = new Set();
|
|
9
11
|
let schemaCount = 0;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
log.t && log.trace('Looking for custom schemas in ' + customSchemaPath);
|
|
13
|
+
glob.sync(customSchemaPath).forEach((f) => {
|
|
14
|
+
try {
|
|
15
|
+
const schemaClass = require(f);
|
|
16
|
+
const schemaNames = Object.keys(schemaClass);
|
|
17
|
+
schemaNames.forEach((name) => {
|
|
18
|
+
const schema = schemaClass[name];
|
|
19
|
+
if (schema === null || schema === void 0 ? void 0 : schema.$id) {
|
|
20
|
+
customSchemas.push(schema);
|
|
21
|
+
customSchemaIds.add(schema.$id);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
log.w && log.warn(`Could not load custom schema file: ${f}`, e);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
customSchemas.forEach((schema) => {
|
|
30
|
+
log.trace(`* Registering custom schema [${schema.$id}]`);
|
|
31
|
+
server.addSchema(schema);
|
|
32
|
+
schemaCount++;
|
|
33
|
+
});
|
|
34
|
+
log.t && log.trace('Looking for base schemas in ' + baseSchemaPath);
|
|
35
|
+
glob.sync(baseSchemaPath).forEach((f) => {
|
|
36
|
+
try {
|
|
13
37
|
const schemaFileName = path.basename(f);
|
|
14
38
|
const schemaClass = require(f);
|
|
15
39
|
const schemaNames = Object.keys(schemaClass);
|
|
16
|
-
schemaNames.
|
|
40
|
+
schemaNames.forEach((name) => {
|
|
17
41
|
const schema = schemaClass[name];
|
|
18
|
-
if (schema
|
|
19
|
-
if (schema
|
|
20
|
-
log.
|
|
21
|
-
|
|
22
|
-
schemaCount++;
|
|
42
|
+
if (schema === null || schema === void 0 ? void 0 : schema.$id) {
|
|
43
|
+
if (customSchemaIds.has(schema.$id)) {
|
|
44
|
+
log.w &&
|
|
45
|
+
log.warn(`* Base schema [${schema.$id}] from ${schemaFileName} is overridden by a custom schema and will be ignored.`);
|
|
23
46
|
}
|
|
24
47
|
else {
|
|
25
|
-
log.
|
|
48
|
+
log.trace(`* Registering base schema [${schema.$id}] from ${schemaFileName}`);
|
|
49
|
+
server.addSchema(schema);
|
|
50
|
+
schemaCount++;
|
|
26
51
|
}
|
|
27
52
|
}
|
|
53
|
+
else {
|
|
54
|
+
log.w && log.warn(`* Schema with no $id found in ${schemaFileName}, cannot be registered.`);
|
|
55
|
+
}
|
|
28
56
|
});
|
|
29
|
-
}
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
log.w && log.warn(`Could not load base schema file: ${f}`, e);
|
|
60
|
+
}
|
|
30
61
|
});
|
|
31
62
|
log.d && log.debug(`Schemas loaded: ${schemaCount} referenceable by $ref`);
|
|
32
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../lib/loader/schemas.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../lib/loader/schemas.ts"],"names":[],"mappings":";;AAKA,sBAgEC;AArED,uCAAgD;AAEhD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAE5B,SAAgB,KAAK,CAAC,MAAW;IAC/B,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,IAAA,wBAAiB,EAC1D,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,EAC9B,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAChC,CAAA;IAED,MAAM,aAAa,GAAU,EAAE,CAAA;IAC/B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE,CAAA;IACjC,IAAI,WAAW,GAAG,CAAC,CAAA;IAEnB,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAG,gBAAgB,CAAC,CAAA;IACvE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;QAChD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAE5C,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;gBAChC,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,EAAE,CAAC;oBAChB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAC1B,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,sCAAsC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QACjE,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/B,GAAG,CAAC,KAAK,CAAC,gCAAgC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;QACxD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QACxB,WAAW,EAAE,CAAA;IACf,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,8BAA8B,GAAG,cAAc,CAAC,CAAA;IACnE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACvC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAE5C,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;gBAChC,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,EAAE,CAAC;oBAChB,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;wBACpC,GAAG,CAAC,CAAC;4BACH,GAAG,CAAC,IAAI,CACN,kBAAkB,MAAM,CAAC,GAAG,UAAU,cAAc,wDAAwD,CAC7G,CAAA;oBACL,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,KAAK,CAAC,8BAA8B,MAAM,CAAC,GAAG,UAAU,cAAc,EAAE,CAAC,CAAA;wBAC7E,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;wBACxB,WAAW,EAAE,CAAA;oBACf,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,iCAAiC,cAAc,yBAAyB,CAAC,CAAA;gBAC7F,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,mBAAmB,WAAW,wBAAwB,CAAC,CAAA;AAC5E,CAAC"}
|
package/dist/lib/schemas/user.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isAdminSchema = exports.userSchema = exports.userBodySchema = void 0;
|
|
3
|
+
exports.roleSchema = exports.isAdminSchema = exports.userSchema = exports.userBodySchema = void 0;
|
|
4
4
|
exports.userBodySchema = {
|
|
5
5
|
$id: 'userBodySchema',
|
|
6
6
|
type: 'object',
|
|
@@ -44,4 +44,14 @@ exports.isAdminSchema = {
|
|
|
44
44
|
isAdmin: { type: 'boolean' }
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
|
+
exports.roleSchema = {
|
|
48
|
+
$id: 'roleSchema',
|
|
49
|
+
type: 'object',
|
|
50
|
+
nullable: true,
|
|
51
|
+
properties: {
|
|
52
|
+
code: { type: 'string' },
|
|
53
|
+
name: { type: 'string' },
|
|
54
|
+
description: { type: 'string' }
|
|
55
|
+
}
|
|
56
|
+
};
|
|
47
57
|
//# sourceMappingURL=user.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../lib/schemas/user.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,GAAG,EAAE,gBAAgB;IACrB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KACpD;CACF,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACnD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC9B;CACF,CAAA;AAEY,QAAA,aAAa,GAAG;IAC3B,GAAG,EAAE,eAAe;IACpB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC7B;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../lib/schemas/user.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,GAAG,EAAE,gBAAgB;IACrB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KACpD;CACF,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACnD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC9B;CACF,CAAA;AAEY,QAAA,aAAa,GAAG;IAC3B,GAAG,EAAE,eAAe;IACpB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC7B;CACF,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAChC;CACF,CAAA"}
|
package/dist/package.json
CHANGED
|
@@ -11,6 +11,11 @@ export function isAdmin(req: FastifyRequest, reply: FastifyReply) {
|
|
|
11
11
|
reply.send({ isAdmin: user?.getId() && req.hasRole(roles.admin) })
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
export function getRoles(req: FastifyRequest, reply: FastifyReply) {
|
|
15
|
+
const allRoles = Object.keys(roles).map((key) => roles[key])
|
|
16
|
+
reply.send(allRoles)
|
|
17
|
+
}
|
|
18
|
+
|
|
14
19
|
export async function count(req: FastifyRequest, reply: FastifyReply) {
|
|
15
20
|
return req.server['userManager'].countQuery(req.data())
|
|
16
21
|
}
|
package/lib/api/users/routes.ts
CHANGED
|
@@ -43,6 +43,24 @@ module.exports = {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
|
+
{
|
|
47
|
+
method: 'GET',
|
|
48
|
+
path: '/roles',
|
|
49
|
+
roles: [roles.admin],
|
|
50
|
+
handler: 'user.getRoles',
|
|
51
|
+
middlewares: ['global.isAuthenticated'],
|
|
52
|
+
config: {
|
|
53
|
+
title: 'Get all roles',
|
|
54
|
+
description: 'Get all roles',
|
|
55
|
+
response: {
|
|
56
|
+
200: {
|
|
57
|
+
description: 'Default response',
|
|
58
|
+
type: 'array',
|
|
59
|
+
items: { $ref: 'roleSchema#' }
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
46
64
|
{
|
|
47
65
|
method: 'GET',
|
|
48
66
|
path: '/:id',
|
package/lib/loader/schemas.ts
CHANGED
|
@@ -4,29 +4,66 @@ const glob = require('glob')
|
|
|
4
4
|
const path = require('path')
|
|
5
5
|
|
|
6
6
|
export function apply(server: any): void {
|
|
7
|
-
const
|
|
7
|
+
const [baseSchemaPath, customSchemaPath] = normalizePatterns(
|
|
8
|
+
['..', 'schemas', '*.{ts,js}'],
|
|
9
|
+
['src', 'schemas', '*.{ts,js}']
|
|
10
|
+
)
|
|
8
11
|
|
|
12
|
+
const customSchemas: any[] = []
|
|
13
|
+
const customSchemaIds = new Set()
|
|
9
14
|
let schemaCount = 0
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
15
|
+
|
|
16
|
+
log.t && log.trace('Looking for custom schemas in ' + customSchemaPath)
|
|
17
|
+
glob.sync(customSchemaPath).forEach((f: string) => {
|
|
18
|
+
try {
|
|
19
|
+
const schemaClass = require(f)
|
|
20
|
+
const schemaNames = Object.keys(schemaClass)
|
|
21
|
+
|
|
22
|
+
schemaNames.forEach((name) => {
|
|
23
|
+
const schema = schemaClass[name]
|
|
24
|
+
if (schema?.$id) {
|
|
25
|
+
customSchemas.push(schema)
|
|
26
|
+
customSchemaIds.add(schema.$id)
|
|
27
|
+
}
|
|
28
|
+
})
|
|
29
|
+
} catch (e) {
|
|
30
|
+
log.w && log.warn(`Could not load custom schema file: ${f}`, e)
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
customSchemas.forEach((schema) => {
|
|
35
|
+
log.trace(`* Registering custom schema [${schema.$id}]`)
|
|
36
|
+
server.addSchema(schema)
|
|
37
|
+
schemaCount++
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
log.t && log.trace('Looking for base schemas in ' + baseSchemaPath)
|
|
41
|
+
glob.sync(baseSchemaPath).forEach((f: string) => {
|
|
42
|
+
try {
|
|
13
43
|
const schemaFileName = path.basename(f)
|
|
14
44
|
const schemaClass = require(f)
|
|
15
45
|
const schemaNames = Object.keys(schemaClass)
|
|
16
46
|
|
|
17
|
-
schemaNames.
|
|
47
|
+
schemaNames.forEach((name) => {
|
|
18
48
|
const schema = schemaClass[name]
|
|
19
|
-
if (schema
|
|
20
|
-
if (schema
|
|
21
|
-
log.
|
|
49
|
+
if (schema?.$id) {
|
|
50
|
+
if (customSchemaIds.has(schema.$id)) {
|
|
51
|
+
log.w &&
|
|
52
|
+
log.warn(
|
|
53
|
+
`* Base schema [${schema.$id}] from ${schemaFileName} is overridden by a custom schema and will be ignored.`
|
|
54
|
+
)
|
|
55
|
+
} else {
|
|
56
|
+
log.trace(`* Registering base schema [${schema.$id}] from ${schemaFileName}`)
|
|
22
57
|
server.addSchema(schema)
|
|
23
58
|
schemaCount++
|
|
24
|
-
} else {
|
|
25
|
-
log.warn(`* Schema [${schema.$id}] not loaded from ${schemaFileName}`)
|
|
26
59
|
}
|
|
60
|
+
} else {
|
|
61
|
+
log.w && log.warn(`* Schema with no $id found in ${schemaFileName}, cannot be registered.`)
|
|
27
62
|
}
|
|
28
63
|
})
|
|
29
|
-
})
|
|
64
|
+
} catch (e) {
|
|
65
|
+
log.w && log.warn(`Could not load base schema file: ${f}`, e)
|
|
66
|
+
}
|
|
30
67
|
})
|
|
31
68
|
|
|
32
69
|
log.d && log.debug(`Schemas loaded: ${schemaCount} referenceable by $ref`)
|
package/lib/schemas/user.ts
CHANGED
|
@@ -43,3 +43,14 @@ export const isAdminSchema = {
|
|
|
43
43
|
isAdmin: { type: 'boolean' }
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
+
|
|
47
|
+
export const roleSchema = {
|
|
48
|
+
$id: 'roleSchema',
|
|
49
|
+
type: 'object',
|
|
50
|
+
nullable: true,
|
|
51
|
+
properties: {
|
|
52
|
+
code: { type: 'string' },
|
|
53
|
+
name: { type: 'string' },
|
|
54
|
+
description: { type: 'string' }
|
|
55
|
+
}
|
|
56
|
+
}
|