@modular-rest/server 1.4.2 → 1.4.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modular-rest/server",
3
- "version": "1.4.2",
3
+ "version": "1.4.3",
4
4
  "description": "a nodejs module based on KOAJS for developing Rest-APIs in a modular solution.",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -26,8 +26,8 @@
26
26
  "@koa/cors": "^3.1.0",
27
27
  "colog": "^1.0.4",
28
28
  "file-system": "^2.2.2",
29
- "generate-rsa-keypair": "^0.2.1",
30
29
  "jsonwebtoken": "^8.5.1",
30
+ "keypair": "^1.0.4",
31
31
  "koa": "^2.5.3",
32
32
  "koa-body": "^4.2.0",
33
33
  "koa-router": "^7.4.0",
@@ -1,34 +1,32 @@
1
- let DataInsertion = require('./data_insertion');
2
- let JWT = require('../services/jwt/service');
3
- let FileService = require('../services/file/service');
1
+ let DataInsertion = require("./data_insertion");
2
+ let JWT = require("../services/jwt/service");
3
+ let FileService = require("../services/file/service");
4
4
 
5
5
  module.exports.setup = async ({ keypair, adminUser, uploadDirectory }) => {
6
+ /**
7
+ * Json web Token
8
+ *
9
+ * Setup private and public keys for JWT module
10
+ */
11
+ if (!keypair) {
12
+ // generate new keypair
13
+ const generateKeypair = require("keypair");
14
+ keypair = generateKeypair();
15
+ }
6
16
 
7
- /**
8
- * Json web Token
9
- *
10
- * Setup private and public keys for JWT module
11
- */
12
- if (!keypair) {
13
- // generate new keypair
14
- var generateRSAKeypair = require('generate-rsa-keypair')
15
- keypair = generateRSAKeypair()
16
- }
17
+ JWT.main.setKies(keypair.private, keypair.public);
17
18
 
18
- JWT.main.setKies(keypair.private, keypair.public);
19
+ /**
20
+ * Data Insertion
21
+ *
22
+ * Insert permissions and admin user
23
+ * for the first time
24
+ */
25
+ await DataInsertion.createPermissions();
26
+ await DataInsertion.createAdminUser(adminUser);
19
27
 
20
- /**
21
- * Data Insertion
22
- *
23
- * Insert permissions and admin user
24
- * for the first time
25
- */
26
- await DataInsertion.createPermissions();
27
- await DataInsertion.createAdminUser(adminUser)
28
-
29
- /**
30
- * File Service
31
- */
32
- FileService.setUploadDirectory(uploadDirectory);
33
-
34
- }
28
+ /**
29
+ * File Service
30
+ */
31
+ FileService.setUploadDirectory(uploadDirectory);
32
+ };
package/src/index.js CHANGED
@@ -1,57 +1,57 @@
1
1
  // Application
2
- const createRest = require('./application');
3
- const Schema = require('mongoose').Schema;
2
+ const createRest = require("./application");
3
+ const Schema = require("mongoose").Schema;
4
4
 
5
5
  // Utilities
6
- const paginator = require('./class/paginator');
7
- const reply = require('./class/reply');
8
- const validator = require('./class/validator');
9
- const {
10
- getCollection
11
- } = require('./services/data_provider/service');
12
- const TypeCasters = require('./services/data_provider/typeCasters');
6
+ const paginator = require("./class/paginator");
7
+ const reply = require("./class/reply");
8
+ const validator = require("./class/validator");
9
+ const { getCollection } = require("./services/data_provider/service");
10
+ const TypeCasters = require("./services/data_provider/typeCasters");
13
11
 
14
12
  // Base class
