@volcanicminds/backend 0.2.27 → 0.2.29

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.
Files changed (59) hide show
  1. package/README.md +26 -18
  2. package/TODO.md +0 -1
  3. package/dist/index.js +46 -20
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/api/auth/controller/auth.js +136 -17
  6. package/dist/lib/api/auth/controller/auth.js.map +1 -1
  7. package/dist/lib/api/auth/routes.js +107 -13
  8. package/dist/lib/api/auth/routes.js.map +1 -1
  9. package/dist/lib/api/health/routes.js +2 -2
  10. package/dist/lib/api/health/routes.js.map +1 -1
  11. package/dist/lib/api/users/routes.js +12 -14
  12. package/dist/lib/api/users/routes.js.map +1 -1
  13. package/dist/lib/config/plugins.js +24 -0
  14. package/dist/lib/config/plugins.js.map +1 -0
  15. package/dist/lib/hooks/onRequest.js +13 -9
  16. package/dist/lib/hooks/onRequest.js.map +1 -1
  17. package/dist/lib/loader/plugins.js +23 -0
  18. package/dist/lib/loader/plugins.js.map +1 -0
  19. package/dist/lib/loader/router.js +66 -35
  20. package/dist/lib/loader/router.js.map +1 -1
  21. package/dist/lib/loader/schemas.js +8 -3
  22. package/dist/lib/loader/schemas.js.map +1 -1
  23. package/dist/lib/middleware/isAdmin.js +5 -4
  24. package/dist/lib/middleware/isAdmin.js.map +1 -1
  25. package/dist/lib/middleware/isAuthenticated.js +7 -6
  26. package/dist/lib/middleware/isAuthenticated.js.map +1 -1
  27. package/dist/lib/middleware/postAuth.js +19 -0
  28. package/dist/lib/middleware/postAuth.js.map +1 -0
  29. package/dist/lib/middleware/preAuth.js +17 -0
  30. package/dist/lib/middleware/preAuth.js.map +1 -0
  31. package/dist/lib/util/generate.js +10 -0
  32. package/dist/lib/util/generate.js.map +1 -0
  33. package/dist/lib/util/regexp.js +13 -13
  34. package/dist/lib/util/regexp.js.map +1 -1
  35. package/index.d.ts +2 -1
  36. package/index.ts +57 -33
  37. package/lib/api/auth/controller/auth.ts +118 -23
  38. package/lib/api/auth/routes.ts +107 -14
  39. package/lib/api/health/routes.ts +2 -2
  40. package/lib/api/users/routes.ts +12 -14
  41. package/lib/config/plugins.ts +24 -0
  42. package/lib/hooks/onRequest.ts +13 -19
  43. package/lib/loader/plugins.ts +22 -0
  44. package/lib/loader/router.ts +71 -34
  45. package/lib/loader/schemas.ts +7 -3
  46. package/lib/middleware/isAdmin.ts +3 -3
  47. package/lib/middleware/isAuthenticated.ts +5 -5
  48. package/lib/middleware/postAuth.ts +5 -0
  49. package/lib/middleware/preAuth.ts +3 -0
  50. package/lib/util/generate.ts +6 -0
  51. package/lib/util/regexp.ts +34 -32
  52. package/package.json +1 -1
  53. package/types/global.d.ts +15 -1
  54. package/dist/lib/api/auth/controller/password.js +0 -23
  55. package/dist/lib/api/auth/controller/password.js.map +0 -1
  56. package/dist/lib/middleware/example.js +0 -13
  57. package/dist/lib/middleware/example.js.map +0 -1
  58. package/lib/api/auth/controller/password.ts +0 -21
  59. package/lib/middleware/example.ts +0 -12
package/README.md CHANGED
@@ -49,11 +49,6 @@ SWAGGER_HOST=myawesome.backend.com
49
49
  SWAGGER_TITLE=API Documentation
50
50
  SWAGGER_DESCRIPTION=List of available APIs and schemas to use
51
51
  SWAGGER_VERSION=0.1.0
