exodus-framework 2.0.755 → 2.0.756

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 (67) hide show
  1. package/lib/app/error.d.ts +16 -0
  2. package/lib/app/error.d.ts.map +1 -1
  3. package/lib/middlewares/access.d.ts.map +1 -1
  4. package/lib/services/express.d.ts.map +1 -1
  5. package/lib/services/rabitmq.d.ts.map +1 -1
  6. package/lib/services/redis.d.ts.map +1 -1
  7. package/lib/services/security.d.ts.map +1 -1
  8. package/lib/services/sequelize.d.ts.map +1 -1
  9. package/lib/services/socket.d.ts.map +1 -1
  10. package/lib/services/task.d.ts.map +1 -1
  11. package/lib/utils/api.d.ts.map +1 -1
  12. package/package.json +1 -1
  13. package/lib/app/app.js +0 -84
  14. package/lib/app/controller.js +0 -95
  15. package/lib/app/core.js +0 -71
  16. package/lib/app/error.js +0 -43
  17. package/lib/app/index.js +0 -72
  18. package/lib/app/service.js +0 -24
  19. package/lib/app/settings.js +0 -138
  20. package/lib/app/singleton.js +0 -29
  21. package/lib/contracts/console.js +0 -5
  22. package/lib/contracts/entity.js +0 -5
  23. package/lib/contracts/http.js +0 -50
  24. package/lib/contracts/index.js +0 -104
  25. package/lib/contracts/messaging.js +0 -25
  26. package/lib/contracts/security.js +0 -5
  27. package/lib/contracts/service.js +0 -5
  28. package/lib/contracts/session.js +0 -5
  29. package/lib/contracts/settings.js +0 -5
  30. package/lib/contracts/singleton.js +0 -5
  31. package/lib/contracts/socket.js +0 -11
  32. package/lib/controllers/api/file.js +0 -24
  33. package/lib/controllers/api/index.js +0 -13
  34. package/lib/controllers/index.js +0 -16
  35. package/lib/controllers/messaging/application.js +0 -63
  36. package/lib/controllers/messaging/database.js +0 -63
  37. package/lib/controllers/messaging/environment.js +0 -100
  38. package/lib/express.d.js +0 -5
  39. package/lib/index.js +0 -92
  40. package/lib/middlewares/access.js +0 -78
  41. package/lib/middlewares/authentication.js +0 -21
  42. package/lib/middlewares/file.js +0 -41
  43. package/lib/middlewares/index.js +0 -27
  44. package/lib/models/Application.js +0 -61
  45. package/lib/models/DatabaseHost.js +0 -62
  46. package/lib/models/EnvConnection.js +0 -41
  47. package/lib/models/index.js +0 -46
  48. package/lib/routes/index.js +0 -16
  49. package/lib/routes/messaging/index.js +0 -34
  50. package/lib/services/error.d.ts +0 -28
  51. package/lib/services/error.d.ts.map +0 -1
  52. package/lib/services/error.js +0 -52
  53. package/lib/services/express.js +0 -152
  54. package/lib/services/file.js +0 -65
  55. package/lib/services/index.js +0 -88
  56. package/lib/services/rabitmq.js +0 -102
  57. package/lib/services/redis.js +0 -60
  58. package/lib/services/security.js +0 -230
  59. package/lib/services/sequelize.js +0 -284
  60. package/lib/services/socket.js +0 -56
  61. package/lib/services/task.js +0 -165
  62. package/lib/utils/api.js +0 -50
  63. package/lib/utils/database.js +0 -157
  64. package/lib/utils/date.js +0 -28
  65. package/lib/utils/index.js +0 -60
  66. package/lib/utils/logger.js +0 -51
  67. package/lib/utils/session.js +0 -23