15
- const CollectionDefinition = require('./class/collection_definition');
16
- const Schemas = require('./class/db_schemas');
17
- const DatabaseTrigger = require('./class/database_trigger');
18
- const SecurityClass = require('./class/security');
13
+ const CollectionDefinition = require("./class/collection_definition");
14
+ const Schemas = require("./class/db_schemas");
15
+ const DatabaseTrigger = require("./class/database_trigger");
16
+ const SecurityClass = require("./class/security");
19
17
 
20
- const middleware = require('./middlewares');
18
+ const middleware = require("./middlewares");
21
19
 
22
20
  module.exports = {
23
- createRest,
24
-
25
- //
26
- // Utilities
27
- //
28
- reply,
29
- TypeCasters,
30
-
31
- /**
32
- * @type {import('./class/paginator').create}
33
- */
34
- paginator,
35
-
36
- /**
37
- * @type {import('./class/validator')}
38
- */
39
- validator,
40
-
41
- /**
42
- * @type {import('./services/data_provider/service').getCollection}
43
- * @return {import('mongoose').Model} Mongoose model https://mongoosejs.com/docs/api/model.html
44
- */
45
- getCollection,
46
-
47
- //
48
- // Base class
49
- //
50
- CollectionDefinition,
51
- Schemas,
52
- Schema,
53
- DatabaseTrigger,
54
-
55
- ...SecurityClass,
56
- middleware
57
- }
21
+ createRest,
22
+
23
+ //
24
+ // Utilities
25
+ //
26
+ reply,
27
+ TypeCasters,
28
+
29
+ /**
30
+ * @type {import('./class/paginator').create}
31
+ */
32
+ paginator,
33
+
34
+ /**
35
+ * @type {import('./class/validator')}
36
+ */
37
+ validator,
38
+
39
+ /**
40
+ * @type {import('./services/data_provider/service').getCollection}
41
+ * @return {import('mongoose').Model} Mongoose model https://mongoosejs.com/docs/api/model.html
42
+ */
43
+ getCollection,
44
+
45
+ //
46
+ // Base class
47
+ //
48
+ CollectionDefinition,
49
+ Schemas,
50
+ Schema,
51
+ DatabaseTrigger,
52
+
53
+ ...SecurityClass,
54
+
55
+ // Middlewares
56
+ middleware,
57
+ };
@@ -1,24 +1,30 @@
1
- let validateObject = require('./class/validator');
2
- const userManager = require('./services/user_manager/service');
1
+ let validateObject = require("./class/validator");
2
+ const userManager = require("./services/user_manager/service");
3
3
 
4
- module.exports.auth = async (ctx, next) =>
5
- {
6
- let headers = ctx.header;
7
- let headersValidated = validateObject(headers, 'authorization');
4
+ /**
5
+ * Authentication middleware
6
+ * It checks if incoming request has a valid token in header.authorization
7
+ *
8
+ * @param {Object} ctx - Koa context
9
+ * @param {Function} next - Koa next function
10
+ * @returns {Promise<void>}
11
+ */
12
+ module.exports.auth = async (ctx, next) => {
13
+ let headers = ctx.header;
14
+ let headersValidated = validateObject(headers, "authorization");
8
15
 
9
- if(!headersValidated.isValid)
10
- ctx.throw(401 , 'authentication is required');
11
-
12
- let token = headers.authorization;
13
-
14
- await userManager.main.getUserByToken(token)
15
- .then(async user =>
16
- {
17
- ctx.state.user = user;
18
- await next();
19
- })
20
- .catch(err => {
21
- console.log(err);
22
- ctx.throw(err.status || 412, err.message);
23
- });
24
- }
16
+ if (!headersValidated.isValid) ctx.throw(401, "authentication is required");
17
+
18
+ let token = headers.authorization;
19
+
20
+ await userManager.main
21
+ .getUserByToken(token)
22
+ .then(async (user) => {
23
+ ctx.state.user = user;
24
+ await next();
25
+ })
26
+ .catch((err) => {
27
+ console.log(err);
28
+ ctx.throw(err.status || 412, err.message);
29
+ });
30
+ };