exodus-framework 2.0.955 → 2.0.958

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 (107) hide show
  1. package/lib/app/classes/broadcast.js +79 -0
  2. package/lib/app/classes/cache.js +94 -0
  3. package/lib/app/classes/communication.js +99 -0
  4. package/lib/app/classes/communicationcontext.js +1 -0
  5. package/lib/app/classes/event.js +94 -0
  6. package/lib/app/classes/index.js +105 -0
  7. package/lib/app/classes/managed.js +145 -0
  8. package/lib/app/classes/service.js +232 -0
  9. package/lib/app/classes/servicemodel.js +22 -0
  10. package/lib/app/classes/singleton.js +26 -0
  11. package/lib/app/classes/socket/clienthandler.js +54 -0
  12. package/lib/app/classes/socket/eventhandler.js +51 -0
  13. package/lib/app/classes/socket/index.js +20 -0
  14. package/lib/app/classes/system.js +49 -0
  15. package/lib/app/controller.js +97 -0
  16. package/lib/app/core.js +47 -0
  17. package/lib/app/error.js +66 -0
  18. package/lib/app/exodus.js +97 -0
  19. package/lib/app/index.js +68 -0
  20. package/lib/app/settings.js +161 -0
  21. package/lib/certificates/private_key.pem +27 -0
  22. package/lib/certificates/public_key.pem +9 -0
  23. package/lib/contracts/communication/communication.js +39 -0
  24. package/lib/contracts/communication/index.js +27 -0
  25. package/lib/contracts/communication/operation.js +5 -0
  26. package/lib/contracts/console.js +5 -0
  27. package/lib/contracts/contansts.js +13 -0
  28. package/lib/contracts/core.js +12 -0
  29. package/lib/contracts/entity.js +5 -0
  30. package/lib/contracts/http.js +52 -0
  31. package/lib/contracts/index.js +104 -0
  32. package/lib/contracts/messaging.js +50 -0
  33. package/lib/contracts/security.js +5 -0
  34. package/lib/contracts/service.js +11 -0
  35. package/lib/contracts/session.js +5 -0
  36. package/lib/contracts/settings.js +5 -0
  37. package/lib/contracts/singleton.js +5 -0
  38. package/lib/contracts/socket.js +11 -0
  39. package/lib/contracts/tasks.js +1 -0
  40. package/lib/controllers/api/file.js +24 -0
  41. package/lib/controllers/api/index.js +13 -0
  42. package/lib/controllers/api/log.js +55 -0
  43. package/lib/controllers/api/report.js +55 -0
  44. package/lib/controllers/index.js +16 -0
  45. package/lib/controllers/messaging/application.js +75 -0
  46. package/lib/controllers/messaging/database.js +64 -0
  47. package/lib/controllers/messaging/environment.js +111 -0
  48. package/lib/express.d.js +5 -0
  49. package/lib/index.js +104 -0
  50. package/lib/middlewares/access.js +114 -0
  51. package/lib/middlewares/authentication.js +104 -0
  52. package/lib/middlewares/file.js +41 -0
  53. package/lib/middlewares/index.js +36 -0
  54. package/lib/models/Application.js +65 -0
  55. package/lib/models/DatabaseHost.js +62 -0
  56. package/lib/models/EnvConnection.js +41 -0
  57. package/lib/models/Log.js +67 -0
  58. package/lib/models/Report.js +65 -0
  59. package/lib/models/System.js +54 -0
  60. package/lib/models/index.js +82 -0
  61. package/lib/routes/api/index.js +16 -0
  62. package/lib/routes/api/v1/index.js +38 -0
  63. package/lib/routes/api/v1/logs.js +19 -0
  64. package/lib/routes/api/v1/report.js +19 -0
  65. package/lib/routes/api/v1/sse.js +36 -0
  66. package/lib/routes/index.js +27 -0
  67. package/lib/routes/messaging/index.js +34 -0
  68. package/lib/services/database.d.ts +7 -0
  69. package/lib/services/database.d.ts.map +1 -1
  70. package/lib/services/database.js +158 -0
  71. package/lib/services/ecosystem.js +46 -0
  72. package/lib/services/express.js +162 -0
  73. package/lib/services/file.js +65 -0
  74. package/lib/services/file_new.js +136 -0
  75. package/lib/services/index.js +108 -0
  76. package/lib/services/log.js +26 -0
  77. package/lib/services/rabitmq.js +187 -0
  78. package/lib/services/redis.js +84 -0
  79. package/lib/services/security.js +231 -0
  80. package/lib/services/sequelize.js +313 -0
  81. package/lib/services/socket.js +123 -0
  82. package/lib/services/task/TaskServiceBase.js +17 -0
  83. package/lib/services/task/index.js +40 -0
  84. package/lib/services/task/queue/QueueService.js +48 -0
  85. package/lib/services/task/queue/QueueTask.js +134 -0
  86. package/lib/services/task/queue/SingleQueue.js +68 -0
  87. package/lib/services/task/queue/index.js +27 -0
  88. package/lib/services/task/scheduler/SchedulerService.js +31 -0
  89. package/lib/services/task/scheduler/SchedulerTask.js +211 -0
  90. package/lib/services/task/scheduler/index.js +20 -0
  91. package/lib/services/test.js +27 -0
  92. package/lib/socket.d.js +3 -0
  93. package/lib/tasks/index.js +27 -0
  94. package/lib/tasks/queue/application.js +44 -0
  95. package/lib/tasks/queue/environment.js +92 -0
  96. package/lib/tasks/queue/index.js +20 -0
  97. package/lib/tasks/queue/teste.js +21 -0
  98. package/lib/tasks/schedule/index.js +13 -0
  99. package/lib/tasks/schedule/restart.js +19 -0
  100. package/lib/tasks/schedule/teste.js +61 -0
  101. package/lib/utils/api.js +65 -0
  102. package/lib/utils/database.js +157 -0
  103. package/lib/utils/date.js +28 -0
  104. package/lib/utils/index.js +60 -0
  105. package/lib/utils/logger.js +51 -0
  106. package/lib/utils/session.js +23 -0
  107. package/package.json +1 -1
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EMessagingQueue = void 0;
7
+ let EMessagingQueue = exports.EMessagingQueue = /*#__PURE__*/function (EMessagingQueue) {
8
+ EMessagingQueue["test"] = "exodus.queue.test";
9
+ EMessagingQueue["accountCreated"] = "exodus.account.created";
10
+ EMessagingQueue["accountDelete"] = "exodus.account.delete";
11
+ EMessagingQueue["accountUpdated"] = "exodus.account.updated";
12
+ EMessagingQueue["accountSync"] = "exodus.account.sync";
13
+ EMessagingQueue["environmentSync"] = "exodus.environment.sync";
14
+ EMessagingQueue["environmentCreated"] = "exodus.environment.created";
15
+ EMessagingQueue["environmentDeleted"] = "exodus.environment.deleted";
16
+ EMessagingQueue["environmentUpdatedToken"] = "exodus.environment.updated.token";
17
+ EMessagingQueue["environmentUpdatedDatabase"] = "exodus.environment.updated.database";
18
+ EMessagingQueue["databaseSync"] = "exodus.database.sync";
19
+ EMessagingQueue["databaseCreated"] = "exodus.database.created";
20
+ EMessagingQueue["databaseUpdate"] = "exodus.database.updated";
21
+ EMessagingQueue["databaseDeleted"] = "exodus.database.deleted";
22
+ EMessagingQueue["applicationSync"] = "exodus.application.sync";
23
+ EMessagingQueue["applicationCreated"] = "exodus.application.created";
24
+ EMessagingQueue["applicationUpdate"] = "exodus.application.updated";
25
+ EMessagingQueue["applicationDeleted"] = "exodus.application.deleted";
26
+ EMessagingQueue["smsSend"] = "exodus.sms.send";
27
+ EMessagingQueue["smsSendBulk"] = "exodus.sms.send.bulk";
28
+ EMessagingQueue["smsConfirmationSend"] = "exodus.sms.confirmation.send";
29
+ EMessagingQueue["smsConfirmationSendBulk"] = "exodus.sms.confirmation.send.bulk";
30
+ EMessagingQueue["smsUpdate"] = "exodus.sms.update";
31
+ EMessagingQueue["smsCreateWallet"] = "exodus.sms.create.wallet";
32
+ EMessagingQueue["smsCloseWallet"] = "exodus.sms.close.wallet";
33
+ EMessagingQueue["smsConfirmationCreateWallet"] = "exodus.sms.confirmation.create.wallet";
34
+ EMessagingQueue["whatsappOnMessage"] = "exodus.whatsapp.on-message";
35
+ EMessagingQueue["whatsappOnUpdateMessage"] = "exodus.whatsapp.on-update-message";
36
+ EMessagingQueue["whatsappOnMessageMediaDownload"] = "exodus.whatsapp.on-message-media-download";
37
+ EMessagingQueue["whatsappOnContactUpdate"] = "exodus.whatsapp.on-contact-update";
38
+ EMessagingQueue["whatsappOnContactUpsert"] = "exodus.whatsapp.on-contact-upsert";
39
+ EMessagingQueue["whatsappSendMessage"] = "exodus.whatsapp.send-message";
40
+ EMessagingQueue["whatsappHasAccount"] = "exodus.whatsapp.has-account";
41
+ EMessagingQueue["whatsappHasAccountResponse"] = "exodus.whatsapp.has-account-response";
42
+ EMessagingQueue["whatsappReadAllMessages"] = "exodus.whatsapp.read-all-messages";
43
+ EMessagingQueue["whatsappPresenceUpdate"] = "exodus.whatsapp.presence-update";
44
+ EMessagingQueue["whatsappPresenceSubscribe"] = "exodus.whatsapp.presence-subscribe";
45
+ EMessagingQueue["whatsappOnContactPresenceUpdate"] = "exodus.whatsapp.contact-presence-update";
46
+ EMessagingQueue["conversationOnCreateConnection"] = "exodus.conversation.on-create-connection";
47
+ EMessagingQueue["conversationOnDeleteConnection"] = "exodus.conversation.on-delete-connection";
48
+ EMessagingQueue["conversationOnUpdateConnection"] = "exodus.conversation.on-update-connection";
49
+ return EMessagingQueue;
50
+ }({}); // Mapeamento de tópicos para tipos
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.eEventCommunication = void 0;
7
+ let eEventCommunication = exports.eEventCommunication = /*#__PURE__*/function (eEventCommunication) {
8
+ eEventCommunication["RECEIVED_MASTER_MESSAGE"] = "received.master.message";
9
+ eEventCommunication["RECEIVED_CLUSTER_MESSAGE"] = "received.cluster.message";
10
+ return eEventCommunication;
11
+ }({});
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ESocketEvent = void 0;
7
+ let ESocketEvent = exports.ESocketEvent = /*#__PURE__*/function (ESocketEvent) {
8
+ ESocketEvent["test"] = "exodus.socket.event.test";
9
+ ESocketEvent["test2"] = "exodus.socket.event.test2";
10
+ return ESocketEvent;
11
+ }({}); // Mapeamento de tópicos para tipos
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,24 @@
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
+ require("express-async-errors");
9
+ var _http = require("../../contracts/http");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ // !Tratamento de erros asyncronos
12
+
13
+ class FileController extends _controller.default {
14
+ upload = async (req, res) => {
15
+ this.send({
16
+ message: 'Salvo com sucesso',
17
+ type: 'success',
18
+ status: true,
19
+ data: req.file.filename,
20
+ code: _http.EHttpResponseCode.created
21
+ }, res);
22
+ };
23
+ }
24
+ var _default = exports.default = FileController;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "FileController", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _file.default;
10
+ }
11
+ });
12
+ var _file = _interopRequireDefault(require("./file"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _app = require("../../app");
8
+ var _Log = require("../../models/Log");
9
+ var _services = require("../../services");
10
+ var _utils = require("../../utils");
11
+ class LogController extends _app.HttpController {
12
+ list = async (req, res) => {
13
+ const {
14
+ page = 1,
15
+ filters = {},
16
+ limit = 10,
17
+ order = 'ASC',
18
+ orderBy = 'happenedAt'
19
+ } = req.body;
20
+ const offset = (Number(page) - 1) * Number(limit);
21
+ try {
22
+ const Entity = await _services.SequelizeService.singleton().getModel(_Log.Log, req.tenant.id);
23
+ /* filters */
24
+ const where = (0, _utils.processFilters)(filters);
25
+ const {
26
+ rows,
27
+ count
28
+ } = await Entity.findAndCountAll({
29
+ where,
30
+ order: [[orderBy, order]],
31
+ limit: Number(limit),
32
+ offset: offset < 0 ? 0 : offset
33
+ });
34
+ const pages = Math.ceil(count / Number(limit));
35
+ const hasMore = offset + Number(limit) < count;
36
+ this.send({
37
+ message: 'carregado com sucesso',
38
+ status: true,
39
+ type: 'success',
40
+ data: {
41
+ data: rows,
42
+ total: count,
43
+ pages,
44
+ hasMore
45
+ }
46
+ }, res);
47
+ } catch (error) {
48
+ throw new _app.HttpError({
49
+ message: 'Não foi possível obter a lista de mensagens',
50
+ error
51
+ });
52
+ }
53
+ };
54
+ }
55
+ var _default = exports.default = LogController;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _app = require("../../app");
8
+ var _services = require("../../services");
9
+ var _utils = require("../../utils");
10
+ var _Report = require("../../models/Report");
11
+ class ReportController extends _app.HttpController {
12
+ list = async (req, res) => {
13
+ const {
14
+ page = 1,
15
+ filters = {},
16
+ limit = 10,
17
+ order = 'ASC',
18
+ orderBy = 'category'
19
+ } = req.body;
20
+ const offset = (Number(page) - 1) * Number(limit);
21
+ try {
22
+ const Entity = await _services.SequelizeService.singleton().getModel(_Report.Report, req.tenant.id);
23
+ /* filters */
24
+ const where = (0, _utils.processFilters)(filters);
25
+ const {
26
+ rows,
27
+ count
28
+ } = await Entity.findAndCountAll({
29
+ where,
30
+ order: [[orderBy, order]],
31
+ limit: Number(limit),
32
+ offset: offset < 0 ? 0 : offset
33
+ });
34
+ const pages = Math.ceil(count / Number(limit));
35
+ const hasMore = offset + Number(limit) < count;
36
+ this.send({
37
+ message: 'carregado com sucesso',
38
+ status: true,
39
+ type: 'success',
40
+ data: {
41
+ data: rows,
42
+ total: count,
43
+ pages,
44
+ hasMore
45
+ }
46
+ }, res);
47
+ } catch (error) {
48
+ throw new _app.HttpError({
49
+ message: 'Não foi possível obter a lista de relatórios',
50
+ error
51
+ });
52
+ }
53
+ };
54
+ }
55
+ var _default = exports.default = ReportController;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _api = require("./api");
7
+ Object.keys(_api).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _api[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _api[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _controller = require("../../app/controller");
8
+ var _error = require("../../app/error");
9
+ var _Application = require("../../models/Application");
10
+ var _logger = _interopRequireDefault(require("../../utils/logger"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ //TODO: a ordem de inicialização do sistema impede as tasks estarem disponiveis até o momento
13
+ //TODO: deveria ser assim?
14
+ class ApplicationController extends _controller.MessagingController {
15
+ created = async (data, ack) => {
16
+ /* ApplicationSyncQueue.addJob({ create: data });
17
+ ack(); */
18
+
19
+ try {
20
+ await _Application.Application.create(data);
21
+ } catch (error) {
22
+ new _error.ErrorHandler('Houve um erro ao tentar criar a aplicação', error);
23
+ } finally {
24
+ ack();
25
+ }
26
+ };
27
+ update = async (data, ack) => {
28
+ /* ApplicationSyncQueue.addJob({ update: data });
29
+ ack(); */
30
+
31
+ try {
32
+ const app = await _Application.Application.findByPk(data.uuid);
33
+ if (!app) throw new Error('Aplicação não encontrada: ' + data.uuid);
34
+ await app.update(data.updated);
35
+ } catch (error) {
36
+ new _error.ErrorHandler('Houve um erro ao tentar atualizar a aplicação, check o log...', error);
37
+ } finally {
38
+ ack();
39
+ }
40
+ };
41
+ delete = async (data, ack) => {
42
+ try {
43
+ const app = await _Application.Application.findByPk(data.uuid);
44
+ if (!app) throw new Error('Aplicação não encontrada: ' + data.uuid);
45
+ await app.destroy();
46
+ } catch (error) {
47
+ new _error.ErrorHandler('Houve um erro ao tentar excluír a aplicação', error);
48
+ } finally {
49
+ ack();
50
+ }
51
+ };
52
+ sync = async (data, ack) => {
53
+ try {
54
+ data.forEach(async app => {
55
+ try {
56
+ const host = await _Application.Application.findByPk(app.uuid);
57
+ if (!host) {
58
+ (0, _logger.default)().info(app, `Sincronizando nova integração do banco de dados ${app.name}`);
59
+ this.log(`Sincronizando nova integração do banco de dados ${app.name}`, 'info');
60
+ // ApplicationSyncQueue.addJob({ create: app });
61
+
62
+ await _Application.Application.create(app);
63
+ }
64
+ } catch (error) {
65
+ new _error.ErrorHandler('Houve um erro ao tentar sincronizar uma integração', error);
66
+ }
67
+ });
68
+ } catch (error) {
69
+ new _error.ErrorHandler('Houve um erro ao tentar sincronizar uma integração', error);
70
+ } finally {
71
+ ack();
72
+ }
73
+ };
74
+ }
75
+ var _default = exports.default = ApplicationController;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _controller = require("../../app/controller");
8
+ var _models = require("../../models");
9
+ var _app = require("../../app");
10
+ var _utils = require("../../utils");
11
+ class DatabaseController extends _controller.MessagingController {
12
+ created = async (data, ack) => {
13
+ try {
14
+ await _models.DatabaseHost.create(data);
15
+ } catch (error) {
16
+ new _app.ErrorHandler('Houve um erro ao tentar criar um banco de dados', error);
17
+ } finally {
18
+ ack();
19
+ }
20
+ };
21
+ update = async (data, ack) => {
22
+ try {
23
+ const host = await _models.DatabaseHost.findByPk(data.uuid);
24
+ if (!host) throw new Error('Banco de dados não encontrado');
25
+ await host.update(data.updated);
26
+ } catch (error) {
27
+ new _app.ErrorHandler('Houve um erro ao tentar atualizar um banco de dados', error);
28
+ } finally {
29
+ ack();
30
+ }
31
+ };
32
+ delete = async (data, ack) => {
33
+ try {
34
+ const host = await _models.DatabaseHost.findByPk(data.uuid);
35
+ if (!host) throw new Error('Banco de dados não encontrado');
36
+ await host.destroy();
37
+ } catch (error) {
38
+ new _app.ErrorHandler('Houve um erro ao tentar excluír um banco de dados', error);
39
+ } finally {
40
+ ack();
41
+ }
42
+ };
43
+ sync = async (data, ack) => {
44
+ try {
45
+ data.forEach(async database => {
46
+ try {
47
+ const host = await _models.DatabaseHost.findByPk(database.uuid);
48
+ if (!host) {
49
+ (0, _utils.logger)().info(database, `Sincronizando novo host ${database.host}`);
50
+ this.log(`Sincronizando novo host ${database.host}`, 'info');
51
+ await _models.DatabaseHost.create(database);
52
+ }
53
+ } catch (error) {
54
+ new _app.ErrorHandler('Houve um erro ao tentar sincronizar um novo host', error);
55
+ }
56
+ });
57
+ } catch (error) {
58
+ new _app.ErrorHandler('Houve um erro ao tentar sincronizar um novo host', error);
59
+ } finally {
60
+ ack();
61
+ }
62
+ };
63
+ }
64
+ var _default = exports.default = DatabaseController;
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _app = require("../../app");
8
+ var _models = require("../../models");
9
+ var _services = require("../../services");
10
+ var _utils = require("../../utils");
11
+ //TODO: a ordem de inicialização do sistema impede as tasks estarem disponiveis até o momento
12
+ //TODO: deveria ser assim?
13
+ class EnvironmentController extends _app.MessagingController {
14
+ created = async (data, ack) => {
15
+ /* EnvironmentSyncQueue.addJob({ create: data });
16
+ ack(); */
17
+
18
+ try {
19
+ const db = data.database;
20
+ const token = data.envToken;
21
+ await _services.SequelizeService.singleton().createDB(db, token);
22
+ await _models.EnvDBHost.create({
23
+ envUuid: data.uuid,
24
+ hostUuid: data.database,
25
+ envToken: data.envToken
26
+ });
27
+ this.log(`New database created successfully: ${db}`);
28
+ } catch (error) {
29
+ new _app.ErrorHandler('Erro ao criar o novo banco de dados', error);
30
+ } finally {
31
+ ack();
32
+ }
33
+ };
34
+ deleted = async (data, ack) => {
35
+ try {
36
+ const token = data.token;
37
+ const db = data.database;
38
+ await _services.SequelizeService.singleton().deleteDB(db, token);
39
+ const relation = await _models.EnvDBHost.findOne({
40
+ where: {
41
+ envUuid: data.uuid
42
+ }
43
+ });
44
+ if (!relation) throw new Error('relação env-db não encontrada');
45
+ await relation.destroy();
46
+ this.log(`Database deleted successfully: ${token}`);
47
+ } catch (error) {
48
+ new _app.ErrorHandler('Erro ao deletar a relação env-db', error);
49
+ } finally {
50
+ ack();
51
+ }
52
+ };
53
+ updatedDatabase = async (data, ack) => {
54
+ /* EnvironmentSyncQueue.addJob({ update: data });
55
+ ack(); */
56
+
57
+ try {
58
+ const relation = await _models.EnvDBHost.findOne({
59
+ where: {
60
+ envUuid: data.envUuid
61
+ }
62
+ });
63
+ if (!relation) throw new Error('relação env-db não encontrada');
64
+ await relation.update({
65
+ hostUuid: data.database
66
+ });
67
+ this.log(`A relação para o ambiente ${data.envUuid} foi atualizada, a migração deverá ser realizada de forma manual`);
68
+ } catch (error) {
69
+ new _app.ErrorHandler('Erro ao atualizar a relação EDB', error);
70
+ } finally {
71
+ ack();
72
+ }
73
+ };
74
+ sync = async (data, ack) => {
75
+ /* EnvironmentSyncQueue.addJob({ sync: data });
76
+ ack(); */
77
+
78
+ try {
79
+ data.forEach(async env => {
80
+ try {
81
+ const host = await _models.EnvDBHost.findOne({
82
+ where: {
83
+ envUuid: env.uuid
84
+ }
85
+ });
86
+ if (!host) {
87
+ (0, _utils.logger)().info(env, `Sincronizando relação env-db ${env.uuid}`);
88
+ this.log(`Sincronizando relação env-db ${env.uuid}`, 'info');
89
+ await _models.EnvDBHost.create({
90
+ envUuid: env.uuid,
91
+ hostUuid: env.database,
92
+ envToken: env.envToken
93
+ });
94
+ }
95
+ if (!(await _services.SequelizeService.singleton().hasDB(env.database, env.envToken))) {
96
+ (0, _utils.logger)().info(env, `Sincronizando novo banco de dados ${env.uuid}`);
97
+ this.log(`Sincronizando novo banco de dados ${env.uuid}`, 'info');
98
+ await _services.SequelizeService.singleton().createDB(env.database, env.envToken);
99
+ }
100
+ } catch (error) {
101
+ new _app.ErrorHandler('Houve um erro ao tentar sincronizar um novo ambiente/relação ou banco de dados', error);
102
+ }
103
+ });
104
+ } catch (error) {
105
+ new _app.ErrorHandler('Houve um erro ao tentar sincronizar um novo ambiente/relação ou banco de dados', error);
106
+ } finally {
107
+ ack();
108
+ }
109
+ };
110
+ }
111
+ var _default = exports.default = EnvironmentController;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/lib/index.js ADDED
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {};
7
+ exports.default = void 0;
8
+ var _app = require("./app");
9
+ Object.keys(_app).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
12
+ if (key in exports && exports[key] === _app[key]) return;
13
+ Object.defineProperty(exports, key, {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _app[key];
17
+ }
18
+ });
19
+ });
20
+ var _contracts = require("./contracts");
21
+ Object.keys(_contracts).forEach(function (key) {
22
+ if (key === "default" || key === "__esModule") return;
23
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
24
+ if (key in exports && exports[key] === _contracts[key]) return;
25
+ Object.defineProperty(exports, key, {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _contracts[key];
29
+ }
30
+ });
31
+ });
32
+ var _controllers = require("./controllers");
33
+ Object.keys(_controllers).forEach(function (key) {
34
+ if (key === "default" || key === "__esModule") return;
35
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
36
+ if (key in exports && exports[key] === _controllers[key]) return;
37
+ Object.defineProperty(exports, key, {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _controllers[key];
41
+ }
42
+ });
43
+ });
44
+ var _middlewares = require("./middlewares");
45
+ Object.keys(_middlewares).forEach(function (key) {
46
+ if (key === "default" || key === "__esModule") return;
47
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
48
+ if (key in exports && exports[key] === _middlewares[key]) return;
49
+ Object.defineProperty(exports, key, {
50
+ enumerable: true,
51
+ get: function () {
52
+ return _middlewares[key];
53
+ }
54
+ });
55
+ });
56
+ var _models = require("./models");
57
+ Object.keys(_models).forEach(function (key) {
58
+ if (key === "default" || key === "__esModule") return;
59
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
60
+ if (key in exports && exports[key] === _models[key]) return;
61
+ Object.defineProperty(exports, key, {
62
+ enumerable: true,
63
+ get: function () {
64
+ return _models[key];
65
+ }
66
+ });
67
+ });
68
+ var _services = require("./services");
69
+ Object.keys(_services).forEach(function (key) {
70
+ if (key === "default" || key === "__esModule") return;
71
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
72
+ if (key in exports && exports[key] === _services[key]) return;
73
+ Object.defineProperty(exports, key, {
74
+ enumerable: true,
75
+ get: function () {
76
+ return _services[key];
77
+ }
78
+ });
79
+ });
80
+ var _utils = require("./utils");
81
+ Object.keys(_utils).forEach(function (key) {
82
+ if (key === "default" || key === "__esModule") return;
83
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
84
+ if (key in exports && exports[key] === _utils[key]) return;
85
+ Object.defineProperty(exports, key, {
86
+ enumerable: true,
87
+ get: function () {
88
+ return _utils[key];
89
+ }
90
+ });
91
+ });
92
+ var _tasks = require("./tasks");
93
+ Object.keys(_tasks).forEach(function (key) {
94
+ if (key === "default" || key === "__esModule") return;
95
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
96
+ if (key in exports && exports[key] === _tasks[key]) return;
97
+ Object.defineProperty(exports, key, {
98
+ enumerable: true,
99
+ get: function () {
100
+ return _tasks[key];
101
+ }
102
+ });
103
+ });
104
+ var _default = exports.default = _app.Exodus;