52
-
53
- SRV_CORS=false
54
- SRV_HELMET=false
55
- SRV_RATELIMIT=false
56
- SRV_COMPRESS=false
57
52
  ```
58
53
 
59
54
  For docker may be useful set HOST as 0.0.0.0 (instead 127.0.0.1).
@@ -160,13 +155,32 @@ SWAGGER_PREFIX_URL=/documentation
160
155
 
161
156
  ## Fastify modules
162
157
 
163
- In the .env file you can activate some modules in this way:
158
+ Under the folder `src/config` is possible add a file `plugin.ts` where you can activate/customize some modules in this way:
164
159
 
165
- ```ruby
166
- SRV_CORS=false
167
- SRV_HELMET=false
168
- SRV_RATELIMIT=false
169
- SRV_COMPRESS=false
160
+ ```ts
161
+ // src/config/plugins.ts
162
+ module.exports = [
163
+ {
164
+ name: 'cors',
165
+ enable: false,
166
+ options: {}
167
+ },
168
+ {
169
+ name: 'rateLimit',
170
+ enable: false,
171
+ options: {}
172
+ },
173
+ {
174
+ name: 'helmet',
175
+ enable: false,
176
+ options: {}
177
+ },
178
+ {
179
+ name: 'compress',
180
+ enable: false,
181
+ options: {}
182
+ }
183
+ ]
170
184
  ```
171
185
 
172
186
  ## Routes
@@ -193,6 +207,7 @@ Some notes:
193
207
  - It's possible define a list of **middleware** (optional).
194
208
 
