@churchsoln/dbms 1.0.47 → 1.0.49

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 (145) hide show
  1. package/Dockerfile +21 -21
  2. package/Makefile +132 -132
  3. package/app.js +37 -37
  4. package/config/config.js +33 -33
  5. package/config/errorCodes.js +65 -65
  6. package/config/errorMsgs.js +82 -82
  7. package/constants/index.js +94 -94
  8. package/controllers/church.js +100 -100
  9. package/controllers/index.js +6 -6
  10. package/controllers/master.js +138 -138
  11. package/controllers/migration.js +24 -24
  12. package/controllers/seed.js +33 -33
  13. package/db-setup.js +87 -87
  14. package/deployment/docker-compose.local.yml +64 -64
  15. package/deployment/docker-compose.yml +62 -62
  16. package/deployment/nginx/nginx-certs/localhost.crt +22 -22
  17. package/deployment/nginx/nginx-certs/localhost.key +28 -28
  18. package/deployment/nginx/nginx.local.conf +72 -72
  19. package/middlewares/church-filter.js +16 -16
  20. package/migrations/church/20221226151615-create-province.js +27 -27
  21. package/migrations/church/20221226151616-create-city.js +41 -41
  22. package/migrations/church/20221226151617-create-subRole.js +25 -25
  23. package/migrations/church/20221226151618-create-membership.js +68 -68
  24. package/migrations/church/20221226151619-create-member.js +140 -140
  25. package/migrations/church/20221227151615-create-user.js +60 -60
  26. package/migrations/church/20230826140644-create-eventsUpdates.js +29 -29
  27. package/migrations/church/20230904143429-create-ministries.js +26 -26
  28. package/migrations/church/20231021160018-create-gallery.js +28 -28
  29. package/migrations/church/20231105074019-create-feedback.js +28 -28
  30. package/migrations/church/20231111113342-create-banner.js +29 -29
  31. package/migrations/church/20231216105640-create-directoryBoard.js +31 -31
  32. package/migrations/church/20240214160101-create-volunteer.js +31 -31
  33. package/migrations/church/20240330111437-create-download.js +29 -29
  34. package/migrations/church/20240427170617-create-links.js +26 -26
  35. package/migrations/church/20240815170617-create-userTransfer.js +63 -63
  36. package/migrations/church/20240815170620-create-subRolePermission.js +40 -40
  37. package/migrations/church/20240915170620-create-transferType.js +25 -25
  38. package/migrations/church/20240917170620-create-accounts.js +27 -27
  39. package/migrations/church/20240918170621-create-church.js +54 -54
  40. package/migrations/church/20240918170622-create-group.js +61 -61
  41. package/migrations/church/20240918170623-create-groupMembers.js +74 -74
  42. package/migrations/church/20240918170627-create-pledge.js +96 -96
  43. package/migrations/church/20240919170627-create-contributionBatch.js +42 -42
  44. package/migrations/church/20240919170628-create-contributionTransaction.js +82 -82
  45. package/migrations/church/20240919170629-create-contributionTransactionLine.js +74 -74
  46. package/migrations/church/20240919170630-update-groupMembers.js +77 -77
  47. package/migrations/church/20241204170631-create-pledgeAccount.js +55 -55
  48. package/migrations/church/20241204170632-create-memberStatus.js +26 -0
  49. package/migrations/church/20241204170633-update-member.js +33 -0
  50. package/migrations/church/20241204170634-update-membership.js +33 -0
  51. package/migrations/church/20241204170635-update-pledge.js +33 -0
  52. package/migrations/church/20241204170636-update-contributionTransactionLine.js +33 -0
  53. package/migrations/common/20221226140655-create-subscriptionPlan.js +31 -31
  54. package/migrations/common/20221226143006-create-role.js +25 -25
  55. package/migrations/common/20240815170619-create-permission.js +27 -27
  56. package/migrations/common/20240815170620-create-church.js +56 -56
  57. package/migrations/common/20240815170621-create-churchDomain.js +40 -40
  58. package/migrations/common/20240918170621-create-churchPermission.js +53 -53
  59. package/migrations/common/20240918170622-create-user.js +35 -35
  60. package/migrations/common/20240918170627-create-subscriptionPlanPermission.js +53 -53
  61. package/models/church/accounts.js +23 -27
  62. package/models/church/banner.js +29 -29
  63. package/models/church/church.js +62 -62
  64. package/models/church/city.js +23 -23
  65. package/models/church/contributionBatch.js +45 -45
  66. package/models/church/contributionTransaction.js +90 -90
  67. package/models/church/contributionTransactionLine.js +81 -80
  68. package/models/church/directoryBoard.js +33 -33
  69. package/models/church/download.js +35 -35
  70. package/models/church/eventsUpdates.js +29 -29
  71. package/models/church/feedback.js +27 -27
  72. package/models/church/gallery.js +33 -33
  73. package/models/church/group.js +78 -78
  74. package/models/church/groupMembers.js +73 -73
  75. package/models/church/index.js +30 -30
  76. package/models/church/links.js +22 -22
  77. package/models/church/member.js +161 -171
  78. package/models/church/memberStatus.js +22 -0
  79. package/models/church/membership.js +80 -81
  80. package/models/church/ministries.js +16 -16
  81. package/models/church/pledge.js +65 -65
  82. package/models/church/pledgeAccount.js +45 -37
  83. package/models/church/province.js +23 -23
  84. package/models/church/subRole.js +21 -21
  85. package/models/church/subRolePermission.js +22 -22
  86. package/models/church/transferType.js +15 -15
  87. package/models/church/user.js +78 -78
  88. package/models/church/userTransfer.js +45 -45
  89. package/models/church/volunteer.js +33 -33
  90. package/models/common/church.js +58 -58
  91. package/models/common/churchDomain.js +21 -21
  92. package/models/common/churchPermission.js +26 -26
  93. package/models/common/index.js +40 -40
  94. package/models/common/permission.js +17 -17
  95. package/models/common/role.js +15 -15
  96. package/models/common/subscriptionPlan.js +34 -34
  97. package/models/common/subscriptionPlanPermission.js +33 -33
  98. package/models/common/user.js +39 -39
  99. package/package.json +41 -41
  100. package/public/swagger/church.json +521 -521
  101. package/public/swagger/master.json +537 -537
  102. package/public/swagger/migration.json +83 -83
  103. package/public/swagger/seed.json +98 -98
  104. package/queues/db-create.js +9 -9
  105. package/queues/index.js +5 -5
  106. package/queues/master.js +9 -9
  107. package/queues/migration.js +9 -9
  108. package/queues/seed.js +9 -9
  109. package/redis/config.js +5 -5
  110. package/routes/index.js +30 -30
  111. package/routes/v1/church.js +45 -45
  112. package/routes/v1/index.js +7 -7
  113. package/routes/v1/master.js +68 -68
  114. package/routes/v1/migration.js +10 -10
  115. package/routes/v1/seed.js +12 -12
  116. package/seeders/church/20241005124245-province.js +101 -101
  117. package/seeders/church/20241005124547-city.js +87 -87
  118. package/seeders/church/20241005131418-transferType.js +40 -40
  119. package/seeders/church/20241005131419-memberStatus.js +34 -0
  120. package/seeders/common/20241005123516-subscriptionPlan.js +43 -43
  121. package/seeders/common/20241005124105-role.js +38 -38
  122. package/seeders/common/20241005153047-permission.js +252 -242
  123. package/seeders/common/20241005153048-user.js +48 -48
  124. package/services/church.js +312 -312
  125. package/services/index.js +6 -6
  126. package/services/master.js +344 -344
  127. package/services/migration.js +30 -30
  128. package/services/seed.js +39 -39
  129. package/utils/churchManager.js +98 -98
  130. package/utils/crypto.js +40 -40
  131. package/utils/docUpload.js +51 -51
  132. package/utils/encryptDecrypt.js +26 -26
  133. package/utils/index.js +33 -33
  134. package/utils/logger.js +104 -104
  135. package/utils/response.js +108 -108
  136. package/utils/swagger.js +25 -25
  137. package/utils/verifyToken.js +58 -58
  138. package/validators/church.js +154 -154
  139. package/validators/index.js +3 -3
  140. package/validators/master.js +152 -152
  141. package/workers/db-create.js +37 -37
  142. package/workers/index.js +4 -4
  143. package/workers/master.js +50 -50
  144. package/workers/migrations.js +63 -63
  145. package/workers/seed.js +85 -85
