@servicelabsco/nestjs-utility-services 1.1.84 → 1.1.86
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/app.controller.d.ts +7 -4
- package/dist/app.controller.js +14 -5
- package/dist/app.controller.js.map +1 -1
- package/dist/app.module.js +0 -2
- package/dist/app.module.js.map +1 -1
- package/dist/app.service.d.ts +2 -2
- package/dist/app.service.js +1 -3
- package/dist/app.service.js.map +1 -1
- package/dist/auth/dtos/user.access.dto.d.ts +13 -12
- package/dist/auth/dtos/user.access.dto.js.map +1 -1
- package/dist/auth/entities/user.entity.js +0 -2
- package/dist/auth/entities/user.entity.js.map +1 -1
- package/dist/auth/es6.classes.d.ts +2 -1
- package/dist/auth/middlewares/jwt.middleware.d.ts +2 -2
- package/dist/auth/middlewares/jwt.middleware.js +2 -1
- package/dist/auth/middlewares/jwt.middleware.js.map +1 -1
- package/dist/auth/services/refresh.token.service.js +1 -2
- package/dist/auth/services/refresh.token.service.js.map +1 -1
- package/dist/common/es6.classes.js +2 -0
- package/dist/common/es6.classes.js.map +1 -1
- package/dist/common/libraries/common.mongo.entity.d.ts +21 -0
- package/dist/common/libraries/common.mongo.entity.js +121 -0
- package/dist/common/libraries/common.mongo.entity.js.map +1 -0
- package/dist/common/libraries/index.d.ts +1 -0
- package/dist/common/libraries/index.js +1 -0
- package/dist/common/libraries/index.js.map +1 -1
- package/dist/common/libraries/platform.utility.d.ts +1 -0
- package/dist/common/libraries/platform.utility.js +5 -0
- package/dist/common/libraries/platform.utility.js.map +1 -1
- package/dist/config/cache.config.d.ts +1 -0
- package/dist/config/cache.config.js +3 -2
- package/dist/config/cache.config.js.map +1 -1
- package/dist/config/mongo.config.d.ts +3 -0
- package/dist/config/mongo.config.js +25 -0
- package/dist/config/mongo.config.js.map +1 -0
- package/dist/migrations/1686046172898-CreateMailValidationTable.js +1 -1
- package/dist/migrations/1686048669716-CreateMobileValidationTable.js +1 -0
- package/dist/migrations/1686048669716-CreateMobileValidationTable.js.map +1 -1
- package/dist/platformUtility/es6.classes.d.ts +3 -4
- package/dist/platformUtility/es6.classes.js +0 -2
- package/dist/platformUtility/es6.classes.js.map +1 -1
- package/dist/platformUtility/jobs/record.watcher.job.js +1 -1
- package/dist/platformUtility/jobs/record.watcher.job.js.map +1 -1
- package/dist/platformUtility/libraries/index.d.ts +0 -1
- package/dist/platformUtility/libraries/index.js +0 -1
- package/dist/platformUtility/libraries/index.js.map +1 -1
- package/dist/platformUtility/platform.utility.module.js +2 -1
- package/dist/platformUtility/platform.utility.module.js.map +1 -1
- package/dist/platformUtility/services/audit.service.d.ts +1 -1
- package/dist/platformUtility/services/audit.service.js +10 -8
- package/dist/platformUtility/services/audit.service.js.map +1 -1
- package/dist/platformUtility/services/cache.service.d.ts +2 -2
- package/dist/platformUtility/services/cache.service.js +5 -5
- package/dist/platformUtility/services/cache.service.js.map +1 -1
- package/dist/platformUtility/services/dynamo.service.js.map +1 -1
- package/dist/platformUtility/services/mail.service.js +0 -3
- package/dist/platformUtility/services/mail.service.js.map +1 -1
- package/dist/platformUtility/services/sms.service.d.ts +3 -1
- package/dist/platformUtility/services/sms.service.js +7 -3
- package/dist/platformUtility/services/sms.service.js.map +1 -1
- package/dist/security/entities/permission.entity.js +0 -4
- package/dist/security/entities/permission.entity.js.map +1 -1
- package/dist/security/entities/role.entity.js +0 -5
- package/dist/security/entities/role.entity.js.map +1 -1
- package/dist/system/dtos/index.d.ts +4 -3
- package/dist/system/dtos/index.js +4 -3
- package/dist/system/dtos/index.js.map +1 -1
- package/dist/system/dtos/mail.validation.dto.d.ts +5 -0
- package/dist/system/dtos/mail.validation.dto.js +7 -0
- package/dist/system/dtos/mail.validation.dto.js.map +1 -0
- package/dist/system/dtos/{otp.validation.dto.d.ts → mobile.validation.dto.d.ts} +1 -1
- package/dist/system/dtos/mobile.validation.dto.js +7 -0
- package/dist/system/dtos/mobile.validation.dto.js.map +1 -0
- package/dist/system/dtos/sms.message.attributes.dto.d.ts +4 -0
- package/dist/system/dtos/sms.message.attributes.dto.js +8 -0
- package/dist/system/dtos/sms.message.attributes.dto.js.map +1 -0
- package/dist/system/dtos/validation.options.dto.d.ts +4 -0
- package/dist/system/dtos/validation.options.dto.js +7 -0
- package/dist/system/dtos/validation.options.dto.js.map +1 -0
- package/dist/system/entities/business.rule.entity.js +0 -13
- package/dist/system/entities/business.rule.entity.js.map +1 -1
- package/dist/system/entities/column.definition.entity.js +0 -4
- package/dist/system/entities/column.definition.entity.js.map +1 -1
- package/dist/system/entities/column.entity.js +0 -15
- package/dist/system/entities/column.entity.js.map +1 -1
- package/dist/system/entities/list.preference.entity.js +0 -4
- package/dist/system/entities/list.preference.entity.js.map +1 -1
- package/dist/system/entities/lookup.type.entity.js +0 -3
- package/dist/system/entities/lookup.type.entity.js.map +1 -1
- package/dist/system/entities/lookup.value.entity.js +0 -5
- package/dist/system/entities/lookup.value.entity.js.map +1 -1
- package/dist/system/entities/mail.validation.entity.d.ts +2 -3
- package/dist/system/entities/mail.validation.entity.js +2 -3
- package/dist/system/entities/mail.validation.entity.js.map +1 -1
- package/dist/system/entities/menu.entity.js +0 -4
- package/dist/system/entities/menu.entity.js.map +1 -1
- package/dist/system/entities/menu.role.entity.js +0 -3
- package/dist/system/entities/menu.role.entity.js.map +1 -1
- package/dist/system/entities/mobile.validation.entity.d.ts +1 -2
- package/dist/system/entities/mobile.validation.entity.js +1 -2
- package/dist/system/entities/mobile.validation.entity.js.map +1 -1
- package/dist/system/entities/model.entity.js +0 -9
- package/dist/system/entities/model.entity.js.map +1 -1
- package/dist/system/entities/model.relationship.entity.js +0 -2
- package/dist/system/entities/model.relationship.entity.js.map +1 -1
- package/dist/system/entities/module.entity.js +0 -4
- package/dist/system/entities/module.entity.js.map +1 -1
- package/dist/system/entities/module.menu.entity.js +0 -4
- package/dist/system/entities/module.menu.entity.js.map +1 -1
- package/dist/system/entities/page.definition.entity.js +0 -4
- package/dist/system/entities/page.definition.entity.js.map +1 -1
- package/dist/system/entities/parent.menu.entity.js +0 -3
- package/dist/system/entities/parent.menu.entity.js.map +1 -1
- package/dist/system/entities/relationship.entity.js +0 -10
- package/dist/system/entities/relationship.entity.js.map +1 -1
- package/dist/system/entities/security.rule.entity.js +0 -9
- package/dist/system/entities/security.rule.entity.js.map +1 -1
- package/dist/system/entities/sms.message.entity.d.ts +2 -1
- package/dist/system/entities/sms.message.entity.js +2 -1
- package/dist/system/entities/sms.message.entity.js.map +1 -1
- package/dist/system/entities/system.script.entity.js +0 -6
- package/dist/system/entities/system.script.entity.js.map +1 -1
- package/dist/system/entities/user.group.entity.js +0 -4
- package/dist/system/entities/user.group.entity.js.map +1 -1
- package/dist/system/entities/user.group.member.entity.js +0 -3
- package/dist/system/entities/user.group.member.entity.js.map +1 -1
- package/dist/system/entities/user.group.role.entity.js +0 -3
- package/dist/system/entities/user.group.role.entity.js.map +1 -1
- package/dist/system/entities/user.preference.entity.js +0 -4
- package/dist/system/entities/user.preference.entity.js.map +1 -1
- package/dist/system/es6.classes.d.ts +11 -7
- package/dist/system/es6.classes.js +12 -6
- package/dist/system/es6.classes.js.map +1 -1
- package/dist/system/jobs/index.d.ts +1 -0
- package/dist/system/jobs/index.js +1 -0
- package/dist/system/jobs/index.js.map +1 -1
- package/dist/system/jobs/sms.message.job.d.ts +12 -0
- package/dist/system/jobs/sms.message.job.js +39 -0
- package/dist/system/jobs/sms.message.job.js.map +1 -0
- package/dist/system/services/es6.jobs.service.d.ts +3 -1
- package/dist/system/services/es6.jobs.service.js +5 -1
- package/dist/system/services/es6.jobs.service.js.map +1 -1
- package/dist/system/services/mail.validation.service.d.ts +9 -2
- package/dist/system/services/mail.validation.service.js +67 -24
- package/dist/system/services/mail.validation.service.js.map +1 -1
- package/dist/system/services/mobile.validation.service.d.ts +8 -4
- package/dist/system/services/mobile.validation.service.js +51 -38
- package/dist/system/services/mobile.validation.service.js.map +1 -1
- package/dist/system/services/scheduled.event.service.js.map +1 -1
- package/dist/system/subscribers/index.d.ts +1 -0
- package/dist/system/subscribers/index.js +1 -0
- package/dist/system/subscribers/index.js.map +1 -1
- package/dist/system/subscribers/sms.message.subscriber.d.ts +12 -0
- package/dist/system/subscribers/sms.message.subscriber.js +39 -0
- package/dist/system/subscribers/sms.message.subscriber.js.map +1 -0
- package/package.json +5 -4
- package/dist/platformUtility/libraries/process.postmark.mail.d.ts +0 -9
- package/dist/platformUtility/libraries/process.postmark.mail.js +0 -44
- package/dist/platformUtility/libraries/process.postmark.mail.js.map +0 -1
- package/dist/system/dtos/mail.validation.attributes.dto.d.ts +0 -3
- package/dist/system/dtos/mail.validation.attributes.dto.js +0 -8
- package/dist/system/dtos/mail.validation.attributes.dto.js.map +0 -1
- package/dist/system/dtos/mobile.validation.attributes.dto.d.ts +0 -3
- package/dist/system/dtos/mobile.validation.attributes.dto.js +0 -8
- package/dist/system/dtos/mobile.validation.attributes.dto.js.map +0 -1
- package/dist/system/dtos/otp.validation.dto.js +0 -7
- package/dist/system/dtos/otp.validation.dto.js.map +0 -1
@@ -9,6 +9,7 @@ export * from './relationship.mapper.job';
|
|
9
9
|
export * from './report.column.sync.job';
|
10
10
|
export * from './scheduled.event.job';
|
11
11
|
export * from './scheduled.events.job';
|
12
|
+
export * from './sms.message.job';
|
12
13
|
export * from './user.group.member.job';
|
13
14
|
export * from './user.group.permission.job';
|
14
15
|
export * from './user.group.role.job';
|
@@ -25,6 +25,7 @@ __exportStar(require("./relationship.mapper.job"), exports);
|
|
25
25
|
__exportStar(require("./report.column.sync.job"), exports);
|
26
26
|
__exportStar(require("./scheduled.event.job"), exports);
|
27
27
|
__exportStar(require("./scheduled.events.job"), exports);
|
28
|
+
__exportStar(require("./sms.message.job"), exports);
|
28
29
|
__exportStar(require("./user.group.member.job"), exports);
|
29
30
|
__exportStar(require("./user.group.permission.job"), exports);
|
30
31
|
__exportStar(require("./user.group.role.job"), exports);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/system/jobs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,sDAAoC;AACpC,wDAAsC;AACtC,0DAAwC;AACxC,sDAAoC;AACpC,iDAA+B;AAC/B,+DAA6C;AAC7C,4DAA0C;AAC1C,2DAAyC;AACzC,wDAAsC;AACtC,yDAAuC;AACvC,0DAAwC;AACxC,8DAA4C;AAC5C,wDAAsC"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/system/jobs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,sDAAoC;AACpC,wDAAsC;AACtC,0DAAwC;AACxC,sDAAoC;AACpC,iDAA+B;AAC/B,+DAA6C;AAC7C,4DAA0C;AAC1C,2DAAyC;AACzC,wDAAsC;AACtC,yDAAuC;AACvC,oDAAkC;AAClC,0DAAwC;AACxC,8DAA4C;AAC5C,wDAAsC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { DatabaseEventDto } from '../../common/dtos/database.event.dto';
|
2
|
+
import { CommonJob } from '../../common/libraries/common.job';
|
3
|
+
import { QueueService } from '../../platformUtility/services/queue.service';
|
4
|
+
import { SmsService } from '../../platformUtility/services/sms.service';
|
5
|
+
import { SmsMessageEntity } from '../entities/sms.message.entity';
|
6
|
+
export declare class SmsMessageJob extends CommonJob {
|
7
|
+
protected readonly queueService: QueueService;
|
8
|
+
private readonly smsService;
|
9
|
+
constructor(queueService: QueueService, smsService: SmsService);
|
10
|
+
handle(evt: DatabaseEventDto<SmsMessageEntity>): Promise<void>;
|
11
|
+
private sendMessage;
|
12
|
+
}
|
@@ -0,0 +1,39 @@
|
|
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.SmsMessageJob = void 0;
|
13
|
+
const common_1 = require("@nestjs/common");
|
14
|
+
const common_job_1 = require("../../common/libraries/common.job");
|
15
|
+
const queue_service_1 = require("../../platformUtility/services/queue.service");
|
16
|
+
const sms_service_1 = require("../../platformUtility/services/sms.service");
|
17
|
+
const sms_message_entity_1 = require("../entities/sms.message.entity");
|
18
|
+
let SmsMessageJob = class SmsMessageJob extends common_job_1.CommonJob {
|
19
|
+
constructor(queueService, smsService) {
|
20
|
+
super();
|
21
|
+
this.queueService = queueService;
|
22
|
+
this.smsService = smsService;
|
23
|
+
}
|
24
|
+
async handle(evt) {
|
25
|
+
await this.sendMessage(evt);
|
26
|
+
}
|
27
|
+
async sendMessage(evt) {
|
28
|
+
if (!this.isNewRecord(evt))
|
29
|
+
return;
|
30
|
+
const message = await sms_message_entity_1.SmsMessageEntity.first(evt.entity.id);
|
31
|
+
return this.smsService.sendSms(message);
|
32
|
+
}
|
33
|
+
};
|
34
|
+
SmsMessageJob = __decorate([
|
35
|
+
(0, common_1.Injectable)(),
|
36
|
+
__metadata("design:paramtypes", [queue_service_1.QueueService, sms_service_1.SmsService])
|
37
|
+
], SmsMessageJob);
|
38
|
+
exports.SmsMessageJob = SmsMessageJob;
|
39
|
+
//# sourceMappingURL=sms.message.job.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sms.message.job.js","sourceRoot":"","sources":["../../../src/system/jobs/sms.message.job.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,kEAA8D;AAC9D,gFAA4E;AAC5E,4EAAwE;AACxE,uEAAkE;AAG3D,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,sBAAS;IACxC,YAA+B,YAA0B,EAAmB,UAAsB;QAC9F,KAAK,EAAE,CAAC;QADmB,iBAAY,GAAZ,YAAY,CAAc;QAAmB,eAAU,GAAV,UAAU,CAAY;IAElG,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,GAAuC;QAChD,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,GAAuC;QAC7D,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;YAAE,OAAO;QAEnC,MAAM,OAAO,GAAG,MAAM,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;CACJ,CAAA;AAdY,aAAa;IADzB,IAAA,mBAAU,GAAE;qCAEoC,4BAAY,EAA+B,wBAAU;GADzF,aAAa,CAczB;AAdY,sCAAa"}
|
@@ -9,6 +9,7 @@ import { RelationshipMapperJob } from '../jobs/relationship.mapper.job';
|
|
9
9
|
import { ReportColumnSyncJob } from '../jobs/report.column.sync.job';
|
10
10
|
import { ScheduledEventJob } from '../jobs/scheduled.event.job';
|
11
11
|
import { ScheduledEventsJob } from '../jobs/scheduled.events.job';
|
12
|
+
import { SmsMessageJob } from '../jobs/sms.message.job';
|
12
13
|
import { UserGroupMemberJob } from '../jobs/user.group.member.job';
|
13
14
|
import { UserGroupPermissionJob } from '../jobs/user.group.permission.job';
|
14
15
|
import { UserGroupRoleJob } from '../jobs/user.group.role.job';
|
@@ -24,11 +25,12 @@ export declare class Es6JobsService {
|
|
24
25
|
private readonly reportColumnSyncJob;
|
25
26
|
private readonly scheduledEventJob;
|
26
27
|
private readonly scheduledEventsJob;
|
28
|
+
private readonly smsMessageJob;
|
27
29
|
private readonly userGroupMemberJob;
|
28
30
|
private readonly userGroupPermissionJob;
|
29
31
|
private readonly userGroupRoleJob;
|
30
32
|
private jobs;
|
31
|
-
constructor(cleanScheduledEventJob: CleanScheduledEventJob, columnMapperJob: ColumnMapperJob, mailValidationJob: MailValidationJob, mobileValidationJob: MobileValidationJob, modelScannerJob: ModelScannerJob, propertyJob: PropertyJob, refreshPropertyCacheJob: RefreshPropertyCacheJob, relationshipMapperJob: RelationshipMapperJob, reportColumnSyncJob: ReportColumnSyncJob, scheduledEventJob: ScheduledEventJob, scheduledEventsJob: ScheduledEventsJob, userGroupMemberJob: UserGroupMemberJob, userGroupPermissionJob: UserGroupPermissionJob, userGroupRoleJob: UserGroupRoleJob);
|
33
|
+
constructor(cleanScheduledEventJob: CleanScheduledEventJob, columnMapperJob: ColumnMapperJob, mailValidationJob: MailValidationJob, mobileValidationJob: MobileValidationJob, modelScannerJob: ModelScannerJob, propertyJob: PropertyJob, refreshPropertyCacheJob: RefreshPropertyCacheJob, relationshipMapperJob: RelationshipMapperJob, reportColumnSyncJob: ReportColumnSyncJob, scheduledEventJob: ScheduledEventJob, scheduledEventsJob: ScheduledEventsJob, smsMessageJob: SmsMessageJob, userGroupMemberJob: UserGroupMemberJob, userGroupPermissionJob: UserGroupPermissionJob, userGroupRoleJob: UserGroupRoleJob);
|
32
34
|
alignJobs(): void;
|
33
35
|
setJobs(): void;
|
34
36
|
}
|
@@ -22,12 +22,13 @@ const relationship_mapper_job_1 = require("../jobs/relationship.mapper.job");
|
|
22
22
|
const report_column_sync_job_1 = require("../jobs/report.column.sync.job");
|
23
23
|
const scheduled_event_job_1 = require("../jobs/scheduled.event.job");
|
24
24
|
const scheduled_events_job_1 = require("../jobs/scheduled.events.job");
|
25
|
+
const sms_message_job_1 = require("../jobs/sms.message.job");
|
25
26
|
const user_group_member_job_1 = require("../jobs/user.group.member.job");
|
26
27
|
const user_group_permission_job_1 = require("../jobs/user.group.permission.job");
|
27
28
|
const user_group_role_job_1 = require("../jobs/user.group.role.job");
|
28
29
|
const platform_utility_1 = require("../../common/libraries/platform.utility");
|
29
30
|
let Es6JobsService = class Es6JobsService {
|
30
|
-
constructor(cleanScheduledEventJob, columnMapperJob, mailValidationJob, mobileValidationJob, modelScannerJob, propertyJob, refreshPropertyCacheJob, relationshipMapperJob, reportColumnSyncJob, scheduledEventJob, scheduledEventsJob, userGroupMemberJob, userGroupPermissionJob, userGroupRoleJob) {
|
31
|
+
constructor(cleanScheduledEventJob, columnMapperJob, mailValidationJob, mobileValidationJob, modelScannerJob, propertyJob, refreshPropertyCacheJob, relationshipMapperJob, reportColumnSyncJob, scheduledEventJob, scheduledEventsJob, smsMessageJob, userGroupMemberJob, userGroupPermissionJob, userGroupRoleJob) {
|
31
32
|
this.cleanScheduledEventJob = cleanScheduledEventJob;
|
32
33
|
this.columnMapperJob = columnMapperJob;
|
33
34
|
this.mailValidationJob = mailValidationJob;
|
@@ -39,6 +40,7 @@ let Es6JobsService = class Es6JobsService {
|
|
39
40
|
this.reportColumnSyncJob = reportColumnSyncJob;
|
40
41
|
this.scheduledEventJob = scheduledEventJob;
|
41
42
|
this.scheduledEventsJob = scheduledEventsJob;
|
43
|
+
this.smsMessageJob = smsMessageJob;
|
42
44
|
this.userGroupMemberJob = userGroupMemberJob;
|
43
45
|
this.userGroupPermissionJob = userGroupPermissionJob;
|
44
46
|
this.userGroupRoleJob = userGroupRoleJob;
|
@@ -59,6 +61,7 @@ let Es6JobsService = class Es6JobsService {
|
|
59
61
|
d68758d01d2e34317264c2fa8ad772f8: this.reportColumnSyncJob,
|
60
62
|
'2c33fd6bffb9a0fb71fa1f739f49e88c': this.scheduledEventJob,
|
61
63
|
'3be008ea86552ed5f79bccb25126145d': this.scheduledEventsJob,
|
64
|
+
'0b2ba737a16ace729d999a2c36e6f3aa': this.smsMessageJob,
|
62
65
|
ce97084dba48c54c97fec0aa17329f10: this.userGroupMemberJob,
|
63
66
|
'49c995caaf2e59465a5674918e5ca821': this.userGroupPermissionJob,
|
64
67
|
a1a6d61b3ecc3310cc0b7f3af72fde26: this.userGroupRoleJob,
|
@@ -81,6 +84,7 @@ Es6JobsService = __decorate([
|
|
81
84
|
report_column_sync_job_1.ReportColumnSyncJob,
|
82
85
|
scheduled_event_job_1.ScheduledEventJob,
|
83
86
|
scheduled_events_job_1.ScheduledEventsJob,
|
87
|
+
sms_message_job_1.SmsMessageJob,
|
84
88
|
user_group_member_job_1.UserGroupMemberJob,
|
85
89
|
user_group_permission_job_1.UserGroupPermissionJob,
|
86
90
|
user_group_role_job_1.UserGroupRoleJob])
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"es6.jobs.service.js","sourceRoot":"","sources":["../../../src/system/services/es6.jobs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,iFAA2E;AAC3E,iEAA4D;AAC5D,qEAAgE;AAChE,yEAAoE;AACpE,iEAA4D;AAC5D,uDAAmD;AACnD,mFAA6E;AAC7E,6EAAwE;AACxE,2EAAqE;AACrE,qEAAgE;AAChE,uEAAkE;AAClE,yEAAmE;AACnE,iFAA2E;AAC3E,qEAA+D;AAC/D,8EAA0E;AAQnE,IAAM,cAAc,GAApB,MAAM,cAAc;IAGvB,YACqB,sBAA8C,EAC9C,eAAgC,EAChC,iBAAoC,EACpC,mBAAwC,EACxC,eAAgC,EAChC,WAAwB,EACxB,uBAAgD,EAChD,qBAA4C,EAC5C,mBAAwC,EACxC,iBAAoC,EACpC,kBAAsC,EACtC,kBAAsC,EACtC,sBAA8C,EAC9C,gBAAkC;
|
1
|
+
{"version":3,"file":"es6.jobs.service.js","sourceRoot":"","sources":["../../../src/system/services/es6.jobs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,iFAA2E;AAC3E,iEAA4D;AAC5D,qEAAgE;AAChE,yEAAoE;AACpE,iEAA4D;AAC5D,uDAAmD;AACnD,mFAA6E;AAC7E,6EAAwE;AACxE,2EAAqE;AACrE,qEAAgE;AAChE,uEAAkE;AAClE,6DAAwD;AACxD,yEAAmE;AACnE,iFAA2E;AAC3E,qEAA+D;AAC/D,8EAA0E;AAQnE,IAAM,cAAc,GAApB,MAAM,cAAc;IAGvB,YACqB,sBAA8C,EAC9C,eAAgC,EAChC,iBAAoC,EACpC,mBAAwC,EACxC,eAAgC,EAChC,WAAwB,EACxB,uBAAgD,EAChD,qBAA4C,EAC5C,mBAAwC,EACxC,iBAAoC,EACpC,kBAAsC,EACtC,aAA4B,EAC5B,kBAAsC,EACtC,sBAA8C,EAC9C,gBAAkC;QAdlC,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,oBAAe,GAAf,eAAe,CAAiB;QAChC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,oBAAe,GAAf,eAAe,CAAiB;QAChC,gBAAW,GAAX,WAAW,CAAa;QACxB,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,kBAAa,GAAb,aAAa,CAAe;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAjB/C,SAAI,GAAG,EAAE,CAAC;QAmBd,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAMD,SAAS;QACL,IAAI,CAAC,IAAI,GAAG;YACR,kCAAkC,EAAE,IAAI,CAAC,sBAAsB;YAC/D,kCAAkC,EAAE,IAAI,CAAC,eAAe;YACxD,gCAAgC,EAAE,IAAI,CAAC,iBAAiB;YACxD,kCAAkC,EAAE,IAAI,CAAC,mBAAmB;YAC5D,gCAAgC,EAAE,IAAI,CAAC,eAAe;YACtD,gCAAgC,EAAE,IAAI,CAAC,WAAW;YAClD,kCAAkC,EAAE,IAAI,CAAC,uBAAuB;YAChE,gCAAgC,EAAE,IAAI,CAAC,qBAAqB;YAC5D,gCAAgC,EAAE,IAAI,CAAC,mBAAmB;YAC1D,kCAAkC,EAAE,IAAI,CAAC,iBAAiB;YAC1D,kCAAkC,EAAE,IAAI,CAAC,kBAAkB;YAC3D,kCAAkC,EAAE,IAAI,CAAC,aAAa;YACtD,gCAAgC,EAAE,IAAI,CAAC,kBAAkB;YACzD,kCAAkC,EAAE,IAAI,CAAC,sBAAsB;YAC/D,gCAAgC,EAAE,IAAI,CAAC,gBAAgB;SAC1D,CAAC;IACN,CAAC;IAMD,OAAO;QACH,kCAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACJ,CAAA;AAvDY,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAKoC,kDAAsB;QAC7B,mCAAe;QACb,uCAAiB;QACf,2CAAmB;QACvB,mCAAe;QACnB,0BAAW;QACC,oDAAuB;QACzB,+CAAqB;QACvB,4CAAmB;QACrB,uCAAiB;QAChB,yCAAkB;QACvB,+BAAa;QACR,0CAAkB;QACd,kDAAsB;QAC5B,sCAAgB;GAlB9C,cAAc,CAuD1B;AAvDY,wCAAc"}
|
@@ -1,7 +1,14 @@
|
|
1
|
+
import { MailValidationDto } from '../dtos/mail.validation.dto';
|
2
|
+
import { ValidationOptionsDto } from '../dtos/validation.options.dto';
|
1
3
|
import { MailValidationEntity } from '../entities/mail.validation.entity';
|
4
|
+
import { PropertyService } from './property.service';
|
2
5
|
export declare class MailValidationService {
|
3
|
-
|
4
|
-
|
6
|
+
private readonly propertyService;
|
7
|
+
constructor(propertyService: PropertyService);
|
8
|
+
generate(email: string, type: string, options?: ValidationOptionsDto): Promise<MailValidationEntity | {
|
5
9
|
email: string;
|
6
10
|
}>;
|
11
|
+
validate(payload: MailValidationDto): Promise<MailValidationEntity>;
|
12
|
+
private getMaxAttempts;
|
13
|
+
private getRandomOtp;
|
7
14
|
}
|
@@ -1,41 +1,84 @@
|
|
1
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
|
+
};
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
12
|
exports.MailValidationService = void 0;
|
13
|
+
const common_1 = require("@nestjs/common");
|
4
14
|
const typeorm_1 = require("typeorm");
|
5
|
-
const
|
15
|
+
const access_exception_1 = require("../../common/exceptions/access.exception");
|
6
16
|
const operation_exception_1 = require("../../common/exceptions/operation.exception");
|
17
|
+
const date_util_1 = require("../../common/libraries/date.util");
|
18
|
+
const platform_utility_1 = require("../../common/libraries/platform.utility");
|
7
19
|
const mail_validation_entity_1 = require("../entities/mail.validation.entity");
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
where: { email, type, validity: (0, typeorm_1.MoreThanOrEqual)(now), completed_on: (0, typeorm_1.IsNull)() },
|
13
|
-
});
|
14
|
-
if (!validation)
|
15
|
-
throw new operation_exception_1.OperationException(`cannot validate payload `);
|
16
|
-
const attempts = validation?.attempts || 0;
|
17
|
-
validation.attempts += 1;
|
18
|
-
await validation.save();
|
19
|
-
if (attempts > 5)
|
20
|
-
throw new operation_exception_1.OperationException(`cannot validate payload `);
|
21
|
-
if (validation.code.trim() !== code.trim())
|
22
|
-
throw new operation_exception_1.OperationException(`cannot validate payload `);
|
23
|
-
validation.completed_on = now;
|
24
|
-
return validation.save();
|
20
|
+
const property_service_1 = require("./property.service");
|
21
|
+
let MailValidationService = class MailValidationService {
|
22
|
+
constructor(propertyService) {
|
23
|
+
this.propertyService = propertyService;
|
25
24
|
}
|
26
|
-
async
|
25
|
+
async generate(email, type, options = {}) {
|
27
26
|
const now = new Date();
|
28
27
|
const record = await mail_validation_entity_1.MailValidationEntity.firstOrNew({ email, completed_on: (0, typeorm_1.IsNull)(), type, validity: (0, typeorm_1.LessThan)(now) });
|
29
|
-
|
28
|
+
const retriggerLimit = await this.propertyService.get('mail.otp.retrigger.minutes', 1);
|
29
|
+
if (record.id && date_util_1.DateUtil.getFutureDateTime(+retriggerLimit, record.created_at) > date_util_1.DateUtil.getDateTime()) {
|
30
|
+
return { email };
|
31
|
+
}
|
32
|
+
if (record.id && date_util_1.DateUtil.getFutureDateTime(1, record.created_at) > date_util_1.DateUtil.getDateTime())
|
30
33
|
return { email };
|
31
|
-
|
32
|
-
|
34
|
+
const maxAttempts = await this.getMaxAttempts();
|
35
|
+
if (record.id && record.attempts > +maxAttempts)
|
36
|
+
throw new operation_exception_1.OperationException(`Too many attempts.. please wait for 15 minutes to request new OTP`);
|
37
|
+
if (!record.code) {
|
38
|
+
record.code = this.getRandomOtp();
|
33
39
|
record.attempts = 0;
|
34
40
|
}
|
35
|
-
record.validity =
|
41
|
+
record.validity = date_util_1.DateUtil.getFutureDateTime(options.validityInMinutes || 15);
|
36
42
|
record.completed_on = null;
|
43
|
+
const attributes = options.attributes || {};
|
44
|
+
record.attributes = { ...record.attributes, ...attributes };
|
37
45
|
return record.save();
|
38
46
|
}
|
39
|
-
|
47
|
+
async validate(payload) {
|
48
|
+
const now = new Date();
|
49
|
+
const validation = await mail_validation_entity_1.MailValidationEntity.findOne({
|
50
|
+
where: {
|
51
|
+
email: payload.email,
|
52
|
+
type: payload.type,
|
53
|
+
completed_on: (0, typeorm_1.IsNull)(),
|
54
|
+
validity: (0, typeorm_1.MoreThan)(now),
|
55
|
+
},
|
56
|
+
});
|
57
|
+
if (!validation)
|
58
|
+
throw new operation_exception_1.OperationException('Invalid code!');
|
59
|
+
const maxAttempts = await this.getMaxAttempts();
|
60
|
+
if (validation.attempts > maxAttempts)
|
61
|
+
throw new access_exception_1.AccessException('Too many attempts.. wait for 15 minutes to regenerate');
|
62
|
+
if (validation.code !== payload.code) {
|
63
|
+
validation.attempts += 1;
|
64
|
+
await validation.save();
|
65
|
+
throw new operation_exception_1.OperationException('Invalid code!');
|
66
|
+
}
|
67
|
+
validation.completed_on = date_util_1.DateUtil.getDateTime();
|
68
|
+
return validation.save();
|
69
|
+
}
|
70
|
+
async getMaxAttempts() {
|
71
|
+
const attempts = await this.propertyService.get('mail.otp.max.attempts', 5);
|
72
|
+
return +attempts;
|
73
|
+
}
|
74
|
+
getRandomOtp() {
|
75
|
+
const isProduction = platform_utility_1.PlatformUtility.isProductionEnvironment();
|
76
|
+
return isProduction ? platform_utility_1.PlatformUtility.generateRandomNumber(6) : 111111;
|
77
|
+
}
|
78
|
+
};
|
79
|
+
MailValidationService = __decorate([
|
80
|
+
(0, common_1.Injectable)(),
|
81
|
+
__metadata("design:paramtypes", [property_service_1.PropertyService])
|
82
|
+
], MailValidationService);
|
40
83
|
exports.MailValidationService = MailValidationService;
|
41
84
|
//# sourceMappingURL=mail.validation.service.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mail.validation.service.js","sourceRoot":"","sources":["../../../src/system/services/mail.validation.service.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"mail.validation.service.js","sourceRoot":"","sources":["../../../src/system/services/mail.validation.service.ts"],"names":[],"mappings":"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"}
|
@@ -1,10 +1,14 @@
|
|
1
|
-
import {
|
1
|
+
import { MobileValidationDto } from '../dtos';
|
2
|
+
import { ValidationOptionsDto } from '../dtos/validation.options.dto';
|
2
3
|
import { MobileValidationEntity } from '../entities/mobile.validation.entity';
|
4
|
+
import { PropertyService } from './property.service';
|
3
5
|
export declare class MobileValidationService {
|
4
|
-
|
6
|
+
private readonly propertyService;
|
7
|
+
constructor(propertyService: PropertyService);
|
8
|
+
generate(mobile: number, type: string, options?: ValidationOptionsDto): Promise<MobileValidationEntity | {
|
5
9
|
mobile: number;
|
6
10
|
}>;
|
7
|
-
|
8
|
-
validateOtp(payload: OtpValidationDto): Promise<MobileValidationEntity>;
|
11
|
+
validate(payload: MobileValidationDto): Promise<MobileValidationEntity>;
|
9
12
|
private getRandomOtp;
|
13
|
+
private getMaxAttempts;
|
10
14
|
}
|
@@ -1,76 +1,89 @@
|
|
1
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
|
+
};
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
12
|
exports.MobileValidationService = void 0;
|
13
|
+
const common_1 = require("@nestjs/common");
|
4
14
|
const typeorm_1 = require("typeorm");
|
5
|
-
const
|
6
|
-
const
|
15
|
+
const access_exception_1 = require("../../common/exceptions/access.exception");
|
16
|
+
const operation_exception_1 = require("../../common/exceptions/operation.exception");
|
17
|
+
const date_util_1 = require("../../common/libraries/date.util");
|
18
|
+
const platform_utility_1 = require("../../common/libraries/platform.utility");
|
7
19
|
const mobile_validation_entity_1 = require("../entities/mobile.validation.entity");
|
8
|
-
const
|
9
|
-
class MobileValidationService {
|
10
|
-
|
20
|
+
const property_service_1 = require("./property.service");
|
21
|
+
let MobileValidationService = class MobileValidationService {
|
22
|
+
constructor(propertyService) {
|
23
|
+
this.propertyService = propertyService;
|
24
|
+
}
|
25
|
+
async generate(mobile, type, options) {
|
11
26
|
const now = new Date();
|
12
27
|
const record = await mobile_validation_entity_1.MobileValidationEntity.firstOrNew({
|
13
28
|
dialing_code: 91,
|
14
29
|
mobile,
|
30
|
+
type,
|
15
31
|
completed_on: (0, typeorm_1.IsNull)(),
|
16
|
-
validity: (0, typeorm_1.
|
32
|
+
validity: (0, typeorm_1.MoreThan)(now),
|
17
33
|
});
|
18
|
-
|
34
|
+
const retriggerLimit = await this.propertyService.get('mobile.otp.retrigger.minutes', 1);
|
35
|
+
if (record.id && date_util_1.DateUtil.getFutureDateTime(+retriggerLimit, record.created_at) > date_util_1.DateUtil.getDateTime()) {
|
19
36
|
return { mobile };
|
20
37
|
}
|
38
|
+
const maxAttempts = await this.getMaxAttempts();
|
39
|
+
if (record.id && record.attempts > +maxAttempts)
|
40
|
+
throw new operation_exception_1.OperationException(`Too many attempts.. please wait for 15 minutes to request new OTP`);
|
21
41
|
if (!record.otp) {
|
22
42
|
record.otp = this.getRandomOtp();
|
23
43
|
record.attempts = 0;
|
24
44
|
}
|
25
|
-
record.validity =
|
45
|
+
record.validity = date_util_1.DateUtil.getFutureDateTime(options.validityInMinutes || 15);
|
26
46
|
record.completed_on = null;
|
47
|
+
const attributes = options.attributes || {};
|
27
48
|
record.attributes = { ...record.attributes, ...attributes };
|
28
|
-
|
29
|
-
return this.triggerNotification(record);
|
30
|
-
}
|
31
|
-
async triggerNotification(validation) {
|
32
|
-
const template = await entities_1.SmsTemplateEntity.findOne({
|
33
|
-
where: { identifier: 'mobile.validation' },
|
34
|
-
});
|
35
|
-
if (!template)
|
36
|
-
return validation;
|
37
|
-
const sms = entities_1.SmsMessageEntity.create({
|
38
|
-
source_type: SOURCEHASH.mobileValidation,
|
39
|
-
source_id: validation.id,
|
40
|
-
dialing_code: 91,
|
41
|
-
mobile: validation.mobile,
|
42
|
-
});
|
43
|
-
sms.template_id = template.id;
|
44
|
-
sms.content = common_1.PlatformUtility.replaceTemplate(template.message, {
|
45
|
-
otp: validation.otp,
|
46
|
-
});
|
47
|
-
return validation;
|
49
|
+
return record.save();
|
48
50
|
}
|
49
|
-
async
|
51
|
+
async validate(payload) {
|
52
|
+
const now = new Date();
|
50
53
|
const validation = await mobile_validation_entity_1.MobileValidationEntity.findOne({
|
51
54
|
where: {
|
52
55
|
dialing_code: 91,
|
53
56
|
mobile: payload.mobile,
|
57
|
+
type: payload.type,
|
54
58
|
completed_on: (0, typeorm_1.IsNull)(),
|
55
|
-
validity: (0, typeorm_1.
|
59
|
+
validity: (0, typeorm_1.MoreThan)(now),
|
56
60
|
},
|
57
61
|
});
|
58
62
|
if (!validation)
|
59
|
-
throw new
|
60
|
-
|
61
|
-
|
63
|
+
throw new operation_exception_1.OperationException('Invalid OTP!');
|
64
|
+
const maxAttempts = await this.getMaxAttempts();
|
65
|
+
if (validation.attempts > maxAttempts)
|
66
|
+
throw new access_exception_1.AccessException('Too many attempts.. wait for 15 minutes to regenerate');
|
62
67
|
if (validation.otp !== payload.otp) {
|
63
68
|
validation.attempts += 1;
|
64
69
|
await validation.save();
|
65
|
-
throw new
|
70
|
+
throw new operation_exception_1.OperationException('Invalid OTP!');
|
66
71
|
}
|
67
|
-
validation.completed_on =
|
72
|
+
validation.completed_on = date_util_1.DateUtil.getDateTime();
|
68
73
|
return validation.save();
|
69
74
|
}
|
70
75
|
getRandomOtp() {
|
71
|
-
const isProduction =
|
72
|
-
return isProduction ?
|
76
|
+
const isProduction = platform_utility_1.PlatformUtility.isProductionEnvironment();
|
77
|
+
return isProduction ? platform_utility_1.PlatformUtility.generateRandomNumber(4) : 1111;
|
78
|
+
}
|
79
|
+
async getMaxAttempts() {
|
80
|
+
const attempts = await this.propertyService.get('mobile.otp.max.attempts', 5);
|
81
|
+
return +attempts;
|
73
82
|
}
|
74
|
-
}
|
83
|
+
};
|
84
|
+
MobileValidationService = __decorate([
|
85
|
+
(0, common_1.Injectable)(),
|
86
|
+
__metadata("design:paramtypes", [property_service_1.PropertyService])
|
87
|
+
], MobileValidationService);
|
75
88
|
exports.MobileValidationService = MobileValidationService;
|
76
89
|
//# sourceMappingURL=mobile.validation.service.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mobile.validation.service.js","sourceRoot":"","sources":["../../../src/system/services/mobile.validation.service.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"mobile.validation.service.js","sourceRoot":"","sources":["../../../src/system/services/mobile.validation.service.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scheduled.event.service.js","sourceRoot":"","sources":["../../../src/system/services/scheduled.event.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,sCAAsC;AACtC,qCAAgD;AAChD,gEAA4D;AAC5D,uEAAkE;AAClE,+EAA0E;AAC1E,uDAAwD;
|
1
|
+
{"version":3,"file":"scheduled.event.service.js","sourceRoot":"","sources":["../../../src/system/services/scheduled.event.service.ts"],"names":[],"mappings":"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"}
|
@@ -4,6 +4,7 @@ export * from './mobile.validation.subscriber';
|
|
4
4
|
export * from './property.subscriber';
|
5
5
|
export * from './relationship.subscriber';
|
6
6
|
export * from './scheduled.event.subscriber';
|
7
|
+
export * from './sms.message.subscriber';
|
7
8
|
export * from './user.group.member.subscriber';
|
8
9
|
export * from './user.group.permission.subscriber';
|
9
10
|
export * from './user.group.role.subscriber';
|
@@ -20,6 +20,7 @@ __exportStar(require("./mobile.validation.subscriber"), exports);
|
|
20
20
|
__exportStar(require("./property.subscriber"), exports);
|
21
21
|
__exportStar(require("./relationship.subscriber"), exports);
|
22
22
|
__exportStar(require("./scheduled.event.subscriber"), exports);
|
23
|
+
__exportStar(require("./sms.message.subscriber"), exports);
|
23
24
|
__exportStar(require("./user.group.member.subscriber"), exports);
|
24
25
|
__exportStar(require("./user.group.permission.subscriber"), exports);
|
25
26
|
__exportStar(require("./user.group.role.subscriber"), exports);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/system/subscribers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,+DAA6C;AAC7C,iEAA+C;AAC/C,wDAAsC;AACtC,4DAA0C;AAC1C,+DAA6C;AAC7C,iEAA+C;AAC/C,qEAAmD;AACnD,+DAA6C"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/system/subscribers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,+DAA6C;AAC7C,iEAA+C;AAC/C,wDAAsC;AACtC,4DAA0C;AAC1C,+DAA6C;AAC7C,2DAAyC;AACzC,iEAA+C;AAC/C,qEAAmD;AACnD,+DAA6C"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { DataSource, InsertEvent, UpdateEvent } from 'typeorm';
|
2
|
+
import { CommonSubscriber } from '../../common/libraries/common.subscriber';
|
3
|
+
import { SmsMessageEntity } from '../entities/sms.message.entity';
|
4
|
+
import { SmsMessageJob } from '../jobs/sms.message.job';
|
5
|
+
export declare class SmsMessageSubscriber extends CommonSubscriber<SmsMessageEntity> {
|
6
|
+
private readonly dataSource;
|
7
|
+
private readonly smsMessageJob;
|
8
|
+
constructor(dataSource: DataSource, smsMessageJob: SmsMessageJob);
|
9
|
+
listenTo(): typeof SmsMessageEntity;
|
10
|
+
afterInsert(event: InsertEvent<SmsMessageEntity>): Promise<void>;
|
11
|
+
afterUpdate(event: UpdateEvent<SmsMessageEntity>): Promise<void>;
|
12
|
+
}
|
@@ -0,0 +1,39 @@
|
|
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.SmsMessageSubscriber = void 0;
|
13
|
+
const typeorm_1 = require("typeorm");
|
14
|
+
const common_subscriber_1 = require("../../common/libraries/common.subscriber");
|
15
|
+
const sms_message_entity_1 = require("../entities/sms.message.entity");
|
16
|
+
const sms_message_job_1 = require("../jobs/sms.message.job");
|
17
|
+
let SmsMessageSubscriber = class SmsMessageSubscriber extends common_subscriber_1.CommonSubscriber {
|
18
|
+
constructor(dataSource, smsMessageJob) {
|
19
|
+
super();
|
20
|
+
this.dataSource = dataSource;
|
21
|
+
this.smsMessageJob = smsMessageJob;
|
22
|
+
dataSource.subscribers.push(this);
|
23
|
+
}
|
24
|
+
listenTo() {
|
25
|
+
return sms_message_entity_1.SmsMessageEntity;
|
26
|
+
}
|
27
|
+
async afterInsert(event) {
|
28
|
+
await this.smsMessageJob.dispatch(this.getEventData(event));
|
29
|
+
}
|
30
|
+
async afterUpdate(event) {
|
31
|
+
await this.smsMessageJob.dispatch(this.getEventData(event));
|
32
|
+
}
|
33
|
+
};
|
34
|
+
SmsMessageSubscriber = __decorate([
|
35
|
+
(0, typeorm_1.EventSubscriber)(),
|
36
|
+
__metadata("design:paramtypes", [typeorm_1.DataSource, sms_message_job_1.SmsMessageJob])
|
37
|
+
], SmsMessageSubscriber);
|
38
|
+
exports.SmsMessageSubscriber = SmsMessageSubscriber;
|
39
|
+
//# sourceMappingURL=sms.message.subscriber.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sms.message.subscriber.js","sourceRoot":"","sources":["../../../src/system/subscribers/sms.message.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAgF;AAChF,gFAA4E;AAC5E,uEAAkE;AAClE,6DAAwD;AAGjD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,oCAAkC;IACxE,YAA6B,UAAsB,EAAmB,aAA4B;QAC9F,KAAK,EAAE,CAAC;QADiB,eAAU,GAAV,UAAU,CAAY;QAAmB,kBAAa,GAAb,aAAa,CAAe;QAE9F,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,QAAQ;QACJ,OAAO,qCAAgB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAoC;QAClD,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAoC;QAClD,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;CACJ,CAAA;AAhBY,oBAAoB;IADhC,IAAA,yBAAe,GAAE;qCAE2B,oBAAU,EAAkC,+BAAa;GADzF,oBAAoB,CAgBhC;AAhBY,oDAAoB"}
|