195
209
  ```ts
210
+ // src/api/example/routes.ts
196
211
  module.exports = {
197
212
  config: {
198
213
  title: 'Example of routes.ts',
@@ -218,13 +233,6 @@ module.exports = {
218
233
  deprecated: false, // swagger
219
234
  version: false, // swagger
220
235
  response: {
221
- 403: {
222
- description: 'Unsuccessful response',
223
- type: 'object',
224
- properties: {
225
- hello: { type: 'string' }
226
- }
227
- },
228
236
  200: {
229
237
  description: 'Successful response',
230
238
  type: 'object',
package/TODO.md CHANGED
@@ -1,6 +1,5 @@
1
1
  # TODO
2
2
 
3
- - plugins custom configuration (es cors)
4
3
  - add example / demo project (with @volcanicminds/backend & @volcanicminds/typeorm)
5
4
  - authentication
6
5
  - userManager methods
package/dist/index.js CHANGED
@@ -40,6 +40,7 @@ dotenv_1.default.config();
40
40
  const yn_1 = __importDefault(require("./lib/util/yn"));
41
41
  const logger_1 = __importDefault(require("./lib/util/logger"));
42
42
  const mark = __importStar(require("./lib/util/mark"));
43
+ const loaderPlugins = __importStar(require("./lib/loader/plugins"));
43
44
  const loaderRoles = __importStar(require("./lib/loader/roles"));
44
45
  const loaderRouter = __importStar(require("./lib/loader/router"));
45
46
  const loaderHooks = __importStar(require("./lib/loader/hooks"));
@@ -139,33 +140,20 @@ function addFastifySwagger(fastify) {
139
140
  }
140
141
  });
141
142
  }
142
- const start = () => __awaiter(void 0, void 0, void 0, function* () {
143
+ const start = (decorators) => __awaiter(void 0, void 0, void 0, function* () {
143
144
  const begin = new Date().getTime();
144
145
  mark.print(logger_1.default);
145
146
  global.roles = loaderRoles.load();
146
147
  const opts = (0, yn_1.default)(process.env.LOG_FASTIFY, false) ? { logger: logger_1.default } : {};
147
148
  const fastify = yield (0, fastify_1.default)(opts);
148
149
  const { HOST: host = '0.0.0.0', PORT: port = '2230', GRAPHQL } = process.env;
149
- const { SRV_CORS, SRV_HELMET, SRV_RATELIMIT, SRV_COMPRESS, JWT_SECRET, JWT_EXPIRES_IN = '15d' } = process.env;
150
+ const { JWT_SECRET, JWT_EXPIRES_IN = '15d' } = process.env;
150
151
  const loadApollo = (0, yn_1.default)(GRAPHQL, false);
151
- const addPluginCors = (0, yn_1.default)(SRV_CORS, false);
152
- const addPluginHelmet = (0, yn_1.default)(SRV_HELMET, false);
153
- const addPluginRateLimit = (0, yn_1.default)(SRV_RATELIMIT, false);
154
- const addPluginCompress = (0, yn_1.default)(SRV_COMPRESS, false);
155
- log.t && log.trace(`Attach Apollo Server ${loadApollo}`);
156
- log.t && log.trace(`Add plugin CORS: ${addPluginCors}`);
157
- log.t && log.trace(`Add plugin HELMET: ${!loadApollo ? addPluginHelmet : 'Not usable with Apollo'}`);
158
- log.t && log.trace(`Add plugin COMPRESS: ${addPluginCompress}`);
159
- log.t && log.trace(`Add plugin RATELIMIT: ${addPluginRateLimit}`);
160
- !loadApollo && addPluginHelmet && (yield fastify.register(helmet_1.default));
161
- addPluginRateLimit && (yield fastify.register(rate_limit_1.default));
162
- addPluginCors &&
163
- (yield fastify.register(cors_1.default, {
164
- origin: '*',
165
- allowedHeaders: ['v-total', 'v-count', 'v-page', 'v-pageSize'],
166
- exposedHeaders: ['v-total', 'v-count', 'v-page', 'v-pageSize']
167
- }));
168
- addPluginCompress && (yield fastify.register(compress_1.default));
152
+ const plugins = loaderPlugins.load();
153
+ !loadApollo && (plugins === null || plugins === void 0 ? void 0 : plugins.helmet) && (yield fastify.register(helmet_1.default));
154
+ (plugins === null || plugins === void 0 ? void 0 : plugins.rateLimit) && (yield fastify.register(rate_limit_1.default));
155
+ (plugins === null || plugins === void 0 ? void 0 : plugins.cors) && (yield fastify.register(cors_1.default, plugins.cors || {}));
156
+ (plugins === null || plugins === void 0 ? void 0 : plugins.compress) && (yield fastify.register(compress_1.default));
169
157
  log.t && log.trace(`Add JWT - expiresIn: ${JWT_EXPIRES_IN}`);
170
158
  yield fastify.register(jwt_1.default, {
171
159
  secret: JWT_SECRET || 'supersecret',
@@ -175,6 +163,44 @@ const start = () => __awaiter(void 0, void 0, void 0, function* () {
175
163
  yield addFastifySwagger(fastify);
176
164
  yield addApolloRouting(fastify, apollo);
177
165
  yield addFastifyRouting(fastify);
166
+ decorators = Object.assign({ userManager: {
167
+ createUser(data) {
168
+ throw Error('Not implemented');
169
+ },
170
+ resetExternalId(data) {
171
+ throw Error('Not implemented');
172
+ },
173
+ updateUserById(id, user) {
174
+ throw Error('Not implemented');
175
+ },
176
+ retrieveUserById(id) {
177
+ throw Error('Not implemented');
178
+ },
179
+ retrieveUserByEmail(email) {
180
+ throw Error('Not implemented');
181
+ },
182
+ retrieveUserByExternalId(externalId) {
183
+ throw Error('Not implemented');
184
+ },
185
+ retrieveUserByPassword(email, password) {
186
+ throw Error('Not implemented');
187
+ },
188
+ changePassword(email, password, oldPassword) {
189
+ throw Error('Not implemented');
190
+ },
191
+ enableUserById(id) {
192
+ throw Error('Not implemented');
193
+ },
194
+ disableUserById(id) {
195
+ throw Error('Not implemented');
196
+ },
197
+ isValidUser(data) {
198
+ throw Error('Not implemented');
199
+ }
200
+ } }, decorators);
201
+ yield Promise.all(Object.keys(decorators || {}).map((key) => __awaiter(void 0, void 0, void 0, function* () {
202
+ yield fastify.decorate(key, decorators[key]);
203
+ })));
178
204
  yield fastify
179
205
  .listen({
180
206
  port: Number(port),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEZ,oDAA2B;AAC3B,gBAAM,CAAC,MAAM,EAAE,CAAA;AAEf,uDAA8B;AAC9B,+DAAsC;AACtC,sDAAuC;AACvC,oEAAqD;AACrD,gEAAiD;AACjD,kEAAmD;AACnD,gEAAiD;AACjD,oEAAqD;AAErD,sDAAkD;AAClD,uDAAuC;AACvC,+DAAsC;AACtC,qEAA2C;AAE3C,yDAAgC;AAChC,6DAAoC;AACpC,iEAAwC;AACxC,qEAA2C;AAE3C,2CAA6C;AAC7C,oEAAkF;AAClF,kDAAmE;AACnE,uEAA8C;AAC9C,uEAA6C;AAG7C,MAAM,CAAC,GAAG,GAAG,gBAAM,CAAA;AAEnB,SAAe,YAAY,CAAC,OAAwB;;QAClD,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,IAAI,qBAAY,CAAY;YACzC,QAAQ,EAAR,mBAAQ;YACR,SAAS,EAAT,mBAAS;YACT,OAAO,EAAE,CAAC,IAAA,kCAAwB,EAAC,OAAO,CAAC,CAAC;SAC7C,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QAEpB,OAAO,MAAM,CAAA;IACf,CAAC;CAAA;AAED,SAAe,gBAAgB,CAAC,OAAwB,EAAE,MAAsC;;QAC9F,IAAI,MAAM,EAAE;YACV,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;YAC/B,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAA,iBAAa,EAAC,MAAM,CAAC,EAAE;gBAC5C,OAAO,EAAE,2BAAiB;aAC3B,CAAC,CAAA;SASH;IACH,CAAC;CAAA;AAED,SAAe,iBAAiB,CAAC,OAAwB;;QACvD,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAE/B,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC1B,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAE5B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAA;QAClC,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;CAAA;AAED,SAAe,iBAAiB,CAAC,OAAwB;;QACvD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,CAAA;QAEtH,MAAM,WAAW,GAAG,IAAA,YAAE,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACtC,IAAI,WAAW,EAAE;YACf,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;YAE/B,MAAM,OAAO,CAAC,QAAQ,CAAC,iBAAO,EAAE;gBAC9B,OAAO,EAAE;oBACP,IAAI,EAAE;wBACJ,KAAK,EAAE,aAAa,IAAI,4BAA4B;wBACpD,WAAW,EAAE,mBAAmB,IAAI,2CAA2C;wBAC/E,OAAO,EAAE,eAAe,IAAI,OAAO;qBACpC;oBACD,IAAI,EAAE,YAAY,IAAI,gBAAgB;oBACtC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;oBAC1B,QAAQ,EAAE,CAAC,kBAAkB,CAAC;oBAC9B,QAAQ,EAAE,CAAC,kBAAkB,CAAC;iBAC/B;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE;wBACJ,KAAK,EAAE,aAAa,IAAI,4BAA4B;wBACpD,WAAW,EAAE,mBAAmB,IAAI,2CAA2C;wBAC/E,OAAO,EAAE,eAAe,IAAI,OAAO;qBACpC;oBACD,OAAO,EAAE;wBACP;4BACE,GAAG,EAAE,YAAY,IAAI,uBAAuB;yBAC7C;qBACF;oBACD,UAAU,EAAE;wBACV,eAAe,EAAE;4BACf,MAAM,EAAE;gCACN,IAAI,EAAE,MAAM;gCACZ,MAAM,EAAE,QAAQ;6BACjB;yBACF;qBACF;iBACF;aACF,CAAC,CAAA;YAEF,MAAM,OAAO,CAAC,QAAQ,CAAC,oBAAS,EAAE;gBAChC,WAAW,EAAE,kBAAkB,IAAI,gBAAgB;gBACnD,QAAQ,EAAE;oBACR,YAAY,EAAE,MAAM;oBACpB,WAAW,EAAE,IAAI;oBACjB,wBAAwB,EAAE,CAAC;iBAC5B;aAWF,CAAC,CAAA;SACH;IACH,CAAC;CAAA;AAED,MAAM,KAAK,GAAG,CAAO,UAAU,EAAE,EAAE;IACjC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAClC,IAAI,CAAC,KAAK,CAAC,gBAAM,CAAC,CAAA;IAClB,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,CAAA;IAEjC,MAAM,IAAI,GAAG,IAAA,YAAE,EAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACzE,MAAM,OAAO,GAAG,MAAM,IAAA,iBAAO,EAAC,IAAI,CAAC,CAAA;IAEnC,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,CAAA;IAC5E,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAA;IAE1D,MAAM,UAAU,GAAG,IAAA,YAAE,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;IAGpC,CAAC,UAAU,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,IAAI,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,gBAAM,CAAC,CAAC,CAAA;IAClE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,KAAI,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,oBAAS,CAAC,CAAC,CAAA;IACzD,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,KAAI,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,cAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;IACnE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,kBAAQ,CAAC,CAAC,CAAA;IAGvD,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,wBAAwB,cAAc,EAAE,CAAC,CAAA;IAC5D,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAY,EAAE;QACnC,MAAM,EAAE,UAAU,IAAI,aAAa;QACnC,IAAI,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;KACpC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC9D,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACvC,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAGhC,UAAU,mBACR,WAAW,EAAE;YACX,UAAU,CAAC,IAAS;gBAClB,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAChC,CAAC;YACD,eAAe,CAAC,IAAS;gBACvB,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAChC,CAAC;YACD,cAAc,CAAC,EAAU,EAAE,IAAS;gBAClC,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAChC,CAAC;YACD,gBAAgB,CAAC,EAAU;gBACzB,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAChC,CAAC;YACD,mBAAmB,CAAC,KAAa;gBAC/B,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAChC,CAAC;YACD,wBAAwB,CAAC,UAAkB;gBACzC,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAChC,CAAC;YACD,sBAAsB,CAAC,KAAa,EAAE,QAAgB;gBACpD,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAChC,CAAC;YACD,cAAc,CAAC,KAAa,EAAE,QAAgB,EAAE,WAAmB;gBACjE,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAChC,CAAC;YACD,cAAc,CAAC,EAAU;gBACvB,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAChC,CAAC;YACD,eAAe,CAAC,EAAU;gBACxB,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAChC,CAAC;YACD,WAAW,CAAC,IAAS;gBACnB,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAChC,CAAC;SACgB,IAChB,UAAU,CACd,CAAA;IAED,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAO,GAAG,EAAE,EAAE;QAC9C,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IAC9C,CAAC,CAAA,CAAC,CACH,CAAA;IAED,MAAM,OAAO;SACV,MAAM,CAAC;QACN,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAClB,IAAI,EAAE,IAAI;KACX,CAAC;SACD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,CAAA;QACpD,GAAG,CAAC,IAAI,CAAC,uBAAuB,OAAO,MAAM,CAAC,CAAA;QAC9C,GAAG,CAAC,IAAI,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAA;QAEzC,MAAM,WAAW,GAAG,IAAA,YAAE,EAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAClD,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,sBAAsB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,gBAAgB,EAAE,CAAC,CAAA;IAC/G,CAAC,CAAC,CAAA;IAEJ,MAAM,CAAC,MAAM,GAAG,OAAO,CAAA;IACvB,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA,CAAA;AA2BD,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE,EAAF,YAAE,EAAE,KAAK,EAAE,CAAA;AAC9B,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,EAAF,YAAE,EAAE,KAAK,EAAE,CAAA;AACrC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,EAAE,EAAF,YAAE,EAAE,KAAK,EAAE,CAAA"}
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
26
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
27
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,30 +31,126 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
31
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
32
  });
10
33
  };
34
+ var __rest = (this && this.__rest) || function (s, e) {
35
+ var t = {};
36
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
37
+ t[p] = s[p];
38
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
39
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
40
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
41
+ t[p[i]] = s[p[i]];
42
+ }
43
+ return t;
44
+ };
11
45
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.demo = exports.login = void 0;
46
+ exports.invalidateTokens = exports.login = exports.changePassword = exports.unregister = exports.register = void 0;
47
+ const regExp = __importStar(require("../../../util/regexp"));
48
+ function register(req, reply) {
49
+ var _a, _b;
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const _c = req.data(), { password1: password, password2 } = _c, data = __rest(_c, ["password1", "password2"]);
52
+ if (!data.username) {
53
+ return reply.status(404).send(Error('Username not valid'));
54
+ }
55
+ if (!data.email || !regExp.email.test(data.email)) {
56
+ return reply.status(404).send(Error('Email not valid'));
57
+ }
58
+ if (!password || !regExp.password.test(password)) {
59
+ return reply.status(404).send(Error('Password not valid'));
60
+ }
61
+ if (!password2 || password2 !== password) {
62
+ return reply.status(404).send(Error('Repeated password not match'));
63
+ }
64
+ const publicRole = ((_b = (_a = global.roles) === null || _a === void 0 ? void 0 : _a.public) === null || _b === void 0 ? void 0 : _b.code) || 'public';
65
+ data.roles = (data.requiredRoles || []).map((r) => { var _a; return (_a = global.roles[r]) === null || _a === void 0 ? void 0 : _a.code; }).filter((r) => !!r);
66
+ if (!data.roles.includes(publicRole)) {
67
+ data.roles.push(publicRole);
68
+ }
69
+ const user = yield req.server['userManager'].createUser(Object.assign(Object.assign({}, data), { password: password }));
70
+ if (!user) {
71
+ return reply.status(400).send(Error('User not registered'));
72
+ }
73
+ return user;
74
+ });
75
+ }
76
+ exports.register = register;
77
+ function unregister(req, reply) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const { email, password } = req.data();
80
+ let user = yield req.server['userManager'].retrieveUserByPassword(email, password);
81
+ let isValid = yield req.server['userManager'].isValidUser(user);
82
+ if (!isValid) {
83
+ return reply.status(403).send(Error('Wrong credentials'));
84
+ }
85
+ if (!user.enabled) {
86
+ return reply.status(403).send(Error('User not enabled'));
87
+ }
88
+ user = yield req.server['userManager'].disableUserById(user === null || user === void 0 ? void 0 : user.id);
89
+ isValid = yield req.server['userManager'].isValidUser(user);
90
+ if (!isValid) {
91
+ return reply.status(400).send(Error('User not valid'));
92
+ }
93
+ return { ok: true };
94
+ });
95
+ }
96
+ exports.unregister = unregister;
97
+ function changePassword(req, reply) {
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ const { email, oldPassword, newPassword1, newPassword2 } = req.data();
100
+ if (!newPassword1 || !regExp.password.test(newPassword1)) {
101
+ return reply.status(404).send(Error('New password not valid'));
102
+ }
103
+ if (!newPassword2 || newPassword2 !== newPassword1) {
104
+ return reply.status(404).send(Error('Repeated new password not match'));
105
+ }
106
+ let user = yield req.server['userManager'].retrieveUserByPassword(email, oldPassword);
107
+ let isValid = yield req.server['userManager'].isValidUser(user);
108
+ if (!isValid) {
109
+ return reply.status(403).send(Error('Wrong credentials'));
110
+ }
111
+ if (!user.enabled) {
112
+ return reply.status(403).send(Error('User not enabled'));
113
+ }
114
+ user = yield req.server['userManager'].changePassword(email, newPassword1, oldPassword);
115
+ isValid = yield req.server['userManager'].isValidUser(user);
116
+ return { ok: isValid };
117
+ });
118
+ }
119
+ exports.changePassword = changePassword;
13
120
  function login(req, reply) {
121
+ var _a, _b;
14
122
  return __awaiter(this, void 0, void 0, function* () {
15
- const { email = '', password = '' } = req.data();
16
- const username = email.substr(0, email.indexOf('@')) || 'jerry';
17
- const roleList = [username === 'admin' ? roles.admin : username === 'vminds' ? roles.backoffice : roles.public];
18
- const user = username !== null
19
- ? {
20
- id: 306,
21
- name: username,
22
- email: email,
23
- roles: roleList
24
- }
25
- : null;
26
- const token = user !== null ? yield reply.jwtSign({ sub: user.id, name: user.name, email: user.email }) : null;
27
- reply.send(Object.assign(Object.assign({}, user), { token: token || null, roles: roleList.map((r) => r.code) }));
123
+ const { email, password } = req.data();
124
+ if (!email || !regExp.email.test(email)) {
125
+ return reply.status(404).send(Error('Email not valid'));
126
+ }
127
+ if (!password || !regExp.password.test(password)) {
128
+ return reply.status(404).send(Error('Password not valid'));
129
+ }
130
+ const user = yield req.server['userManager'].retrieveUserByPassword(email, password);
131
+ const isValid = yield req.server['userManager'].isValidUser(user);
132
+ if (!isValid) {
133
+ return reply.status(403).send(Error('Wrong credentials'));
134
+ }
135
+ if (!user.enabled) {
136
+ return reply.status(403).send(Error('User not enabled'));
137
+ }
138
+ const token = user !== null ? yield reply.jwtSign({ sub: user.externalId }) : null;
139
+ return Object.assign(Object.assign({}, user), { token: token || null, roles: (user.roles || [((_b = (_a = global.role) === null || _a === void 0 ? void 0 : _a.public) === null || _b === void 0 ? void 0 : _b.code) || 'public']).map((r) => (r === null || r === void 0 ? void 0 : r.code) || r) });
28
140
  });
29
141
  }
30
142
  exports.login = login;
31
- function demo(req, reply) {
143
+ function invalidateTokens(req, reply) {
144
+ var _a;
32
145
  return __awaiter(this, void 0, void 0, function* () {
33
- reply.send({ ok: req.user });
146
+ let isValid = yield req.server['userManager'].isValidUser(req.user);
147
+ if (!isValid) {
148
+ return reply.status(403).send(Error('User not linked'));
149
+ }
150
+ const user = yield req.server['userManager'].resetExternalId((_a = req.user) === null || _a === void 0 ? void 0 : _a.id);
151
+ isValid = yield req.server['userManager'].isValidUser(user);
152
+ return { ok: isValid };
34
153
  });
35
154
  }
36
- exports.demo = demo;
155
+ exports.invalidateTokens = invalidateTokens;
37
156
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../lib/api/auth/controller/auth.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,SAAsB,KAAK,CAAC,GAAmB,EAAE,KAAmB;;QAClE,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAIhD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAA;QAC/D,MAAM,QAAQ,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC/G,MAAM,IAAI,GACR,QAAQ,KAAK,IAAI;YACf,CAAC,CAAE;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,QAAQ;aACM;YACzB,CAAC,CAAC,IAAI,CAAA;QAIV,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9G,KAAK,CAAC,IAAI,iCAAM,IAAI,KAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAG,CAAA;IACnF,CAAC;CAAA;AArBD,sBAqBC;AAED,SAAsB,IAAI,CAAC,GAAmB,EAAE,KAAmB;;QAGjE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9B,CAAC;CAAA;AAJD,oBAIC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../lib/api/auth/controller/auth.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,112 @@
1
1
  "use strict";
2
2
  module.exports = {
3
3
  config: {
4
- title: 'User useful functions',
5
- description: 'User useful functions',
4
+ title: 'Authentication functions',
5
+ description: 'Authentication functions',
6
6
  controller: 'controller',
7
7
  tags: ['auth'],
8
8
  deprecated: false,
9
- version: false
9
+ version: false,
10
+ enable: true
10
11
  },
11
12
  routes: [
13
+ {
14
+ method: 'POST',
15
+ path: '/register',
16
+ roles: [],
17
+ handler: 'auth.register',
18
+ middlewares: ['global.preAuth', 'global.postAuth'],
19
+ config: {
20
+ title: 'Register new user',
21
+ description: 'Register a new user',
22
+ body: {
23
+ type: 'object',
24
+ properties: {
25
+ username: { type: 'string' },
26
+ email: { type: 'string' },
27
+ password1: { type: 'string' },
28
+ password2: { type: 'string' },
29
+ requiredRoles: { type: 'array', items: { type: 'string' } }
30
+ }
31
+ },
32
+ response: {
33
+ 200: {
34
+ description: 'Default response',
35
+ type: 'object',
36
+ properties: {
37
+ id: { type: 'string' },
38
+ externalId: { type: 'string' },
39
+ username: { type: 'string' },
40
+ email: { type: 'string' },
41
+ enabled: { type: 'boolean' },
42
+ roles: { type: 'array', items: { type: 'string' } }
43
+ }
44
+ }
45
+ }
46
+ }
47
+ },
48
+ {
49
+ method: 'POST',
50
+ path: '/unregister',
51
+ roles: [],
52
+ handler: 'auth.unregister',
53
+ middlewares: ['global.preAuth', 'global.postAuth'],
54
+ config: {
55
+ title: 'Unregister existing user',
56
+ description: 'Unregister an existing user',
57
+ body: {
58
+ type: 'object',
59
+ properties: {
60
+ email: { type: 'string' },
61
+ password: { type: 'string' }
62
+ }
63
+ },
64
+ response: {
65
+ 200: {
66
+ description: 'Default response',
67
+ type: 'object',
68
+ properties: {
69
+ ok: { type: 'boolean' }
70
+ }
71
+ }
72
+ }
73
+ }
74
+ },
75
+ {
76
+ method: 'POST',
77
+ path: '/change-password',
78
+ roles: [],
79
+ handler: 'auth.changePassword',
80
+ middlewares: [],
81
+ config: {
82
+ title: 'Change password',
83
+ description: 'Change password for an existing user',
84
+ body: {
85
+ type: 'object',
86
+ properties: {
87
+ email: { type: 'string' },
88
+ oldPassword: { type: 'string' },
89
+ newPassword1: { type: 'string' },
90
+ newPassword2: { type: 'string' }
91
+ }
92
+ },
93
+ response: {
94
+ 200: {
95
+ description: 'Default response',
96
+ type: 'object',
97
+ properties: {
98
+ ok: { type: 'boolean' }
99
+ }
100
+ }
101
+ }
102
+ }
103
+ },
12
104
  {
13
105
  method: 'POST',
14
106
  path: '/login',
15
107
  roles: [],
16
108
  handler: 'auth.login',
17
- middlewares: [],
109
+ middlewares: ['global.preAuth', 'global.postAuth'],
18
110
  config: {
19
111
  title: 'Login',
20
112
  description: 'Basic login authentication',
@@ -30,24 +122,26 @@ module.exports = {
30
122
  description: 'Default response',
31
123
  type: 'object',
32
124
  properties: {
33
- id: { type: 'number' },
34
- name: { type: 'string' },
35
- token: { type: 'string' },
36
- roles: { type: 'array', items: { type: 'string' } }
125
+ id: { type: 'string' },
126
+ externalId: { type: 'string' },
127
+ username: { type: 'string' },
128
+ email: { type: 'string' },
129
+ roles: { type: 'array', items: { type: 'string' } },
130
+ token: { type: 'string' }
37
131
  }
38
132
  }
39
133
  }
40
134
  }
41
135
  },
42
136
  {
43
- method: 'GET',
44
- path: '/demo',
137
+ method: 'POST',
138
+ path: '/invalidate-tokens',
45
139
  roles: [],
46
- handler: 'auth.demo',
140
+ handler: 'auth.invalidateTokens',
47
141
  middlewares: ['global.isAuthenticated'],
48
142
  config: {
49
- title: 'For debug purpose',
50
- description: 'Demo login authentication',
143
+ title: 'Invalidate all tokens',
144
+ description: 'Invalidate all tokens',
51
145
  response: {
52
146
  200: {
53
147
  description: 'Default response',
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/auth/routes.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE;QACN,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,uBAAuB;QACpC,UAAU,EAAE,YAAY;QACxB,IAAI,EAAE,CAAC,MAAM,CAAC;QAEd,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,KAAK;KACf;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,EAAE;YACf,MAAM,EAAE;gBACN,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,4BAA4B;gBACzC,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC7B;iBACF;gBACD,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACtB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;yBACpD;qBACF;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,2BAA2B;gBACxC,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBACxB;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAA"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/auth/routes.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  module.exports = {
3
3
  config: {
4
- title: 'Health useful functions',
5
- description: 'Health useful functions',
4
+ title: 'Health functions',
5
+ description: 'Health functions',
6
6
  controller: 'controller',
7
7
  tags: ['health']
8
8
  },
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/health/routes.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE;QACN,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,yBAAyB;QACtC,UAAU,EAAE,YAAY;QACxB,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,EAAE;YACf,MAAM,EAAE;gBACN,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,sBAAsB;gBACnC,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBACxB;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAA"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/health/routes.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE;QACN,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,kBAAkB;QAC/B,UAAU,EAAE,YAAY;QACxB,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,EAAE;YACf,MAAM,EAAE;gBACN,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,sBAAsB;gBACnC,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBACxB;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAA"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  module.exports = {
3
3
  config: {
4
- title: 'User useful functions',
5
- description: 'User useful functions',
4
+ title: 'User functions',
5
+ description: 'User functions',
6
6
  controller: 'controller',
7
7
  tags: ['users'],
8
8
  version: false
@@ -11,25 +11,27 @@ module.exports = {
11
11
  {
12
12
  method: 'GET',
13
13
  path: '/',
14
- roles: [],
14
+ roles: [roles.public],
15
15
  handler: 'user.user',
16
16
  middlewares: ['global.isAuthenticated'],
17
17
  config: {
18
18
  title: 'Get current user',
19
19
  description: 'Get current user',
20
20
  response: {
21
- 403: {
22
- description: 'Unauthorized',
23
- type: 'string'
24
- },
25
21
  200: {
26
22
  description: 'Default response',
27
23
  type: 'object',
28
24
  properties: {
29
- id: { type: 'number' },
30
- name: { type: 'string' },
25
+ id: { type: 'string' },
26
+ externalId: { type: 'string' },
27
+ username: { type: 'string' },
31
28
  email: { type: 'string' },
32
- roles: { type: 'array', items: { type: 'string' } }
29
+ enabled: { type: 'boolean' },
30
+ enabledAt: { type: 'string' },
31
+ roles: { type: 'array', items: { type: 'string' } },
32
+ createdAt: { type: 'string' },
33
+ version: { type: 'number' },
34
+ updatedAt: { type: 'string' }
33
35
  }
34
36
  }
35
37
  }
@@ -45,10 +47,6 @@ module.exports = {
45
47
  title: 'Check if is an admin',
46
48
  description: 'Check if the current user is an admin',
47
49
  response: {
48
- 403: {
49
- description: 'Unauthorized',
50
- type: 'string'
51
- },
52
50
  200: {
53
51
  description: 'Default response',
54
52
  type: 'object',