package/utils/logger.js CHANGED
@@ -1,104 +1,104 @@
1
- require("winston-daily-rotate-file");
2
- var winston = require("winston");
3
- var requestId = guid();
4
- //Generate a random request ID for identification
5
- function guid() {
6
- var text = "";
7
- var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
8
-
9
- for (var i = 0; i < 32; i++)
10
- text += possible.charAt(Math.floor(Math.random() * possible.length));
11
- return text;
12
- }
13
-
14
- class CustomLogger {
15
- constructor() {
16
- this.logger = null;
17
- winston.loggers.add("logger", {
18
- transports: [
19
- //new files will be generated each day, the date patter indicates the frequency of creating a file.
20
- new winston.transports.DailyRotateFile({
21
- name: "debug-log",
22
- filename: "logs/API-Logger-%DATE%.log",
23
- prepend: true,
24
- datePattern: "YYYY-MM-DD",
25
- format: winston.format.printf(
26
- (info) =>
27
- `${this.getFormattedDate()} | ${requestId} | [${info.level}] | ${
28
- info.message
29
- }`
30
- ),
31
- }),
32
- ],
33
- });
34
- this.logger = winston.loggers.get("logger");
35
- }
36
-
37
- //Get the file name and line number from which the log is called on
38
- _getCallerFile() {
39
- var originalFunc = Error.prepareStackTrace;
40
-
41
- var callerfile;
42
- try {
43
- var err = new Error();
44
- var currentfile;
45
- var number;
46
-
47
- Error.prepareStackTrace = function (err, stack) {
48
- return stack;
49
- };
50
- currentfile = err.stack.shift().getFileName();
51
- while (err.stack.length) {
52
- var st = err.stack.shift();
53
- callerfile = st.getFileName();
54
- number = st.getLineNumber();
55
- if (currentfile !== callerfile) break;
56
- }
57
- } catch (e) {
58
- throw Error(e);
59
- }
60
-
61
- Error.prepareStackTrace = originalFunc;
62
- return callerfile.replace(__dirname, "") + "(" + number + ")";
63
- }
64
-
65
- //Get a formatted date
66
- getFormattedDate() {
67
- let date = new Date();
68
- let day = date.getDate();
69
- let month = date.getMonth() + 1;
70
- let year = date.getFullYear();
71
- let hours = date.getHours();
72
- let minutes = date.getMinutes();
73
-
74
- minutes = minutes < 10 ? "0" + minutes : minutes;
75
- let strTime = hours + ":" + minutes;
76
- return day + "/" + month + "/" + year + " " + strTime;
77
- }
78
-
79
- //Write an error log
80
- error(message) {
81
- this.fileStack = this._getCallerFile();
82
- this.logger.error(message);
83
- return true;
84
- }
85
-
86
- //Write an info log
87
- info(message) {
88
- this.fileStack = this._getCallerFile();
89
- this.logger.info(message);
90
- return true;
91
- }
92
-
93
- //Function used as an express middleware to capture incoming IP address and request ID
94
- requestDetails(loggerInstance) {
95
- return function (req, res, next) {
96
- //this.clientIPAddress = get_ip(req).clientIp
97
- requestId = guid();
98
- req.appLogger = loggerInstance;
99
- next();
100
- };
101
- }
102
- }
103
-
104
- module.exports = new CustomLogger();
1
+ require("winston-daily-rotate-file");
2
+ var winston = require("winston");
3
+ var requestId = guid();
4
+ //Generate a random request ID for identification
5
+ function guid() {
6
+ var text = "";
7
+ var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
8
+
9
+ for (var i = 0; i < 32; i++)
10
+ text += possible.charAt(Math.floor(Math.random() * possible.length));
11
+ return text;
12
+ }
13
+
14
+ class CustomLogger {
15
+ constructor() {
16
+ this.logger = null;
17
+ winston.loggers.add("logger", {
18
+ transports: [
19
+ //new files will be generated each day, the date patter indicates the frequency of creating a file.
20
+ new winston.transports.DailyRotateFile({
21
+ name: "debug-log",
22
+ filename: "logs/API-Logger-%DATE%.log",
23
+ prepend: true,
24
+ datePattern: "YYYY-MM-DD",
25
+ format: winston.format.printf(
26
+ (info) =>
27
+ `${this.getFormattedDate()} | ${requestId} | [${info.level}] | ${
28
+ info.message
29
+ }`
30
+ ),
31
+ }),
32
+ ],
33
+ });
34
+ this.logger = winston.loggers.get("logger");
35
+ }
36
+
37
+ //Get the file name and line number from which the log is called on
38
+ _getCallerFile() {
39
+ var originalFunc = Error.prepareStackTrace;
40
+
41
+ var callerfile;
42
+ try {
43
+ var err = new Error();
44
+ var currentfile;
45
+ var number;
46
+
47
+ Error.prepareStackTrace = function (err, stack) {
48
+ return stack;
49
+ };
50
+ currentfile = err.stack.shift().getFileName();
51
+ while (err.stack.length) {
52
+ var st = err.stack.shift();
53
+ callerfile = st.getFileName();
54
+ number = st.getLineNumber();
55
+ if (currentfile !== callerfile) break;
56
+ }
57
+ } catch (e) {
58
+ throw Error(e);
59
+ }
60
+
61
+ Error.prepareStackTrace = originalFunc;
62
+ return callerfile.replace(__dirname, "") + "(" + number + ")";
63
+ }
64
+
65
+ //Get a formatted date
66
+ getFormattedDate() {
67
+ let date = new Date();
68
+ let day = date.getDate();
69
+ let month = date.getMonth() + 1;
70
+ let year = date.getFullYear();
71
+ let hours = date.getHours();
72
+ let minutes = date.getMinutes();
73
+
74
+ minutes = minutes < 10 ? "0" + minutes : minutes;
75
+ let strTime = hours + ":" + minutes;
76
+ return day + "/" + month + "/" + year + " " + strTime;
77
+ }
78
+
79
+ //Write an error log
80
+ error(message) {
81
+ this.fileStack = this._getCallerFile();
82
+ this.logger.error(message);
83
+ return true;
84
+ }
85
+
86
+ //Write an info log
87
+ info(message) {
88
+ this.fileStack = this._getCallerFile();
89
+ this.logger.info(message);
90
+ return true;
91
+ }
92
+
93
+ //Function used as an express middleware to capture incoming IP address and request ID
94
+ requestDetails(loggerInstance) {
95
+ return function (req, res, next) {
96
+ //this.clientIPAddress = get_ip(req).clientIp
97
+ requestId = guid();
98
+ req.appLogger = loggerInstance;
99
+ next();
100
+ };
101
+ }
102
+ }
103
+
104
+ module.exports = new CustomLogger();
package/utils/response.js CHANGED
@@ -1,108 +1,108 @@
1
- const responseStatus = require("../config/errorCodes");
2
- const messageTypes = require("../config/errorMsgs");
3
- const { encryptData } = require("./encryptDecrypt");
4
- // response class
5
- class Response {
6
- // triggering a success response
7
- async success(req, res, status, data = null, message = "success") {
8
- let ip =
9
- req.headers["x-forwarded-for"] ||
10
- req.connection.remoteAddress ||
11
- req.socket.remoteAddress ||
12
- (req.connection.socket ? req.connection.socket.remoteAddress : null);
13
- if (status == responseStatus.HTTP_OK) {
14
- req.appLogger.info(
15
- `Method: ${req.method} | Status: ${status} | IP : ${ip} | URL : ${
16
- req.protocol
17
- }://${req.get("host")}${req.originalUrl} | Request Body : ${JSON.stringify(
18
- req.body ? req.body : {}
19
- )} | Response : ${JSON.stringify(data)}`
20
- );
21
- const encryptedResponse = await encryptData({ message, data });
22
- return res.status(status).json(encryptedResponse);
23
- } else if (status == responseStatus.HTTP_INTERNAL_SERVER_ERROR) {
24
- req.appLogger.error(
25
- `Method: ${req.method} | Status: ${status} | IP : ${ip} | URL : ${
26
- req.protocol
27
- }://${req.get("host")}${req.originalUrl} | Request Body : ${JSON.stringify(
28
- req.body ? req.body : {}
29
- )} | Error : ${message}`
30
- );
31
- const encryptedResponse = await encryptData(JSON.stringify({ message }));
32
- return res.status(status).json(encryptedResponse);
33
- } else {
34
- req.appLogger.error(
35
- `Method: ${req.method} | Status: ${status} | IP : ${ip} | URL : ${
36
- req.protocol
37
- }://${req.get("host")}${req.originalUrl} | Request Body : ${JSON.stringify(
38
- req.body ? req.body : {}
39
- )} | Error : ${message}`
40
- );
41
- const encryptedResponse = await encryptData({ message, data });
42
- return res.status(status).json(encryptedResponse);
43
- }
44
- }
45
- // triggering a error response
46
- async error(req, res, status, message) {
47
- let ip =
48
- req.headers["x-forwarded-for"] ||
49
- req.connection.remoteAddress ||
50
- req.socket.remoteAddress ||
51
- (req.connection.socket ? req.connection.socket.remoteAddress : null);
52
- req.appLogger.error(
53
- `Method: ${req.method} | Status: ${status} | IP : ${ip} | URL : ${
54
- req.protocol
55
- }://${req.get("host")}${req.originalUrl} | Request Body : ${JSON.stringify(
56
- req.body ? req.body : {}
57
- )} | Error : ${message}`
58
- );
59
- const encryptedResponse = await encryptData({ message });
60
- return res.status(status).json(encryptedResponse);
61
- }
62
- // triggering a invalid response
63
- async invalid(req, res, status, message) {
64
- let ip =
65
- req.headers["x-forwarded-for"] ||
66
- req.connection.remoteAddress ||
67
- req.socket.remoteAddress ||
68
- (req.connection.socket ? req.connection.socket.remoteAddress : null);
69
- req.appLogger.error(
70
- `Method: ${req.method} | Status: ${status} | IP : ${ip} | URL : ${
71
- req.protocol
72
- }://${req.get("host")}${req.originalUrl} | Request Body : ${JSON.stringify(
73
- req.body ? req.body : {}
74
- )} | Error : ${message}`
75
- );
76
- const encryptedResponse = await encryptData({ message });
77
- return res.status(status).json(encryptedResponse);
78
- }
79
- // triggering a joi error response
80
- async joierrors(req, res, err) {
81
- let ip =
82
- req.headers["x-forwarded-for"] ||
83
- req.connection.remoteAddress ||
84
- req.socket.remoteAddress ||
85
- (req.connection.socket ? req.connection.socket.remoteAddress : null);
86
- let error = err.details.reduce((prev, curr) => {
87
- prev[curr.path[0]] = curr.message.replace(/"/g, "");
88
- return prev;
89
- }, {});
90
- let message =
91
- Object.values(error).join(", ") +
92
- ", " +
93
- messageTypes[responseStatus.HTTP_UNPROCESSABLE_ENTITY];
94
- let status = responseStatus.HTTP_UNPROCESSABLE_ENTITY;
95
- req.appLogger.error(
96
- `Method: ${req.method} | Status: ${status} | IP : ${ip} | URL : ${
97
- req.protocol
98
- }://${req.get("host")}${req.originalUrl} | Request Body : ${JSON.stringify(
99
- req.body ? req.body : {}
100
- )} | BadRequestError : ${JSON.stringify(error)}`
101
- );
102
- const encryptedResponse = await encryptData({ message });
103
- return res.status(status).json(encryptedResponse);
104
- }
105
- }
106
-
107
- // exporting the module
108
- module.exports = new Response();
1
+ const responseStatus = require("../config/errorCodes");
2
+ const messageTypes = require("../config/errorMsgs");
3
+ const { encryptData } = require("./encryptDecrypt");
4
+ // response class
5
+ class Response {
6
+ // triggering a success response
7
+ async success(req, res, status, data = null, message = "success") {
8
+ let ip =
9
+ req.headers["x-forwarded-for"] ||
10
+ req.connection.remoteAddress ||
11
+ req.socket.remoteAddress ||
12
+ (req.connection.socket ? req.connection.socket.remoteAddress : null);
13
+ if (status == responseStatus.HTTP_OK) {
14
+ req.appLogger.info(
15
+ `Method: ${req.method} | Status: ${status} | IP : ${ip} | URL : ${
16
+ req.protocol
17
+ }://${req.get("host")}${req.originalUrl} | Request Body : ${JSON.stringify(
18
+ req.body ? req.body : {}
19
+ )} | Response : ${JSON.stringify(data)}`
20
+ );
21
+ const encryptedResponse = await encryptData({ message, data });
22
+ return res.status(status).json(encryptedResponse);
23
+ } else if (status == responseStatus.HTTP_INTERNAL_SERVER_ERROR) {
24
+ req.appLogger.error(
25
+ `Method: ${req.method} | Status: ${status} | IP : ${ip} | URL : ${
26
+ req.protocol
27
+ }://${req.get("host")}${req.originalUrl} | Request Body : ${JSON.stringify(
28
+ req.body ? req.body : {}
29
+ )} | Error : ${message}`
30
+ );
31
+ const encryptedResponse = await encryptData(JSON.stringify({ message }));
32
+ return res.status(status).json(encryptedResponse);
33
+ } else {
34
+ req.appLogger.error(
35
+ `Method: ${req.method} | Status: ${status} | IP : ${ip} | URL : ${
36
+ req.protocol
37
+ }://${req.get("host")}${req.originalUrl} | Request Body : ${JSON.stringify(
38
+ req.body ? req.body : {}
39
+ )} | Error : ${message}`
40
+ );
41
+ const encryptedResponse = await encryptData({ message, data });
42
+ return res.status(status).json(encryptedResponse);
43
+ }
44
+ }
45
+ // triggering a error response
46
+ async error(req, res, status, message) {
47
+ let ip =
48
+ req.headers["x-forwarded-for"] ||
49
+ req.connection.remoteAddress ||
50
+ req.socket.remoteAddress ||
51
+ (req.connection.socket ? req.connection.socket.remoteAddress : null);
52
+ req.appLogger.error(
53
+ `Method: ${req.method} | Status: ${status} | IP : ${ip} | URL : ${
54
+ req.protocol
55
+ }://${req.get("host")}${req.originalUrl} | Request Body : ${JSON.stringify(
56
+ req.body ? req.body : {}
57
+ )} | Error : ${message}`
58
+ );
59
+ const encryptedResponse = await encryptData({ message });
60
+ return res.status(status).json(encryptedResponse);
61
+ }
62
+ // triggering a invalid response
63
+ async invalid(req, res, status, message) {
64
+ let ip =
65
+ req.headers["x-forwarded-for"] ||
66
+ req.connection.remoteAddress ||
67
+ req.socket.remoteAddress ||
68
+ (req.connection.socket ? req.connection.socket.remoteAddress : null);
69
+ req.appLogger.error(
70
+ `Method: ${req.method} | Status: ${status} | IP : ${ip} | URL : ${
71
+ req.protocol
72
+ }://${req.get("host")}${req.originalUrl} | Request Body : ${JSON.stringify(
73
+ req.body ? req.body : {}
74
+ )} | Error : ${message}`
75
+ );
76
+ const encryptedResponse = await encryptData({ message });
77
+ return res.status(status).json(encryptedResponse);
78
+ }
79
+ // triggering a joi error response
80
+ async joierrors(req, res, err) {
81
+ let ip =
82
+ req.headers["x-forwarded-for"] ||
83
+ req.connection.remoteAddress ||
84
+ req.socket.remoteAddress ||
85
+ (req.connection.socket ? req.connection.socket.remoteAddress : null);
86
+ let error = err.details.reduce((prev, curr) => {
87
+ prev[curr.path[0]] = curr.message.replace(/"/g, "");
88
+ return prev;
89
+ }, {});
90
+ let message =
91
+ Object.values(error).join(", ") +
92
+ ", " +
93
+ messageTypes[responseStatus.HTTP_UNPROCESSABLE_ENTITY];
94
+ let status = responseStatus.HTTP_UNPROCESSABLE_ENTITY;
95
+ req.appLogger.error(
96
+ `Method: ${req.method} | Status: ${status} | IP : ${ip} | URL : ${
97
+ req.protocol
98
+ }://${req.get("host")}${req.originalUrl} | Request Body : ${JSON.stringify(
99
+ req.body ? req.body : {}
100
+ )} | BadRequestError : ${JSON.stringify(error)}`
101
+ );
102
+ const encryptedResponse = await encryptData({ message });
103
+ return res.status(status).json(encryptedResponse);
104
+ }
105
+ }
106
+
107
+ // exporting the module
108
+ module.exports = new Response();
package/utils/swagger.js CHANGED
@@ -1,25 +1,25 @@
1
- const options = {
2
- explorer: true,
3
- swaggerOptions: {
4
- persistAuthorization: true,
5
- urls: [
6
- {
7
- url: "/dbms/api/public/swagger/church.json",
8
- name: "Church APIs",
9
- },
10
- {
11
- url: "/dbms/api/public/swagger/migration.json",
12
- name: "Migration APIs",
13
- },
14
- {
15
- url: "/dbms/api/public/swagger/seed.json",
16
- name: "Seed APIs",
17
- },
18
- {
19
- url: "/dbms/api/public/swagger/master.json",
20
- name: "Master APIs",
21
- },
22
- ],
23
- },
24
- };
25
- module.exports = options;
1
+ const options = {
2
+ explorer: true,
3
+ swaggerOptions: {
4
+ persistAuthorization: true,
5
+ urls: [
6
+ {
7
+ url: "/dbms/api/public/swagger/church.json",
8
+ name: "Church APIs",
9
+ },
10
+ {
11
+ url: "/dbms/api/public/swagger/migration.json",
12
+ name: "Migration APIs",
13
+ },
14
+ {
15
+ url: "/dbms/api/public/swagger/seed.json",
16
+ name: "Seed APIs",
17
+ },
18
+ {
19
+ url: "/dbms/api/public/swagger/master.json",
20
+ name: "Master APIs",
21
+ },
22
+ ],
23
+ },
24
+ };
25
+ module.exports = options;
@@ -1,58 +1,58 @@
1
- const jwt = require("jsonwebtoken");
2
- const errorCodes = require("../config/errorCodes");
3
- const errorMessages = require("../config/errorMsgs");
4
- const commonDb = require("../models/common");
5
- const cryptr = require("./crypto");
6
- const response = require("./response");
7
-
8
- const verifyToken = async (req, res, next) => {
9
- let token = req.headers["x-access-token"] || req.headers["token"];
10
- if (token) {
11
- token = token.replace("Bearer ", "");
12
- return jwt.verify(token, process.env.JWT_SECRET, async (err, payload) => {
13
- if (err) {
14
- response.invalid(
15
- req,
16
- res,
17
- errorCodes.HTTP_UNAUTHORIZED,
18
- errorMessages[errorCodes.HTTP_UNAUTHORIZED]
19
- );
20
- } else {
21
- let { id } = payload;
22
- if (!id) {
23
- return response.invalid(
24
- req,
25
- res,
26
- errorCodes.HTTP_UNAUTHORIZED,
27
- errorMessages[errorCodes.HTTP_UNAUTHORIZED]
28
- );
29
- }
30
- id = cryptr.decrypt(id);
31
- const userData = await commonDb.user.findOne({
32
- where: { id, status: true },
33
- attributes: commonDb.user.selectedFields,
34
- raw: true,
35
- });
36
- if (!userData)
37
- return response.invalid(
38
- req,
39
- res,
40
- errorCodes.HTTP_UNAUTHORIZED,
41
- errorMessages[errorCodes.HTTP_UNAUTHORIZED]
42
- );
43
- req.user = {};
44
- req.user = { ...userData, token };
45
- next();
46
- }
47
- });
48
- } else {
49
- response.invalid(
50
- req,
51
- res,
52
- errorCodes.HTTP_UNAUTHORIZED,
53
- errorMessages[errorCodes.HTTP_UNAUTHORIZED]
54
- );
55
- }
56
- };
57
-
58
- module.exports = verifyToken;
1
+ const jwt = require("jsonwebtoken");
2
+ const errorCodes = require("../config/errorCodes");
3
+ const errorMessages = require("../config/errorMsgs");
4
+ const commonDb = require("../models/common");
5
+ const cryptr = require("./crypto");
6
+ const response = require("./response");
7
+
8
+ const verifyToken = async (req, res, next) => {
9
+ let token = req.headers["x-access-token"] || req.headers["token"];
10
+ if (token) {
11
+ token = token.replace("Bearer ", "");
12
+ return jwt.verify(token, process.env.JWT_SECRET, async (err, payload) => {
13
+ if (err) {
14
+ response.invalid(
15
+ req,
16
+ res,
17
+ errorCodes.HTTP_UNAUTHORIZED,
18
+ errorMessages[errorCodes.HTTP_UNAUTHORIZED]
19
+ );
20
+ } else {
21
+ let { id } = payload;
22
+ if (!id) {
23
+ return response.invalid(
24
+ req,
25
+ res,
26
+ errorCodes.HTTP_UNAUTHORIZED,
27
+ errorMessages[errorCodes.HTTP_UNAUTHORIZED]
28
+ );
29
+ }
30
+ id = cryptr.decrypt(id);
31
+ const userData = await commonDb.user.findOne({
32
+ where: { id, status: true },
33
+ attributes: commonDb.user.selectedFields,
34
+ raw: true,
35
+ });
36
+ if (!userData)
37
+ return response.invalid(
38
+ req,
39
+ res,
40
+ errorCodes.HTTP_UNAUTHORIZED,
41
+ errorMessages[errorCodes.HTTP_UNAUTHORIZED]
42
+ );
43
+ req.user = {};
44
+ req.user = { ...userData, token };
45
+ next();
46
+ }
47
+ });
48
+ } else {
49
+ response.invalid(
50
+ req,
51
+ res,
52
+ errorCodes.HTTP_UNAUTHORIZED,
53
+ errorMessages[errorCodes.HTTP_UNAUTHORIZED]
54
+ );
55
+ }
56
+ };
57
+
58
+ module.exports = verifyToken;