@@ -1,78 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _dateFns = require("date-fns");
8
- var _app = require("../app");
9
- var _controller = _interopRequireDefault(require("../app/controller"));
10
- var _http = require("../contracts/http");
11
- var _models = require("../models");
12
- var _error = require("../services/error");
13
- var _security = _interopRequireDefault(require("../services/security"));
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- class AccessMiddleware extends _controller.default {
16
- accessLevel = level => {
17
- return (req, res, next) => {
18
- if (!level.includes(req.auth.account.type)) {
19
- throw new _error.ApplicationHttpException({
20
- message: 'Nível de acesso não permitido para esta rota.',
21
- statusCode: _http.EHttpResponseCode.informationBlocked
22
- });
23
- }
24
- next();
25
- };
26
- };
27
- getTenant = async (req, res, next) => {
28
- const account = req.auth?.account;
29
- const tenantId = req.header('X-Exodus-Tenant-ID');
30
- const applicationId = req.header('X-Exodus-Application-ID');
31
- let envUuid = '';
32
-
33
- /* Aplicações */
34
- if (applicationId) {
35
- const application = await _models.Application.findOne({
36
- where: {
37
- token: applicationId
38
- }
39
- });
40
- if (!application) {
41
- throw new _error.ApplicationHttpException({
42
- message: 'Token de aplicação inválido',
43
- statusCode: _http.EHttpResponseCode.informationUnauthorized
44
- });
45
- } else if (!application.active) {
46
- throw new _error.ApplicationHttpException({
47
- message: 'Token desativado',
48
- statusCode: _http.EHttpResponseCode.informationBlocked
49
- });
50
- } else if ((0, _dateFns.isBefore)(application.expiresAt, new Date())) {
51
- throw new _error.ApplicationHttpException({
52
- message: 'Token expirado',
53
- statusCode: _http.EHttpResponseCode.informationBlocked
54
- });
55
- } else {
56
- //valido
57
- const data = await _security.default.singleton().verifySignature(applicationId, _security.default.singleton().getServicePublicKey());
58
- if (!data) {
59
- throw new _error.ApplicationHttpException({
60
- message: 'Token sem autênticidade.',
61
- statusCode: _http.EHttpResponseCode.informationBlocked
62
- });
63
- }
64
- envUuid = data.payload.envUuid;
65
- }
66
- } else if (tenantId) {
67
- envUuid = tenantId;
68
- }
69
- if (account && account.type != 'ADMINISTRATOR') {
70
- envUuid = account.envUuid;
71
- }
72
- req.tenant = {
73
- id: envUuid || _app.Core.settings.getDatabase().service.database
74
- };
75
- next();
76
- };
77
- }
78
- var _default = exports.default = AccessMiddleware;
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _expressJwt = require("express-jwt");
8
- var _app = require("../app");
9
- var _controller = _interopRequireDefault(require("../app/controller"));
10
- var _security = _interopRequireDefault(require("../services/security"));
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- class AuthenticationMiddleware extends _controller.default {
13
- decryptToken = (0, _expressJwt.expressjwt)({
14
- secret: async () => {
15
- return _security.default.singleton().getServicePublicKey().toPEM(false);
16
- },
17
- issuer: _app.Core.settings.getAuthentication().serviceIssuer,
18
- algorithms: ['RS256']
19
- });
20
- }
21
- var _default = exports.default = AuthenticationMiddleware;
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _controller = _interopRequireDefault(require("../app/controller"));
8
- var _multer = _interopRequireDefault(require("multer"));
9
- var fs = _interopRequireWildcard(require("fs"));
10
- var _path = _interopRequireDefault(require("path"));
11
- var _app = require("../app");
12
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- class FileMiddleware extends _controller.default {
16
- storage;
17
- constructor() {
18
- super();
19
- this.initStorage();
20
- }
21
- initStorage() {
22
- this.storage = _multer.default.diskStorage({
23
- destination: async (req, file, cb) => {
24
- !fs.existsSync(_app.Core.settings.getAppication().filePaths.temporary) && fs.mkdirSync(_app.Core.settings.getAppication().filePaths.temporary, {
25
- recursive: true
26
- });
27
- cb(null, _app.Core.settings.getAppication().filePaths.temporary);
28
- },
29
- filename: (req, file, cb) => {
30
- const name = Date.now() + _path.default.extname(file.originalname);
31
- cb(null, name);
32
- }
33
- });
34
- }
35
- upload = field => {
36
- return (0, _multer.default)({
37
- storage: this.storage
38
- }).single(field);
39
- };
40
- }
41
- var _default = exports.default = FileMiddleware;
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "AccessMiddleware", {
7
- enumerable: true,
8
- get: function () {
9
- return _access.default;
10
- }
11
- });
12
- Object.defineProperty(exports, "AuthenticationMiddleware", {
13
- enumerable: true,
14
- get: function () {
15
- return _authentication.default;
16
- }
17
- });
18
- Object.defineProperty(exports, "FileMiddleware", {
19
- enumerable: true,
20
- get: function () {
21
- return _file.default;
22
- }
23
- });
24
- var _access = _interopRequireDefault(require("./access"));
25
- var _authentication = _interopRequireDefault(require("./authentication"));
26
- var _file = _interopRequireDefault(require("./file"));
27
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Application = void 0;
7
- var _sequelize = require("sequelize");
8
- var _database = require("../utils/database");
9
- class Application extends _sequelize.Model {}
10
- exports.Application = Application;
11
- Application.init({
12
- uuid: {
13
- type: _sequelize.DataTypes.UUID,
14
- defaultValue: _sequelize.DataTypes.UUIDV4,
15
- primaryKey: true,
16
- allowNull: false,
17
- autoIncrement: false
18
- },
19
- name: {
20
- type: _sequelize.DataTypes.STRING(200),
21
- allowNull: false
22
- },
23
- token: {
24
- type: _sequelize.DataTypes.TEXT,
25
- allowNull: false
26
- },
27
- key: {
28
- type: _sequelize.DataTypes.TEXT,
29
- allowNull: false
30
- },
31
- acess: {
32
- type: _sequelize.DataTypes.JSON(),
33
- allowNull: true
34
- },
35
- expiresAt: {
36
- type: _sequelize.DataTypes.DATE,
37
- allowNull: false
38
- },
39
- active: {
40
- type: _sequelize.DataTypes.BOOLEAN,
41
- defaultValue: true
42
- },
43
- comments: {
44
- type: _sequelize.DataTypes.STRING(255),
45
- allowNull: true
46
- },
47
- params: {
48
- type: _sequelize.DataTypes.JSON,
49
- defaultValue: {},
50
- allowNull: true
51
- }
52
- }, {
53
- tableName: 'applications',
54
- sequelize: _database.serviceDB,
55
- indexes: [{
56
- fields: ['name']
57
- }, {
58
- fields: ['token'],
59
- unique: true
60
- }]
61
- });
@@ -1,62 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DatabaseHost = void 0;
7
- var _sequelize = require("sequelize");
8
- var _database = require("../utils/database");
9
- class DatabaseHost extends _sequelize.Model {}
10
- exports.DatabaseHost = DatabaseHost;
11
- DatabaseHost.init({
12
- uuid: {
13
- type: _sequelize.DataTypes.UUID,
14
- defaultValue: _sequelize.DataTypes.UUIDV4,
15
- primaryKey: true,
16
- allowNull: false,
17
- autoIncrement: false
18
- },
19
- host: {
20
- type: _sequelize.DataTypes.STRING(200),
21
- allowNull: false
22
- },
23
- name: {
24
- type: _sequelize.DataTypes.STRING(200),
25
- allowNull: false
26
- },
27
- dialect: {
28
- type: _sequelize.DataTypes.ENUM('mysql', 'postgres', 'sqlite', 'mariadb', 'mssql', 'db2', 'snowflake', 'oracle'),
29
- allowNull: false
30
- },
31
- username: {
32
- type: _sequelize.DataTypes.STRING(100),
33
- allowNull: false
34
- },
35
- credential: {
36
- type: _sequelize.DataTypes.TEXT,
37
- allowNull: false
38
- },
39
- password: {
40
- type: _sequelize.DataTypes.TEXT,
41
- allowNull: false
42
- },
43
- active: {
44
- type: _sequelize.DataTypes.BOOLEAN,
45
- defaultValue: true
46
- },
47
- params: {
48
- type: _sequelize.DataTypes.JSON,
49
- defaultValue: {},
50
- allowNull: true
51
- }
52
- }, {
53
- tableName: 'database_hosts',
54
- sequelize: _database.serviceDB,
55
- indexes: [{
56
- fields: ['name'],
57
- unique: true
58
- }, {
59
- fields: ['host'],
60
- unique: true
61
- }]
62
- });
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.EnvDBHost = void 0;
7
- var _sequelize = require("sequelize");
8
- var _utils = require("../utils");
9
- class EnvDBHost extends _sequelize.Model {}
10
- exports.EnvDBHost = EnvDBHost;
11
- EnvDBHost.init({
12
- uuid: {
13
- type: _sequelize.DataTypes.UUID,
14
- defaultValue: _sequelize.DataTypes.UUIDV4,
15
- primaryKey: true,
16
- allowNull: false,
17
- autoIncrement: false
18
- },
19
- hostUuid: {
20
- type: _sequelize.DataTypes.UUID,
21
- allowNull: false
22
- },
23
- envUuid: {
24
- type: _sequelize.DataTypes.UUID,
25
- allowNull: false
26
- },
27
- envToken: {
28
- type: _sequelize.DataTypes.UUID,
29
- allowNull: false
30
- }
31
- }, {
32
- tableName: 'env_dbhost',
33
- sequelize: _utils.serviceDB,
34
- indexes: [{
35
- fields: ['envUuid'],
36
- unique: true
37
- }, {
38
- fields: ['envToken', 'hostUuid'],
39
- unique: true
40
- }]
41
- });
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _exportNames = {
7
- NativeModels: true
8
- };
9
- exports.NativeModels = void 0;
10
- var _DatabaseHost = require("./DatabaseHost");
11
- Object.keys(_DatabaseHost).forEach(function (key) {
12
- if (key === "default" || key === "__esModule") return;
13
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
14
- if (key in exports && exports[key] === _DatabaseHost[key]) return;
15
- Object.defineProperty(exports, key, {
16
- enumerable: true,
17
- get: function () {
18
- return _DatabaseHost[key];
19
- }
20
- });
21
- });
22
- var _EnvConnection = require("./EnvConnection");
23
- Object.keys(_EnvConnection).forEach(function (key) {
24
- if (key === "default" || key === "__esModule") return;
25
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
26
- if (key in exports && exports[key] === _EnvConnection[key]) return;
27
- Object.defineProperty(exports, key, {
28
- enumerable: true,
29
- get: function () {
30
- return _EnvConnection[key];
31
- }
32
- });
33
- });
34
- var _Application = require("./Application");
35
- Object.keys(_Application).forEach(function (key) {
36
- if (key === "default" || key === "__esModule") return;
37
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
38
- if (key in exports && exports[key] === _Application[key]) return;
39
- Object.defineProperty(exports, key, {
40
- enumerable: true,
41
- get: function () {
42
- return _Application[key];
43
- }
44
- });
45
- });
46
- const NativeModels = exports.NativeModels = [_DatabaseHost.DatabaseHost, _EnvConnection.EnvDBHost, _Application.Application];
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _messaging = require("./messaging");
7
- Object.keys(_messaging).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _messaging[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _messaging[key];
14
- }
15
- });
16
- });
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _application = _interopRequireDefault(require("../../controllers/messaging/application"));
8
- var _database = _interopRequireDefault(require("../../controllers/messaging/database"));
9
- var _environment = _interopRequireDefault(require("../../controllers/messaging/environment"));
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- //* Controllers
12
- const databaseController = new _database.default();
13
- const envController = new _environment.default();
14
- const appController = new _application.default();
15
-
16
- //* Definitions
17
- const NativeMessagingRoutes = {
18
- /* Connections Library */
19
- 'exodus.database.created': databaseController.created,
20
- 'exodus.database.updated': databaseController.update,
21
- 'exodus.database.deleted': databaseController.delete,
22
- 'exodus.database.sync': databaseController.sync,
23
- /* Application Integrations */
24
- 'exodus.application.created': appController.created,
25
- 'exodus.application.updated': appController.update,
26
- 'exodus.application.deleted': appController.delete,
27
- 'exodus.application.sync': appController.sync,
28
- /* Environment Sync Database Relations */
29
- 'exodus.environment.created': envController.created,
30
- 'exodus.environment.deleted': envController.deleted,
31
- 'exodus.environment.sync': envController.sync,
32
- 'exodus.environment.updated.database': envController.updatedDatabase
33
- };
34
- var _default = exports.default = NativeMessagingRoutes;
@@ -1,28 +0,0 @@
1
- import { EHttpResponseCode, TApplicationResponse } from '../contracts/http';
2
- import Core from '../app/core';
3
- declare class ExodusErrorBase extends Core {
4
- constructor();
5
- }
6
- export declare class ApplicationHttpException extends ExodusErrorBase {
7
- readonly message: string;
8
- readonly statusCode: number;
9
- readonly level: TApplicationResponse;
10
- data: unknown;
11
- error: Error;
12
- constructor(data: {
13
- message: string;
14
- statusCode?: EHttpResponseCode;
15
- level?: TApplicationResponse;
16
- data?: unknown;
17
- error?: Error;
18
- });
19
- private handle;
20
- }
21
- export declare class ApplicationException extends ExodusErrorBase {
22
- readonly message: string;
23
- error: Error;
24
- constructor(message: string, error?: any);
25
- private handle;
26
- }
27
- export {};
28
- //# sourceMappingURL=error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/services/error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,IAAI,MAAM,aAAa,CAAC;AAE/B,cAAM,eAAgB,SAAQ,IAAI;;CAIjC;AAED,qBAAa,wBAAyB,SAAQ,eAAe;IAC3D,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,KAAK,EAAE,oBAAoB,CAAC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;gBAER,IAAI,EAAE;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,iBAAiB,CAAC;QAC/B,KAAK,CAAC,EAAE,oBAAoB,CAAC;QAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;IAUD,OAAO,CAAC,MAAM;CAKf;AAED,qBAAa,oBAAqB,SAAQ,eAAe;IACvD,SAAgB,OAAO,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;gBAER,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAOxC,OAAO,CAAC,MAAM;CAIf"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ApplicationHttpException = exports.ApplicationException = void 0;
7
- var _logger = _interopRequireDefault(require("../utils/logger"));
8
- var _http = require("../contracts/http");
9
- var _core = _interopRequireDefault(require("../app/core"));
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- class ExodusErrorBase extends _core.default {
12
- constructor() {
13
- super();
14
- }
15
- }
16
- class ApplicationHttpException extends ExodusErrorBase {
17
- message;
18
- statusCode;
19
- level;
20
- data;
21
- error;
22
- constructor(data) {
23
- super();
24
- this.message = data.message;
25
- this.statusCode = data.statusCode || _http.EHttpResponseCode.iternalErro;
26
- this.level = data.level || 'error';
27
- this.data = data.data;
28
- this.error = data.error;
29
- this.handle();
30
- }
31
- handle() {
32
- (0, _logger.default)().warn(this.message, this.statusCode);
33
- (0, _logger.default)().warn(this.data);
34
- this.error && (0, _logger.default)().error(this.error);
35
- }
36
- }
37
- exports.ApplicationHttpException = ApplicationHttpException;
38
- class ApplicationException extends ExodusErrorBase {
39
- message;
40
- error;
41
- constructor(message, error) {
42
- super();
43
- this.message = message;
44
- this.error = error;
45
- this.handle();
46
- }
47
- handle() {
48
- this.log(`${this.message}`, 'danger');
49
- (0, _logger.default)().error(this.error);
50
- }
51
- }
52
- exports.ApplicationException = ApplicationException;
@@ -1,152 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _cors = _interopRequireDefault(require("cors"));
8
- var _express = _interopRequireDefault(require("express"));
9
- require("express-async-errors");
10
- var _expressRequestsLogger = _interopRequireDefault(require("express-requests-logger"));
11
- var http = _interopRequireWildcard(require("http"));
12
- var _qs = _interopRequireDefault(require("qs"));
13
- var _app = require("../app");
14
- var _service = _interopRequireDefault(require("../app/service"));
15
- var _http2 = require("../contracts/http");
16
- var _logger = _interopRequireDefault(require("../utils/logger"));
17
- var _error = require("./error");
18
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
- class ExpressService extends _service.default {
22
- server;
23
- mainRouter;
24
- async init() {
25
- if (!this.mainRouter) throw new _error.ApplicationException('Need router'); //!sem router
26
-
27
- const expss = (0, _express.default)();
28
- this.server = http.createServer(expss);
29
- expss.use('/public', _express.default.static(_app.Core.settings.getHttp().publicPath));
30
- expss.use((0, _expressRequestsLogger.default)({
31
- logger: (0, _logger.default)()
32
- }));
33
- expss.set('query parser', str => _qs.default.parse(str));
34
- expss.use(this.responseTypeMiddleware.bind(this));
35
- expss.use(_express.default.json({
36
- limit: '10mb'
37
- }));
38
- expss.use(_express.default.urlencoded({
39
- extended: true,
40
- limit: '10mb'
41
- }));
42
- expss.use((0, _cors.default)({
43
- origin: '*'
44
- }));
45
- expss.use(this.mainRouter);
46
- expss.use(this.handleAuthorizationFailure.bind(this));
47
- expss.use(this.handleNotFoud.bind(this));
48
- expss.use(this.handleRequestProcessFailure.bind(this));
49
- this.server.listen(_app.Core.settings.getAppication().port, () => {
50
- (0, _logger.default)().info(`servidor iniciado na porta: ${_app.Core.settings.getAppication().port}`);
51
- this.log(`🌍 Http Server Listering On: ${_app.Core.settings.getAppication().port}`, 'success');
52
- });
53
- }
54
- getHttpServer() {
55
- return this.server;
56
- }
57
- sendResponse(objResponse, res, next) {
58
- objResponse.timestamp = Date.now();
59
- if (!objResponse.code) objResponse.code = _http2.EHttpResponseCode.successfullyProcessedInformation;
60
- res.status(objResponse.code);
61
- if (objResponse.location) {
62
- res.location(objResponse.location);
63
- delete objResponse.location;
64
- }
65
- let FormulatedResponse;
66
- switch (_app.Core.settings.getHttp().formulation) {
67
- case 'direct':
68
- if (objResponse['data']) {
69
- FormulatedResponse = objResponse.data;
70
- } else {
71
- FormulatedResponse = objResponse;
72
- }
73
- break;
74
- case 'standart':
75
- FormulatedResponse = objResponse;
76
- break;
77
- default:
78
- FormulatedResponse = objResponse;
79
- break;
80
- }
81
- if (next) {
82
- res.write(JSON.stringify(FormulatedResponse));
83
- next();
84
- } else {
85
- res.send(JSON.stringify(FormulatedResponse));
86
- }
87
- }
88
- responseTypeMiddleware(req, res, next) {
89
- res.contentType('application/json');
90
- next();
91
- }
92
-
93
- //* Handlers
94
- handleNotFoud(req, res) {
95
- this.sendResponse({
96
- message: 'Endereço não encontrado',
97
- type: 'warning',
98
- status: false,
99
- code: _http2.EHttpResponseCode.informationNotFound
100
- }, res);
101
- }
102
- handleAuthorizationFailure(err, req, res, next) {
103
- if (err.name === 'UnauthorizedError') {
104
- throw new _error.ApplicationHttpException({
105
- message: 'Falha na autorização',
106
- statusCode: _http2.EHttpResponseCode.informationUnauthorized
107
- });
108
- } else {
109
- next(err);
110
- }
111
- }
112
- handleRequestProcessFailure = async (err, req, res, _) => {
113
- if (err instanceof _error.ApplicationHttpException) {
114
- return this.sendResponse({
115
- message: err.message,
116
- type: err.level,
117
- status: false,
118
- code: err.statusCode,
119
- data: err.data
120
- }, res);
121
- }
122
- this.sendResponse({
123
- message: 'Houve um erro ao acessar este recurso',
124
- type: 'error',
125
- status: false,
126
- code: 500
127
- }, res);
128
- new _error.ApplicationException('Erro não tratado em uma rota.', err);
129
- };
130
- async checkRequest(params) {
131
- let pass = true;
132
- const need = [];
133
- for (const [key, param] of Object.entries(params)) {
134
- if (!param || param === null || param.length < 1 || typeof param === 'string' && param === '' || typeof param === 'object' && Object.values(param).length < 1) {
135
- pass = false;
136
- need.push(key);
137
- }
138
- }
139
- if (!pass) throw new _error.ApplicationHttpException({
140
- message: 'Requisição incompleta',
141
- statusCode: _http2.EHttpResponseCode.incompleteRequest,
142
- level: 'error',
143
- data: {
144
- need
145
- }
146
- });
147
- }
148
- registerRouter(router) {
149
- this.mainRouter = router;
150
- }
151
- }
152
- var _default = exports.default = ExpressService;