easywork-common-lib 1.0.379 → 1.0.381
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/dist/common/database/base.entity.d.ts +27 -0
- package/dist/common/index.d.ts +7 -0
- package/dist/common/index.js +24 -0
- package/dist/common/index.js.map +1 -0
- package/dist/entities/app_config/app-config.entity.d.ts +5 -0
- package/dist/entities/app_config/app-config.entity.js +33 -0
- package/dist/entities/app_config/app-config.entity.js.map +1 -0
- package/dist/entities/currency.entity.d.ts +6 -0
- package/dist/entities/currency.entity.js +43 -0
- package/dist/entities/currency.entity.js.map +1 -0
- package/dist/entities/drive/attached_object.entity.d.ts +17 -0
- package/dist/entities/drive/attached_object.entity.js +125 -0
- package/dist/entities/drive/attached_object.entity.js.map +1 -0
- package/dist/entities/drive/file.entity.d.ts +14 -0
- package/dist/entities/drive/file.entity.js +88 -0
- package/dist/entities/drive/file.entity.js.map +1 -0
- package/dist/entities/drive/folder.entity.d.ts +14 -0
- package/dist/entities/drive/folder.entity.js +108 -0
- package/dist/entities/drive/folder.entity.js.map +1 -0
- package/dist/entities/drive/index.d.ts +3 -0
- package/dist/entities/drive/index.js +20 -0
- package/dist/entities/drive/index.js.map +1 -0
- package/dist/entities/easyapp/filter-view.entity.d.ts +7 -0
- package/dist/entities/easyapp/filter-view.entity.js +41 -0
- package/dist/entities/easyapp/filter-view.entity.js.map +1 -0
- package/dist/entities/email.entity.d.ts +5 -0
- package/dist/entities/email.entity.js +36 -0
- package/dist/entities/email.entity.js.map +1 -0
- package/dist/entities/group.entity.d.ts +5 -0
- package/dist/entities/group.entity.js +33 -0
- package/dist/entities/group.entity.js.map +1 -0
- package/dist/entities/helpers/entity_file.entity.d.ts +10 -0
- package/dist/entities/helpers/entity_file.entity.js +61 -0
- package/dist/entities/helpers/entity_file.entity.js.map +1 -0
- package/dist/entities/helpers/entity_folder.entity.d.ts +10 -0
- package/dist/entities/helpers/entity_folder.entity.js +61 -0
- package/dist/entities/helpers/entity_folder.entity.js.map +1 -0
- package/dist/entities/helpers/index.d.ts +4 -0
- package/dist/entities/helpers/sales/common/client_sources.entity.d.ts +5 -0
- package/dist/entities/helpers/sales/common/client_sources.entity.js +36 -0
- package/dist/entities/helpers/sales/common/client_sources.entity.js.map +1 -0
- package/dist/entities/helpers/sales/common/client_types.entity.d.ts +5 -0
- package/dist/entities/helpers/sales/common/client_types.entity.js +36 -0
- package/dist/entities/helpers/sales/common/client_types.entity.js.map +1 -0
- package/dist/entities/helpers/sales/contact/contact_email.entity.d.ts +11 -0
- package/dist/entities/helpers/sales/contact/contact_email.entity.js +68 -0
- package/dist/entities/helpers/sales/contact/contact_email.entity.js.map +1 -0
- package/dist/entities/helpers/sales/contact/contact_insurance.entity.d.ts +11 -0
- package/dist/entities/helpers/sales/contact/contact_insurance.entity.js +68 -0
- package/dist/entities/helpers/sales/contact/contact_insurance.entity.js.map +1 -0
- package/dist/entities/helpers/sales/contact/contact_phone.entity.d.ts +11 -0
- package/dist/entities/helpers/sales/contact/contact_phone.entity.js +68 -0
- package/dist/entities/helpers/sales/contact/contact_phone.entity.js.map +1 -0
- package/dist/entities/helpers/sales/contact/index.d.ts +5 -0
- package/dist/entities/helpers/sales/contact/index.js +22 -0
- package/dist/entities/helpers/sales/contact/index.js.map +1 -0
- package/dist/entities/helpers/sales/index.d.ts +6 -0
- package/dist/entities/helpers/sales/lead/h_lead_source.entity.d.ts +4 -0
- package/dist/entities/helpers/sales/lead/h_lead_source.entity.js +30 -0
- package/dist/entities/helpers/sales/lead/h_lead_source.entity.js.map +1 -0
- package/dist/entities/helpers/sales/lead/h_lead_stage.entity.d.ts +5 -0
- package/dist/entities/helpers/sales/lead/h_lead_stage.entity.js +36 -0
- package/dist/entities/helpers/sales/lead/h_lead_stage.entity.js.map +1 -0
- package/dist/entities/helpers/sales/lead/h_lead_types.entity.d.ts +4 -0
- package/dist/entities/helpers/sales/lead/h_lead_types.entity.js +30 -0
- package/dist/entities/helpers/sales/lead/h_lead_types.entity.js.map +1 -0
- package/dist/entities/helpers/sales/lead/index.d.ts +6 -0
- package/dist/entities/helpers/sales/lead/index.js +23 -0
- package/dist/entities/helpers/sales/lead/index.js.map +1 -0
- package/dist/entities/helpers/sales/lead/lead_cancel_reazon.entity.d.ts +4 -0
- package/dist/entities/helpers/sales/lead/lead_cancel_reazon.entity.js +28 -0
- package/dist/entities/helpers/sales/lead/lead_cancel_reazon.entity.js.map +1 -0
- package/dist/entities/helpers/sales/lead/lead_email.entity.d.ts +11 -0
- package/dist/entities/helpers/sales/lead/lead_email.entity.js +66 -0
- package/dist/entities/helpers/sales/lead/lead_email.entity.js.map +1 -0
- package/dist/entities/helpers/sales/lead/lead_phone.entity.d.ts +11 -0
- package/dist/entities/helpers/sales/lead/lead_phone.entity.js +66 -0
- package/dist/entities/helpers/sales/lead/lead_phone.entity.js.map +1 -0
- package/dist/entities/helpers/sales/poliza/index.d.ts +9 -0
- package/dist/entities/helpers/sales/poliza/poliza_beneficiary.entity.d.ts +12 -0
- package/dist/entities/helpers/sales/poliza/poliza_beneficiary.entity.js +73 -0
- package/dist/entities/helpers/sales/poliza/poliza_beneficiary.entity.js.map +1 -0
- package/dist/entities/helpers/sales/poliza/poliza_file.entity.d.ts +11 -0
- package/dist/entities/helpers/sales/poliza/poliza_file.entity.js +68 -0
- package/dist/entities/helpers/sales/poliza/poliza_file.entity.js.map +1 -0
- package/dist/entities/helpers/tools/index.d.ts +1 -0
- package/dist/entities/helpers/tools/index.js +18 -0
- package/dist/entities/helpers/tools/index.js.map +1 -0
- package/dist/entities/helpers/tools/task_crm.entity.d.ts +17 -0
- package/dist/entities/helpers/tools/task_crm.entity.js +121 -0
- package/dist/entities/helpers/tools/task_crm.entity.js.map +1 -0
- package/dist/entities/imap-config.entity.d.ts +11 -0
- package/dist/entities/imap-config.entity.js +61 -0
- package/dist/entities/imap-config.entity.js.map +1 -0
- package/dist/entities/index.d.ts +26 -0
- package/dist/entities/index.js +43 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/menu-permissions.entity.d.ts +7 -0
- package/dist/entities/menu-permissions.entity.js +42 -0
- package/dist/entities/menu-permissions.entity.js.map +1 -0
- package/dist/entities/notifications/index.d.ts +2 -0
- package/dist/entities/notifications/index.js +19 -0
- package/dist/entities/notifications/index.js.map +1 -0
- package/dist/entities/notifications/notification.entity.d.ts +15 -0
- package/dist/entities/notifications/notification.entity.js +119 -0
- package/dist/entities/notifications/notification.entity.js.map +1 -0
- package/dist/entities/notifications/push-token.entity.d.ts +7 -0
- package/dist/entities/notifications/push-token.entity.js +45 -0
- package/dist/entities/notifications/push-token.entity.js.map +1 -0
- package/dist/entities/otp-log.entity.d.ts +8 -0
- package/dist/entities/otp-log.entity.js +49 -0
- package/dist/entities/otp-log.entity.js.map +1 -0
- package/dist/entities/permission.entity.d.ts +7 -0
- package/dist/entities/permission.entity.js +46 -0
- package/dist/entities/permission.entity.js.map +1 -0
- package/dist/entities/phone.entity.d.ts +5 -0
- package/dist/entities/phone.entity.js +36 -0
- package/dist/entities/phone.entity.js.map +1 -0
- package/dist/entities/profile.entity.d.ts +9 -0
- package/dist/entities/protocol.entity.d.ts +8 -0
- package/dist/entities/protocol.entity.js +46 -0
- package/dist/entities/protocol.entity.js.map +1 -0
- package/dist/entities/refresh-token.entity.d.ts +8 -0
- package/dist/entities/refresh-token.entity.js +46 -0
- package/dist/entities/refresh-token.entity.js.map +1 -0
- package/dist/entities/role.entity.d.ts +5 -0
- package/dist/entities/role.entity.js +36 -0
- package/dist/entities/role.entity.js.map +1 -0
- package/dist/entities/sales/agente-intermediario.entity.d.ts +5 -0
- package/dist/entities/sales/agente-intermediario.entity.js +34 -0
- package/dist/entities/sales/agente-intermediario.entity.js.map +1 -0
- package/dist/entities/sales/beneficiarios/person.entity.d.ts +10 -0
- package/dist/entities/sales/beneficiarios/person.entity.js +64 -0
- package/dist/entities/sales/beneficiarios/person.entity.js.map +1 -0
- package/dist/entities/sales/beneficiarios/vehicle.entity.d.ts +13 -0
- package/dist/entities/sales/beneficiarios/vehicle.entity.js +83 -0
- package/dist/entities/sales/beneficiarios/vehicle.entity.js.map +1 -0
- package/dist/entities/sales/contact-comment.entity.d.ts +7 -0
- package/dist/entities/sales/contact-comment.entity.js +46 -0
- package/dist/entities/sales/contact-comment.entity.js.map +1 -0
- package/dist/entities/sales/contact.entity.d.ts +44 -0
- package/dist/entities/sales/contact.entity.js +267 -0
- package/dist/entities/sales/contact.entity.js.map +1 -0
- package/dist/entities/sales/index.d.ts +13 -0
- package/dist/entities/sales/index.js +30 -0
- package/dist/entities/sales/index.js.map +1 -0
- package/dist/entities/sales/lead-comment.entity.d.ts +7 -0
- package/dist/entities/sales/lead-comment.entity.js +46 -0
- package/dist/entities/sales/lead-comment.entity.js.map +1 -0
- package/dist/entities/sales/lead.entity.d.ts +43 -0
- package/dist/entities/sales/lead.entity.js +291 -0
- package/dist/entities/sales/lead.entity.js.map +1 -0
- package/dist/entities/sales/poliza-comment.entity.d.ts +7 -0
- package/dist/entities/sales/poliza-comment.entity.js +46 -0
- package/dist/entities/sales/poliza-comment.entity.js.map +1 -0
- package/dist/entities/sales/poliza.entity.d.ts +105 -0
- package/dist/entities/sales/poliza.entity.js +723 -0
- package/dist/entities/sales/poliza.entity.js.map +1 -0
- package/dist/entities/sales/poliza_siniestro.entity.d.ts +12 -0
- package/dist/entities/sales/poliza_siniestro.entity.js +72 -0
- package/dist/entities/sales/poliza_siniestro.entity.js.map +1 -0
- package/dist/entities/sales/receipt-sub-agente.entity.d.ts +5 -0
- package/dist/entities/sales/receipt-sub-agente.entity.js +35 -0
- package/dist/entities/sales/receipt-sub-agente.entity.js.map +1 -0
- package/dist/entities/sales/receipt.entity.d.ts +27 -0
- package/dist/entities/sales/receipt.entity.js +172 -0
- package/dist/entities/sales/receipt.entity.js.map +1 -0
- package/dist/entities/tag.entity.d.ts +8 -0
- package/dist/entities/tag.entity.js +53 -0
- package/dist/entities/tag.entity.js.map +1 -0
- package/dist/entities/thirdparty/email-config.entity.d.ts +14 -0
- package/dist/entities/thirdparty/email-config.entity.js +76 -0
- package/dist/entities/thirdparty/email-config.entity.js.map +1 -0
- package/dist/entities/thirdparty/email.entity.d.ts +17 -0
- package/dist/entities/thirdparty/email.entity.js +79 -0
- package/dist/entities/thirdparty/email.entity.js.map +1 -0
- package/dist/entities/thirdparty/oauth.entity.d.ts +17 -0
- package/dist/entities/thirdparty/oauth.entity.js +88 -0
- package/dist/entities/thirdparty/oauth.entity.js.map +1 -0
- package/dist/entities/thirdparty/service.entity.d.ts +6 -0
- package/dist/entities/thirdparty/service.entity.js +32 -0
- package/dist/entities/thirdparty/service.entity.js.map +1 -0
- package/dist/entities/thirdparty/user-email-relation.entity.d.ts +7 -0
- package/dist/entities/thirdparty/user-email-relation.entity.js +35 -0
- package/dist/entities/thirdparty/user-email-relation.entity.js.map +1 -0
- package/dist/entities/tools/calendar/event.entity.d.ts +17 -0
- package/dist/entities/tools/calendar/event.entity.js +110 -0
- package/dist/entities/tools/calendar/event.entity.js.map +1 -0
- package/dist/entities/tools/calendar/index.d.ts +1 -0
- package/dist/entities/tools/calendar/index.js +18 -0
- package/dist/entities/tools/calendar/index.js.map +1 -0
- package/dist/entities/tools/index.d.ts +4 -0
- package/dist/entities/tools/index.js +21 -0
- package/dist/entities/tools/index.js.map +1 -0
- package/dist/entities/tools/task-comment.entity.d.ts +9 -0
- package/dist/entities/tools/task-comment.entity.js +57 -0
- package/dist/entities/tools/task-comment.entity.js.map +1 -0
- package/dist/entities/tools/task.entity.d.ts +34 -0
- package/dist/entities/tools/task.entity.js +221 -0
- package/dist/entities/tools/task.entity.js.map +1 -0
- package/dist/entities/user.entity.d.ts +28 -0
- package/dist/entities/user.entity.js +160 -0
- package/dist/entities/user.entity.js.map +1 -0
- package/dist/eslint.config.d.ts +2 -0
- package/dist/eslint.config.js +46 -0
- package/dist/eslint.config.js.map +1 -0
- package/dist/grpc/drive/drive.proto +74 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/index.d.ts +3 -0
- package/dist/modules/index.js +20 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/modules/queue/notifier.service.d.ts +15 -0
- package/dist/modules/queue/notifier.service.js +70 -0
- package/dist/modules/queue/notifier.service.js.map +1 -0
- package/dist/modules/queue/notifiers/contact.notifier.d.ts +7 -0
- package/dist/modules/queue/notifiers/contact.notifier.js +49 -0
- package/dist/modules/queue/notifiers/contact.notifier.js.map +1 -0
- package/dist/modules/queue/notifiers/index.d.ts +4 -0
- package/dist/modules/queue/notifiers/index.js +21 -0
- package/dist/modules/queue/notifiers/index.js.map +1 -0
- package/dist/modules/queue/notifiers/lead.notifier.d.ts +7 -0
- package/dist/modules/queue/notifiers/lead.notifier.js +49 -0
- package/dist/modules/queue/notifiers/lead.notifier.js.map +1 -0
- package/dist/modules/queue/notifiers/task.notifier.d.ts +15 -0
- package/dist/modules/queue/notifiers/task.notifier.js +130 -0
- package/dist/modules/queue/notifiers/task.notifier.js.map +1 -0
- package/dist/modules/queue/queue.module.d.ts +4 -0
- package/dist/modules/queue/queue.module.js +55 -0
- package/dist/modules/queue/queue.module.js.map +1 -0
- package/dist/modules/queue/scheduler.service.d.ts +9 -0
- package/package.json +1 -1
- package/tsconfig.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.EasyNotifierService = void 0;
|
|
16
|
+
const nestjs_rabbitmq_1 = require("@golevelup/nestjs-rabbitmq");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const common_2 = require("../../common");
|
|
19
|
+
const notifiers_1 = require("./notifiers");
|
|
20
|
+
const logger = new common_1.Logger("EasyNotifierService");
|
|
21
|
+
let EasyNotifierService = class EasyNotifierService {
|
|
22
|
+
amqpConnection;
|
|
23
|
+
exchangeName;
|
|
24
|
+
routingKey;
|
|
25
|
+
task;
|
|
26
|
+
contact;
|
|
27
|
+
lead;
|
|
28
|
+
constructor(amqpConnection, exchangeName, routingKey) {
|
|
29
|
+
this.amqpConnection = amqpConnection;
|
|
30
|
+
this.exchangeName = exchangeName;
|
|
31
|
+
this.routingKey = routingKey;
|
|
32
|
+
this.task = new notifiers_1.TaskNotifier(this);
|
|
33
|
+
this.contact = new notifiers_1.ContactNotifier(this);
|
|
34
|
+
this.lead = new notifiers_1.LeadNotifier(this);
|
|
35
|
+
}
|
|
36
|
+
async sendNotification(data) {
|
|
37
|
+
logger.debug(`Sending notification: ${JSON.stringify(data)}`);
|
|
38
|
+
await this.amqpConnection.publish(this.exchangeName, this.routingKey, data);
|
|
39
|
+
}
|
|
40
|
+
async sendOTPPhone(code, recipientsId) {
|
|
41
|
+
const notificationDto = {
|
|
42
|
+
title: "OTP Code",
|
|
43
|
+
content: `Easywork: Your OTP code is ${code}`,
|
|
44
|
+
recipientsId,
|
|
45
|
+
channels: [common_2.NotificationChannel.SMS],
|
|
46
|
+
category: common_2.NotificationCategory.OTP,
|
|
47
|
+
subCategory: common_2.NotificationSubcategory.OTP,
|
|
48
|
+
};
|
|
49
|
+
await this.sendNotification(notificationDto);
|
|
50
|
+
}
|
|
51
|
+
async sendOTPEmail(code, recipientsId) {
|
|
52
|
+
const notificationDto = {
|
|
53
|
+
title: "OTP Code",
|
|
54
|
+
content: code,
|
|
55
|
+
recipientsId,
|
|
56
|
+
channels: [common_2.NotificationChannel.EMAIL],
|
|
57
|
+
category: common_2.NotificationCategory.OTP,
|
|
58
|
+
subCategory: common_2.NotificationSubcategory.OTP,
|
|
59
|
+
};
|
|
60
|
+
await this.sendNotification(notificationDto);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
exports.EasyNotifierService = EasyNotifierService;
|
|
64
|
+
exports.EasyNotifierService = EasyNotifierService = __decorate([
|
|
65
|
+
(0, common_1.Injectable)(),
|
|
66
|
+
__param(1, (0, common_1.Inject)('EXCHANGE_NAME')),
|
|
67
|
+
__param(2, (0, common_1.Inject)('NOTIFIER_ROUTING_KEY')),
|
|
68
|
+
__metadata("design:paramtypes", [nestjs_rabbitmq_1.AmqpConnection, String, String])
|
|
69
|
+
], EasyNotifierService);
|
|
70
|
+
//# sourceMappingURL=notifier.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifier.service.js","sourceRoot":"","sources":["../../../src/modules/queue/notifier.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gEAA4D;AAC5D,2CAA4D;AAC5D,yCAAuH;AACvH,2CAA0E;AAE1E,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,qBAAqB,CAAC,CAAC;AAG1C,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAMP;IACyB;IACO;IAPrC,IAAI,CAAe;IACnB,OAAO,CAAkB;IACzB,IAAI,CAAe;IAEnC,YACqB,cAA8B,EACL,YAAoB,EACb,UAAkB;QAFlD,mBAAc,GAAd,cAAc,CAAgB;QACL,iBAAY,GAAZ,YAAY,CAAQ;QACb,eAAU,GAAV,UAAU,CAAQ;QAEnE,IAAI,CAAC,IAAI,GAAG,IAAI,wBAAY,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,2BAAe,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,wBAAY,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAyB;QAC5C,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,YAAsB;QACnD,MAAM,eAAe,GAAwB;YACzC,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,8BAA8B,IAAI,EAAE;YAC7C,YAAY;YACZ,QAAQ,EAAE,CAAC,4BAAmB,CAAC,GAAG,CAAC;YACnC,QAAQ,EAAE,6BAAoB,CAAC,GAAG;YAClC,WAAW,EAAE,gCAAuB,CAAC,GAAG;SAC3C,CAAC;QAEF,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,YAAsB;QACnD,MAAM,eAAe,GAAwB;YACzC,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,IAAI;YACb,YAAY;YACZ,QAAQ,EAAE,CAAC,4BAAmB,CAAC,KAAK,CAAC;YACrC,QAAQ,EAAE,6BAAoB,CAAC,GAAG;YAClC,WAAW,EAAE,gCAAuB,CAAC,GAAG;SAC3C,CAAC;QAEF,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;CACJ,CAAA;AA7CY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;IAQJ,WAAA,IAAA,eAAM,EAAC,eAAe,CAAC,CAAA;IACvB,WAAA,IAAA,eAAM,EAAC,sBAAsB,CAAC,CAAA;qCAFE,gCAAc;GAN1C,mBAAmB,CA6C/B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { EasyNotifierService } from '../notifier.service';
|
|
2
|
+
import { Contact, ContactComment } from '../../../entities';
|
|
3
|
+
export declare class ContactNotifier {
|
|
4
|
+
private readonly notifierService;
|
|
5
|
+
constructor(notifierService: EasyNotifierService);
|
|
6
|
+
notifyNewCommentContact(contact: Contact, comment: ContactComment, recipientsId: string[]): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ContactNotifier = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const notifier_service_1 = require("../notifier.service");
|
|
15
|
+
const common_2 = require("../../../common");
|
|
16
|
+
let ContactNotifier = class ContactNotifier {
|
|
17
|
+
notifierService;
|
|
18
|
+
constructor(notifierService) {
|
|
19
|
+
this.notifierService = notifierService;
|
|
20
|
+
}
|
|
21
|
+
async notifyNewCommentContact(contact, comment, recipientsId) {
|
|
22
|
+
const commentText = comment.comment.slice(0, 20);
|
|
23
|
+
const content = `${comment.createdBy.name} comentó en el contacto: <a href="/sales/contacts/contact/${contact.id}?show=true" style="color:#170f6b">[${contact.name}]</a>. Texto del comentario: ${commentText}`;
|
|
24
|
+
const metadata = {
|
|
25
|
+
contactId: contact.id,
|
|
26
|
+
commentId: comment.id,
|
|
27
|
+
contactOwnerId: contact.createdBy?.id,
|
|
28
|
+
commentOwnerId: comment.createdBy?.id,
|
|
29
|
+
contactAssignedId: contact?.assignedBy?.id,
|
|
30
|
+
};
|
|
31
|
+
const notificationDto = {
|
|
32
|
+
title: "New Comment",
|
|
33
|
+
content,
|
|
34
|
+
recipientsId,
|
|
35
|
+
entityId: contact.id,
|
|
36
|
+
channels: [common_2.NotificationChannel.APP, common_2.NotificationChannel.SMS, common_2.NotificationChannel.PUSH],
|
|
37
|
+
category: common_2.NotificationCategory.CRM,
|
|
38
|
+
subCategory: common_2.NotificationSubcategory.CONTACT_NEW_COMMENT,
|
|
39
|
+
metadata,
|
|
40
|
+
};
|
|
41
|
+
await this.notifierService.sendNotification(notificationDto);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
exports.ContactNotifier = ContactNotifier;
|
|
45
|
+
exports.ContactNotifier = ContactNotifier = __decorate([
|
|
46
|
+
(0, common_1.Injectable)(),
|
|
47
|
+
__metadata("design:paramtypes", [notifier_service_1.EasyNotifierService])
|
|
48
|
+
], ContactNotifier);
|
|
49
|
+
//# sourceMappingURL=contact.notifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contact.notifier.js","sourceRoot":"","sources":["../../../../src/modules/queue/notifiers/contact.notifier.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,0DAA0D;AAE1D,4CAA0H;AAGnH,IAAM,eAAe,GAArB,MAAM,eAAe;IACG;IAA7B,YAA6B,eAAoC;QAApC,oBAAe,GAAf,eAAe,CAAqB;IAAG,CAAC;IAErE,KAAK,CAAC,uBAAuB,CAAC,OAAgB,EAAE,OAAuB,EAAE,YAAsB;QAC7F,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,6DAA6D,OAAO,CAAC,EAAE,sCAAsC,OAAO,CAAC,IAAI,gCAAgC,WAAW,EAAE,CAAC;QAEhN,MAAM,QAAQ,GAAG;YACb,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE;YACrC,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE;YACrC,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;SAC7C,CAAC;QAEF,MAAM,eAAe,GAAwB;YACzC,KAAK,EAAE,aAAa;YACpB,OAAO;YACP,YAAY;YACZ,QAAQ,EAAE,OAAO,CAAC,EAAE;YACpB,QAAQ,EAAE,CAAC,4BAAmB,CAAC,GAAG,EAAE,4BAAmB,CAAC,GAAG,EAAE,4BAAmB,CAAC,IAAI,CAAC;YACtF,QAAQ,EAAE,6BAAoB,CAAC,GAAG;YAClC,WAAW,EAAE,gCAAuB,CAAC,mBAAmB;YACxD,QAAQ;SACX,CAAC;QAEF,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACjE,CAAC;CACA,CAAA;AA5BY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAEmC,sCAAmB;GADtD,eAAe,CA4B3B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./task.notifier"), exports);
|
|
18
|
+
__exportStar(require("./calendar.notifier"), exports);
|
|
19
|
+
__exportStar(require("./contact.notifier"), exports);
|
|
20
|
+
__exportStar(require("./lead.notifier"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/queue/notifiers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,sDAAoC;AACpC,qDAAmC;AACnC,kDAAgC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { EasyNotifierService } from '../notifier.service';
|
|
2
|
+
import { Lead, LeadComment } from '../../../entities';
|
|
3
|
+
export declare class LeadNotifier {
|
|
4
|
+
private readonly notifierService;
|
|
5
|
+
constructor(notifierService: EasyNotifierService);
|
|
6
|
+
notifyNewCommentLead(lead: Lead, comment: LeadComment, recipientsId: string[]): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.LeadNotifier = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const notifier_service_1 = require("../notifier.service");
|
|
15
|
+
const common_2 = require("../../../common");
|
|
16
|
+
let LeadNotifier = class LeadNotifier {
|
|
17
|
+
notifierService;
|
|
18
|
+
constructor(notifierService) {
|
|
19
|
+
this.notifierService = notifierService;
|
|
20
|
+
}
|
|
21
|
+
async notifyNewCommentLead(lead, comment, recipientsId) {
|
|
22
|
+
const commentText = comment.comment.slice(0, 20);
|
|
23
|
+
const content = `${comment.createdBy.name} comentó en el prospecto: <a href="/sales/leads/lead/${lead.id}?show=true" style="color:#170f6b">[${lead.name}]</a>. Texto del comentario: ${commentText}`;
|
|
24
|
+
const metadata = {
|
|
25
|
+
leadId: lead.id,
|
|
26
|
+
commentId: comment.id,
|
|
27
|
+
leadOwnerId: lead.createdBy?.id,
|
|
28
|
+
commentOwnerId: comment.createdBy?.id,
|
|
29
|
+
leadAssignedId: lead?.assignedBy?.id,
|
|
30
|
+
};
|
|
31
|
+
const notificationDto = {
|
|
32
|
+
title: "New Comment",
|
|
33
|
+
content,
|
|
34
|
+
recipientsId,
|
|
35
|
+
entityId: lead.id,
|
|
36
|
+
channels: [common_2.NotificationChannel.APP, common_2.NotificationChannel.SMS, common_2.NotificationChannel.PUSH],
|
|
37
|
+
category: common_2.NotificationCategory.CRM,
|
|
38
|
+
subCategory: common_2.NotificationSubcategory.CONTACT_NEW_COMMENT,
|
|
39
|
+
metadata,
|
|
40
|
+
};
|
|
41
|
+
await this.notifierService.sendNotification(notificationDto);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
exports.LeadNotifier = LeadNotifier;
|
|
45
|
+
exports.LeadNotifier = LeadNotifier = __decorate([
|
|
46
|
+
(0, common_1.Injectable)(),
|
|
47
|
+
__metadata("design:paramtypes", [notifier_service_1.EasyNotifierService])
|
|
48
|
+
], LeadNotifier);
|
|
49
|
+
//# sourceMappingURL=lead.notifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lead.notifier.js","sourceRoot":"","sources":["../../../../src/modules/queue/notifiers/lead.notifier.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,0DAA0D;AAE1D,4CAA0H;AAGnH,IAAM,YAAY,GAAlB,MAAM,YAAY;IACQ;IAA7B,YAA6B,eAAoC;QAApC,oBAAe,GAAf,eAAe,CAAqB;IAAI,CAAC;IAEtE,KAAK,CAAC,oBAAoB,CAAC,IAAU,EAAE,OAAoB,EAAE,YAAsB;QAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,wDAAwD,IAAI,CAAC,EAAE,sCAAsC,IAAI,CAAC,IAAI,gCAAgC,WAAW,EAAE,CAAC;QAErM,MAAM,QAAQ,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE;YAC/B,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE;YACrC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;SACvC,CAAC;QAEF,MAAM,eAAe,GAAwB;YACzC,KAAK,EAAE,aAAa;YACpB,OAAO;YACP,YAAY;YACZ,QAAQ,EAAE,IAAI,CAAC,EAAE;YACjB,QAAQ,EAAE,CAAC,4BAAmB,CAAC,GAAG,EAAE,4BAAmB,CAAC,GAAG,EAAE,4BAAmB,CAAC,IAAI,CAAC;YACtF,QAAQ,EAAE,6BAAoB,CAAC,GAAG;YAClC,WAAW,EAAE,gCAAuB,CAAC,mBAAmB;YACxD,QAAQ;SACX,CAAC;QAEF,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACjE,CAAC;CACJ,CAAA;AA5BY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAEqC,sCAAmB;GADxD,YAAY,CA4BxB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EasyNotifierService } from '../notifier.service';
|
|
2
|
+
import { Task, TaskComment } from '../../../entities';
|
|
3
|
+
export declare class TaskNotifier {
|
|
4
|
+
private readonly notifierService;
|
|
5
|
+
constructor(notifierService: EasyNotifierService);
|
|
6
|
+
private getMetadata;
|
|
7
|
+
private createNotificationDto;
|
|
8
|
+
private buildTaskLink;
|
|
9
|
+
notifyTaskCompletion(task: Task, recipientsId: string[]): Promise<void>;
|
|
10
|
+
notifyTaskOverdue(task: Task, recipientsId: string[]): Promise<void>;
|
|
11
|
+
notifyTaskContinue(task: Task, recipientsId: string[]): Promise<void>;
|
|
12
|
+
notifyNewTask(task: Task, recipientsId: string[]): Promise<void>;
|
|
13
|
+
notifyTaskUpdate(task: Task, recipientsId: string[], changedFields: string[]): Promise<void>;
|
|
14
|
+
notifyNewComment(task: Task, comment: TaskComment, recipientsId: string[]): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TaskNotifier = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const notifier_service_1 = require("../notifier.service");
|
|
15
|
+
const common_2 = require("../../../common");
|
|
16
|
+
let TaskNotifier = class TaskNotifier {
|
|
17
|
+
notifierService;
|
|
18
|
+
constructor(notifierService) {
|
|
19
|
+
this.notifierService = notifierService;
|
|
20
|
+
}
|
|
21
|
+
getMetadata(task, additionalData) {
|
|
22
|
+
return {
|
|
23
|
+
taskId: task.id,
|
|
24
|
+
taskOwnerId: task.createdBy?.id ?? null,
|
|
25
|
+
taskResponsibleId: task.responsible?.[0]?.id ?? null,
|
|
26
|
+
...(additionalData ?? {}),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
createNotificationDto(title, content, recipientsId, task, channels, subCategory, metadata) {
|
|
30
|
+
return {
|
|
31
|
+
title,
|
|
32
|
+
content,
|
|
33
|
+
recipientsId,
|
|
34
|
+
entityId: task.id,
|
|
35
|
+
channels,
|
|
36
|
+
category: common_2.NotificationCategory.TASK,
|
|
37
|
+
subCategory,
|
|
38
|
+
metadata: this.getMetadata(task, metadata),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
buildTaskLink(task, color = 'blue') {
|
|
42
|
+
return `<a href="/tools/tasks/task/${task.id}?show=true" style="color:${color}">[${task.name}]</a>`;
|
|
43
|
+
}
|
|
44
|
+
async notifyTaskCompletion(task, recipientsId) {
|
|
45
|
+
const content = `La tarea ${task.name} ha sido completada`;
|
|
46
|
+
const notificationDto = this.createNotificationDto('Tarea Completada', content, recipientsId, task, [common_2.NotificationChannel.APP], common_2.NotificationSubcategory.TASK_COMPLETED);
|
|
47
|
+
await this.notifierService.sendNotification(notificationDto);
|
|
48
|
+
}
|
|
49
|
+
async notifyTaskOverdue(task, recipientsId) {
|
|
50
|
+
const content = `La tarea [#${task.number}] - ${task.name} está atrasada`;
|
|
51
|
+
const notificationDto = this.createNotificationDto('Tarea Atrasada', content, recipientsId, task, [common_2.NotificationChannel.APP, common_2.NotificationChannel.SMS, common_2.NotificationChannel.PUSH], common_2.NotificationSubcategory.TASK_OVERDUE);
|
|
52
|
+
await this.notifierService.sendNotification(notificationDto);
|
|
53
|
+
}
|
|
54
|
+
async notifyTaskContinue(task, recipientsId) {
|
|
55
|
+
const content = `La tarea #${task.number} - ${task.name} ha sido reanudada`;
|
|
56
|
+
const notificationDto = this.createNotificationDto('Tarea Reanudada', content, recipientsId, task, [common_2.NotificationChannel.APP], common_2.NotificationSubcategory.TASK_UPDATED);
|
|
57
|
+
await this.notifierService.sendNotification(notificationDto);
|
|
58
|
+
}
|
|
59
|
+
async notifyNewTask(task, recipientsId) {
|
|
60
|
+
const fechaLimite = task.deadline
|
|
61
|
+
? `<br/>Fecha Límite: ${new Date(task.deadline).toLocaleDateString()}`
|
|
62
|
+
: '';
|
|
63
|
+
const observadores = task.observers?.length > 0
|
|
64
|
+
? `<br/>Observadores: ${task.observers.map((o) => o.username).join(', ')}`
|
|
65
|
+
: '';
|
|
66
|
+
const responsables = task.responsible?.length > 0
|
|
67
|
+
? `<br/>Responsables: ${task.responsible.map((r) => r.username).join(', ')}`
|
|
68
|
+
: '';
|
|
69
|
+
const participantes = task.participants?.length > 0
|
|
70
|
+
? `<br/>Participantes: ${task.participants.map((p) => p.username).join(', ')}`
|
|
71
|
+
: '';
|
|
72
|
+
const taskLink = this.buildTaskLink(task);
|
|
73
|
+
const content = `Nueva tarea agregada: ${taskLink}${responsables}${observadores}${participantes}${fechaLimite}`;
|
|
74
|
+
const notificationDto = this.createNotificationDto('Nueva Tarea', content, recipientsId, task, [common_2.NotificationChannel.APP, common_2.NotificationChannel.SMS, common_2.NotificationChannel.PUSH], common_2.NotificationSubcategory.NEW_TASK);
|
|
75
|
+
await this.notifierService.sendNotification(notificationDto);
|
|
76
|
+
}
|
|
77
|
+
async notifyTaskUpdate(task, recipientsId, changedFields) {
|
|
78
|
+
const taskLink = this.buildTaskLink(task);
|
|
79
|
+
let content = `Tarea #${task.number} - ${taskLink}`;
|
|
80
|
+
if (changedFields.length === 0) {
|
|
81
|
+
content += ' ha sido actualizada';
|
|
82
|
+
const notificationDto = this.createNotificationDto('Tarea Actualizada', content, recipientsId, task, [common_2.NotificationChannel.APP, common_2.NotificationChannel.SMS, common_2.NotificationChannel.PUSH], common_2.NotificationSubcategory.TASK_UPDATED);
|
|
83
|
+
await this.notifierService.sendNotification(notificationDto);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
content += ' se actualizó:';
|
|
87
|
+
if (changedFields.includes('deadline')) {
|
|
88
|
+
const deadlineText = task.deadline
|
|
89
|
+
? new Date(task.deadline).toLocaleDateString()
|
|
90
|
+
: 'Ninguna';
|
|
91
|
+
content += `<br/>Fecha Límite cambiada: ${deadlineText}`;
|
|
92
|
+
}
|
|
93
|
+
if (changedFields.includes('responsible') && task.responsible?.length > 0) {
|
|
94
|
+
content = `Se te ha asignado la tarea #${task.number} - ${taskLink}`;
|
|
95
|
+
const notificationDto = this.createNotificationDto('Tarea Asignada', content, [task.responsible[0].id], task, [common_2.NotificationChannel.APP, common_2.NotificationChannel.SMS, common_2.NotificationChannel.PUSH], common_2.NotificationSubcategory.TASK_UPDATED);
|
|
96
|
+
await this.notifierService.sendNotification(notificationDto);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
if (changedFields.includes('name')) {
|
|
100
|
+
content += `<br/>Nombre: ${task.name}`;
|
|
101
|
+
}
|
|
102
|
+
if (changedFields.includes('description')) {
|
|
103
|
+
content += `<br/>Descripción: ${task.description}`;
|
|
104
|
+
}
|
|
105
|
+
if (changedFields.includes('status')) {
|
|
106
|
+
content += `<br/>Estado: ${task.status}`;
|
|
107
|
+
}
|
|
108
|
+
const notificationDto = this.createNotificationDto('Tarea Actualizada', content, recipientsId, task, [common_2.NotificationChannel.APP, common_2.NotificationChannel.SMS, common_2.NotificationChannel.PUSH], common_2.NotificationSubcategory.TASK_UPDATED);
|
|
109
|
+
await this.notifierService.sendNotification(notificationDto);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async notifyNewComment(task, comment, recipientsId) {
|
|
113
|
+
const commentText = comment.comment.slice(0, 20);
|
|
114
|
+
const taskLink = this.buildTaskLink(task, '#170f6b');
|
|
115
|
+
const commenterName = comment.createdBy?.name ?? 'Alguien';
|
|
116
|
+
const content = `${commenterName} comentó en la tarea: ${taskLink}. Texto del comentario: ${commentText}`;
|
|
117
|
+
const metadata = this.getMetadata(task, {
|
|
118
|
+
commentId: comment.id,
|
|
119
|
+
commentOwnerId: comment.createdBy?.id ?? null,
|
|
120
|
+
});
|
|
121
|
+
const notificationDto = this.createNotificationDto('Nuevo Comentario', content, recipientsId, task, [common_2.NotificationChannel.APP, common_2.NotificationChannel.SMS, common_2.NotificationChannel.PUSH], common_2.NotificationSubcategory.TASK_NEW_COMMENT, metadata);
|
|
122
|
+
await this.notifierService.sendNotification(notificationDto);
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
exports.TaskNotifier = TaskNotifier;
|
|
126
|
+
exports.TaskNotifier = TaskNotifier = __decorate([
|
|
127
|
+
(0, common_1.Injectable)(),
|
|
128
|
+
__metadata("design:paramtypes", [notifier_service_1.EasyNotifierService])
|
|
129
|
+
], TaskNotifier);
|
|
130
|
+
//# sourceMappingURL=task.notifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.notifier.js","sourceRoot":"","sources":["../../../../src/modules/queue/notifiers/task.notifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var EasyQueueModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.EasyQueueModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const notifier_service_1 = require("./notifier.service");
|
|
13
|
+
const nestjs_rabbitmq_1 = require("@golevelup/nestjs-rabbitmq");
|
|
14
|
+
const scheduler_service_1 = require("./scheduler.service");
|
|
15
|
+
let EasyQueueModule = EasyQueueModule_1 = class EasyQueueModule {
|
|
16
|
+
static register(exchangeName, rabbitMQUri, notificationRoutingKey, schedulerRoutingKey) {
|
|
17
|
+
return {
|
|
18
|
+
module: EasyQueueModule_1,
|
|
19
|
+
imports: [
|
|
20
|
+
nestjs_rabbitmq_1.RabbitMQModule.forRoot(nestjs_rabbitmq_1.RabbitMQModule, {
|
|
21
|
+
exchanges: [
|
|
22
|
+
{
|
|
23
|
+
name: exchangeName,
|
|
24
|
+
type: 'topic',
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
uri: rabbitMQUri,
|
|
28
|
+
}),
|
|
29
|
+
],
|
|
30
|
+
providers: [
|
|
31
|
+
{
|
|
32
|
+
provide: 'EXCHANGE_NAME',
|
|
33
|
+
useValue: exchangeName,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
provide: 'NOTIFIER_ROUTING_KEY',
|
|
37
|
+
useValue: notificationRoutingKey,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
provide: 'SCHEDULER_ROUTING_KEY',
|
|
41
|
+
useValue: schedulerRoutingKey,
|
|
42
|
+
},
|
|
43
|
+
notifier_service_1.EasyNotifierService,
|
|
44
|
+
scheduler_service_1.EasySchedulerService,
|
|
45
|
+
],
|
|
46
|
+
exports: [notifier_service_1.EasyNotifierService, scheduler_service_1.EasySchedulerService],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
exports.EasyQueueModule = EasyQueueModule;
|
|
51
|
+
exports.EasyQueueModule = EasyQueueModule = EasyQueueModule_1 = __decorate([
|
|
52
|
+
(0, common_1.Global)(),
|
|
53
|
+
(0, common_1.Module)({})
|
|
54
|
+
], EasyQueueModule);
|
|
55
|
+
//# sourceMappingURL=queue.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.module.js","sourceRoot":"","sources":["../../../src/modules/queue/queue.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+D;AAC/D,yDAAyD;AACzD,gEAA4D;AAC5D,2DAA2D;AAIpD,IAAM,eAAe,uBAArB,MAAM,eAAe;IAC1B,MAAM,CAAC,QAAQ,CACb,YAAoB,EACpB,WAAmB,EACnB,sBAA8B,EAC9B,mBAA2B;QAE3B,OAAO;YACL,MAAM,EAAE,iBAAe;YACvB,OAAO,EAAE;gBACP,gCAAc,CAAC,OAAO,CAAC,gCAAc,EAAE;oBACrC,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,YAAY;4BAClB,IAAI,EAAE,OAAO;yBACd;qBACF;oBACD,GAAG,EAAE,WAAW;iBACjB,CAAC;aACH;YACD,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,eAAe;oBACxB,QAAQ,EAAE,YAAY;iBACvB;gBACD;oBACE,OAAO,EAAE,sBAAsB;oBAC/B,QAAQ,EAAE,sBAAsB;iBACjC;gBACD;oBACE,OAAO,EAAE,uBAAuB;oBAChC,QAAQ,EAAE,mBAAmB;iBAC9B;gBACD,sCAAmB;gBACnB,wCAAoB;aACrB;YACD,OAAO,EAAE,CAAC,sCAAmB,EAAE,wCAAoB,CAAC;SACrD,CAAC;IACJ,CAAC;CACF,CAAA;AAvCY,0CAAe;0BAAf,eAAe;IAF3B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,eAAe,CAuC3B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AmqpConnection } from "@golevelup/nestjs-rabbitmq";
|
|
2
|
+
import { Task } from "../../entities";
|
|
3
|
+
export declare class EasySchedulerService {
|
|
4
|
+
private readonly amqpConnection;
|
|
5
|
+
private readonly exchangeName;
|
|
6
|
+
private readonly routingKey;
|
|
7
|
+
constructor(amqpConnection: AmqpConnection, exchangeName: string, routingKey: string);
|
|
8
|
+
scheduleTaskAlerts(task: Task): Promise<void>;
|
|
9
|
+
}
|
package/package.json
CHANGED
package/tsconfig.json
CHANGED
|
@@ -21,6 +21,6 @@
|
|
|
21
21
|
"forceConsistentCasingInFileNames": true,
|
|
22
22
|
"noFallthroughCasesInSwitch": false
|
|
23
23
|
},
|
|
24
|
-
"include": ["test/**/*", "src
|
|
24
|
+
"include": ["test/**/*", "src/**/*", "eslint.config.js"],
|
|
25
25
|
"typeRoots": ["./src/common/@types/typings"]
|
|
26
26
|
}
|