@servicelabsco/slabs-access-manager 1.0.49 → 1.0.52
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/access/controllers/index.d.ts +1 -0
- package/dist/access/controllers/index.js +1 -0
- package/dist/access/controllers/index.js.map +1 -1
- package/dist/access/controllers/lock.script.controller.d.ts +17 -0
- package/dist/access/controllers/lock.script.controller.js +94 -0
- package/dist/access/controllers/lock.script.controller.js.map +1 -0
- package/dist/access/dtos/add.lock.script.dto.d.ts +9 -0
- package/dist/access/dtos/add.lock.script.dto.js +48 -0
- package/dist/access/dtos/add.lock.script.dto.js.map +1 -0
- package/dist/access/dtos/index.d.ts +2 -0
- package/dist/access/dtos/index.js +2 -0
- package/dist/access/dtos/index.js.map +1 -1
- package/dist/access/dtos/lock.script.list.filter.dto.d.ts +4 -0
- package/dist/access/dtos/lock.script.list.filter.dto.js +25 -0
- package/dist/access/dtos/lock.script.list.filter.dto.js.map +1 -0
- package/dist/access/entities/lock.script.entity.d.ts +1 -0
- package/dist/access/entities/lock.script.entity.js +4 -0
- package/dist/access/entities/lock.script.entity.js.map +1 -1
- package/dist/access/es6.classes.d.ts +5 -2
- package/dist/access/es6.classes.js +10 -0
- package/dist/access/es6.classes.js.map +1 -1
- package/dist/access/libraries/index.d.ts +3 -0
- package/dist/access/libraries/index.js +3 -0
- package/dist/access/libraries/index.js.map +1 -1
- package/dist/access/libraries/process.email.notification.d.ts +0 -1
- package/dist/access/libraries/process.email.notification.js +25 -25
- package/dist/access/libraries/process.email.notification.js.map +1 -1
- package/dist/access/libraries/process.internal.notification.js +28 -4
- package/dist/access/libraries/process.internal.notification.js.map +1 -1
- package/dist/access/libraries/process.lock.script.data.d.ts +20 -0
- package/dist/access/libraries/process.lock.script.data.js +85 -0
- package/dist/access/libraries/process.lock.script.data.js.map +1 -0
- package/dist/access/libraries/process.lock.script.list.d.ts +21 -0
- package/dist/access/libraries/process.lock.script.list.js +40 -0
- package/dist/access/libraries/process.lock.script.list.js.map +1 -0
- package/dist/access/libraries/process.report.data.d.ts +0 -1
- package/dist/access/libraries/process.report.data.js +7 -43
- package/dist/access/libraries/process.report.data.js.map +1 -1
- package/dist/access/libraries/sanitize.email.addresses.d.ts +1 -0
- package/dist/access/libraries/sanitize.email.addresses.js +31 -0
- package/dist/access/libraries/sanitize.email.addresses.js.map +1 -0
- package/dist/access/libraries/send.email.notification.js +8 -2
- package/dist/access/libraries/send.email.notification.js.map +1 -1
- package/dist/access/services/notification.service.js +7 -4
- package/dist/access/services/notification.service.js.map +1 -1
- package/dist/accessWorkflow/jobs/sync.workflow.activity.job.js +1 -1
- package/dist/accessWorkflow/jobs/sync.workflow.activity.job.js.map +1 -1
- package/dist/accessWorkflow/libraries/common.workflow.generator.js +13 -5
- package/dist/accessWorkflow/libraries/common.workflow.generator.js.map +1 -1
- package/dist/migrations/1791000000000-AddPriorityBzLockScriptsTable.d.ts +5 -0
- package/dist/migrations/1791000000000-AddPriorityBzLockScriptsTable.js +15 -0
- package/dist/migrations/1791000000000-AddPriorityBzLockScriptsTable.js.map +1 -0
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ const path_1 = require("path");
|
|
|
7
7
|
const email_style_entity_1 = require("../entities/email.style.entity");
|
|
8
8
|
const email_template_log_entity_1 = require("../entities/email.template.log.entity");
|
|
9
9
|
const email_template_recipient_entity_1 = require("../entities/email.template.recipient.entity");
|
|
10
|
+
const sanitize_email_addresses_1 = require("./sanitize.email.addresses");
|
|
10
11
|
class ProcessEmailNotification {
|
|
11
12
|
constructor(mailService, propertyService, remoteRequestService) {
|
|
12
13
|
this.mailService = mailService;
|
|
@@ -76,18 +77,34 @@ class ProcessEmailNotification {
|
|
|
76
77
|
}
|
|
77
78
|
async sendEmail() {
|
|
78
79
|
let { to, subject, html, files, from, cc, metadata, replyTo, bcc } = { ...this.payload };
|
|
79
|
-
to =
|
|
80
|
-
cc =
|
|
81
|
-
bcc =
|
|
82
|
-
if (!to
|
|
83
|
-
global.console.log('
|
|
80
|
+
to = (0, sanitize_email_addresses_1.sanitizeEmailAddresses)(to);
|
|
81
|
+
cc = (0, sanitize_email_addresses_1.sanitizeEmailAddresses)(cc);
|
|
82
|
+
bcc = (0, sanitize_email_addresses_1.sanitizeEmailAddresses)(bcc);
|
|
83
|
+
if (!to.length) {
|
|
84
|
+
global.console.log('Email send rejected: no valid recipient addresses');
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const options = {
|
|
88
|
+
to,
|
|
89
|
+
subject: subject || '',
|
|
90
|
+
html: html || '',
|
|
91
|
+
files,
|
|
92
|
+
from,
|
|
93
|
+
cc,
|
|
94
|
+
replyTo,
|
|
95
|
+
bcc,
|
|
96
|
+
};
|
|
97
|
+
try {
|
|
98
|
+
return await this.mailService.send(options, metadata);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
102
|
+
global.console.error(`Email send failed: ${message}`);
|
|
84
103
|
return;
|
|
85
104
|
}
|
|
86
|
-
const options = { to, subject, html, files, from, cc, replyTo, bcc };
|
|
87
|
-
return this.mailService.send(options, metadata);
|
|
88
105
|
}
|
|
89
106
|
async setBody() {
|
|
90
|
-
let sanitizedHtml;
|
|
107
|
+
let sanitizedHtml = '';
|
|
91
108
|
const serverHtml = await this.getServerEmailTemplate();
|
|
92
109
|
if (serverHtml)
|
|
93
110
|
sanitizedHtml = serverHtml;
|
|
@@ -159,23 +176,6 @@ class ProcessEmailNotification {
|
|
|
159
176
|
const encrypt = btoa(`${serverUrlUserName ?? ''}:${serverUrlUserPassword ?? ''}`);
|
|
160
177
|
return `Basic ${encrypt}`;
|
|
161
178
|
}
|
|
162
|
-
sanitizeEmails(to) {
|
|
163
|
-
if (!to)
|
|
164
|
-
return [];
|
|
165
|
-
const emails = Array.isArray(to) ? to : [to];
|
|
166
|
-
const isValidEmail = (email) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
|
|
167
|
-
const valid = [];
|
|
168
|
-
for (const item of emails) {
|
|
169
|
-
const sanitized = item.trim().toLowerCase();
|
|
170
|
-
if (isValidEmail(sanitized)) {
|
|
171
|
-
valid.push(sanitized);
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
global.console.log(`Invalid email address: ${sanitized}`);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
return valid;
|
|
178
|
-
}
|
|
179
179
|
init() {
|
|
180
180
|
if (!this.remoteRequestService)
|
|
181
181
|
throw new nestjs_utility_services_1.OperationException(`Remote request service is not defined`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.email.notification.js","sourceRoot":"","sources":["../../../src/access/libraries/process.email.notification.ts"],"names":[],"mappings":";;;AAAA,oFASgD;AAChD,2BAAkC;AAClC,+BAA4B;AAE5B,uEAAkE;AAClE,qFAA+E;AAC/E,iGAA2F;
|
|
1
|
+
{"version":3,"file":"process.email.notification.js","sourceRoot":"","sources":["../../../src/access/libraries/process.email.notification.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProcessInternalNotification = void 0;
|
|
4
4
|
const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
|
|
5
|
+
const sanitize_email_addresses_1 = require("./sanitize.email.addresses");
|
|
5
6
|
class ProcessInternalNotification {
|
|
6
7
|
constructor(mailService, propertyService, remoteRequestService) {
|
|
7
8
|
this.mailService = mailService;
|
|
@@ -15,12 +16,35 @@ class ProcessInternalNotification {
|
|
|
15
16
|
return this.sendEmail();
|
|
16
17
|
}
|
|
17
18
|
async sendEmail() {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
let { to, subject, html, files, from, cc, metadata, replyTo, bcc } = { ...this.payload };
|
|
20
|
+
to = (0, sanitize_email_addresses_1.sanitizeEmailAddresses)(to);
|
|
21
|
+
cc = (0, sanitize_email_addresses_1.sanitizeEmailAddresses)(cc);
|
|
22
|
+
bcc = (0, sanitize_email_addresses_1.sanitizeEmailAddresses)(bcc);
|
|
23
|
+
if (!to.length) {
|
|
24
|
+
global.console.log('Email send rejected: no valid recipient addresses');
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const options = {
|
|
28
|
+
to,
|
|
29
|
+
subject: subject || '',
|
|
30
|
+
html: html || '',
|
|
31
|
+
files,
|
|
32
|
+
from,
|
|
33
|
+
cc,
|
|
34
|
+
replyTo,
|
|
35
|
+
bcc,
|
|
36
|
+
};
|
|
37
|
+
try {
|
|
38
|
+
return await this.mailService.send(options, metadata);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
42
|
+
global.console.error(`Email send failed: ${message}`);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
21
45
|
}
|
|
22
46
|
async setBody() {
|
|
23
|
-
let sanitizedHtml;
|
|
47
|
+
let sanitizedHtml = '';
|
|
24
48
|
const serverHtml = await this.getServerEmailTemplate();
|
|
25
49
|
if (serverHtml)
|
|
26
50
|
sanitizedHtml = serverHtml;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.internal.notification.js","sourceRoot":"","sources":["../../../src/access/libraries/process.internal.notification.ts"],"names":[],"mappings":";;;AAAA,oFAOgD;
|
|
1
|
+
{"version":3,"file":"process.internal.notification.js","sourceRoot":"","sources":["../../../src/access/libraries/process.internal.notification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SystemScriptEntity } from '@servicelabsco/nestjs-utility-services';
|
|
2
|
+
import { ProcessCommonData } from '../../accessUtility/libraries/process.common.data';
|
|
3
|
+
import { AddLockScriptDto } from '../dtos/add.lock.script.dto';
|
|
4
|
+
import { AccessBusinessEntity } from '../entities/access.business.entity';
|
|
5
|
+
import { LockScriptEntity } from '../entities/lock.script.entity';
|
|
6
|
+
export declare class ProcessLockScriptData extends ProcessCommonData {
|
|
7
|
+
private readonly business;
|
|
8
|
+
protected payload: AddLockScriptDto;
|
|
9
|
+
protected systemScript: SystemScriptEntity;
|
|
10
|
+
protected allowedColumns: string[];
|
|
11
|
+
constructor(business: AccessBusinessEntity);
|
|
12
|
+
process(payload: AddLockScriptDto): Promise<LockScriptEntity>;
|
|
13
|
+
private set;
|
|
14
|
+
private validate;
|
|
15
|
+
private validateUniquePriority;
|
|
16
|
+
private validateUniqueName;
|
|
17
|
+
private getSystemScript;
|
|
18
|
+
private createSystemScript;
|
|
19
|
+
private updateSystemScript;
|
|
20
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProcessLockScriptData = void 0;
|
|
4
|
+
const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
const process_common_data_1 = require("../../accessUtility/libraries/process.common.data");
|
|
7
|
+
const lock_script_entity_1 = require("../entities/lock.script.entity");
|
|
8
|
+
class ProcessLockScriptData extends process_common_data_1.ProcessCommonData {
|
|
9
|
+
constructor(business) {
|
|
10
|
+
super();
|
|
11
|
+
this.business = business;
|
|
12
|
+
this.allowedColumns = ['source_type', 'priority', 'attributes'];
|
|
13
|
+
}
|
|
14
|
+
async process(payload) {
|
|
15
|
+
this.payload = payload;
|
|
16
|
+
await this.validate();
|
|
17
|
+
return this.set();
|
|
18
|
+
}
|
|
19
|
+
async set() {
|
|
20
|
+
let entity = lock_script_entity_1.LockScriptEntity.create({ business_id: this.business.id });
|
|
21
|
+
if (this.payload.id)
|
|
22
|
+
entity = await lock_script_entity_1.LockScriptEntity.first(this.payload.id);
|
|
23
|
+
if (entity?.business_id !== this.business.id)
|
|
24
|
+
throw new nestjs_utility_services_1.AccessException();
|
|
25
|
+
for (const column of this.allowedColumns)
|
|
26
|
+
entity[column] = this.payload[column];
|
|
27
|
+
entity.script_id = this.systemScript.id;
|
|
28
|
+
return entity.save();
|
|
29
|
+
}
|
|
30
|
+
async validate() {
|
|
31
|
+
await this.validateUniquePriority();
|
|
32
|
+
await this.validateUniqueName();
|
|
33
|
+
this.systemScript = await this.getSystemScript();
|
|
34
|
+
this.throwExceptionOnError();
|
|
35
|
+
}
|
|
36
|
+
async validateUniquePriority() {
|
|
37
|
+
const { source_type, priority } = this.payload;
|
|
38
|
+
if (!source_type || priority === undefined || priority === null)
|
|
39
|
+
return;
|
|
40
|
+
const where = { business_id: this.business.id, source_type, priority, deleted_at: (0, typeorm_1.IsNull)() };
|
|
41
|
+
if (this.payload.id)
|
|
42
|
+
where.id = (0, typeorm_1.Not)(this.payload.id);
|
|
43
|
+
const duplicates = await lock_script_entity_1.LockScriptEntity.count({ where });
|
|
44
|
+
if (duplicates)
|
|
45
|
+
throw new nestjs_utility_services_1.OperationException(`Priority ${priority} is already used for source type ${source_type}`);
|
|
46
|
+
}
|
|
47
|
+
async validateUniqueName() {
|
|
48
|
+
const { source_type, name } = this.payload;
|
|
49
|
+
if (!source_type || !name)
|
|
50
|
+
return;
|
|
51
|
+
const where = { business_id: this.business.id, source_type, deleted_at: (0, typeorm_1.IsNull)(), script: { name } };
|
|
52
|
+
if (this.payload.id)
|
|
53
|
+
where.id = (0, typeorm_1.Not)(this.payload.id);
|
|
54
|
+
const duplicate = await lock_script_entity_1.LockScriptEntity.findOne({ where, relations: ['script'] });
|
|
55
|
+
if (duplicate)
|
|
56
|
+
throw new nestjs_utility_services_1.OperationException(`Name ${name} is already used for source type ${source_type}`);
|
|
57
|
+
}
|
|
58
|
+
async getSystemScript() {
|
|
59
|
+
if (!this.payload.id)
|
|
60
|
+
return this.createSystemScript();
|
|
61
|
+
const ls = await lock_script_entity_1.LockScriptEntity.first(this.payload.id, { relations: ['script'] });
|
|
62
|
+
if (ls?.business_id && ls?.business_id !== this.business.id)
|
|
63
|
+
throw new nestjs_utility_services_1.AccessException();
|
|
64
|
+
return this.updateSystemScript(ls?.script);
|
|
65
|
+
}
|
|
66
|
+
async createSystemScript() {
|
|
67
|
+
const { name, script } = this.payload;
|
|
68
|
+
if (!script)
|
|
69
|
+
throw new nestjs_utility_services_1.OperationException('Script is required');
|
|
70
|
+
const ss = nestjs_utility_services_1.SystemScriptEntity.create({ name, script });
|
|
71
|
+
return ss.save();
|
|
72
|
+
}
|
|
73
|
+
async updateSystemScript(ss) {
|
|
74
|
+
if (!ss)
|
|
75
|
+
return this.createSystemScript();
|
|
76
|
+
const { name, script } = this.payload;
|
|
77
|
+
if (typeof name !== 'undefined')
|
|
78
|
+
ss.name = name;
|
|
79
|
+
if (typeof script !== 'undefined')
|
|
80
|
+
ss.script = script;
|
|
81
|
+
return ss.save();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.ProcessLockScriptData = ProcessLockScriptData;
|
|
85
|
+
//# sourceMappingURL=process.lock.script.data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.lock.script.data.js","sourceRoot":"","sources":["../../../src/access/libraries/process.lock.script.data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ListResponseDto } from '../dtos/list.response.dto';
|
|
2
|
+
import { LockScriptListFilterDto } from '../dtos/lock.script.list.filter.dto';
|
|
3
|
+
import { AccessBusinessEntity } from '../entities/access.business.entity';
|
|
4
|
+
import { ListingService } from '../services/listing.service';
|
|
5
|
+
import { ProcessCommonFinnotoList } from './process.common.finnoto.list';
|
|
6
|
+
export declare class ProcessLockScriptList extends ProcessCommonFinnotoList {
|
|
7
|
+
protected readonly business: AccessBusinessEntity;
|
|
8
|
+
protected readonly listingService: ListingService;
|
|
9
|
+
protected filter: LockScriptListFilterDto;
|
|
10
|
+
protected config: {
|
|
11
|
+
sql: string;
|
|
12
|
+
order: string;
|
|
13
|
+
columns: string[];
|
|
14
|
+
metrics: any[];
|
|
15
|
+
};
|
|
16
|
+
constructor(business: AccessBusinessEntity, listingService: ListingService);
|
|
17
|
+
process(filter: LockScriptListFilterDto): Promise<ListResponseDto>;
|
|
18
|
+
private processFilters;
|
|
19
|
+
private filterSourceType;
|
|
20
|
+
private search;
|
|
21
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProcessLockScriptList = void 0;
|
|
4
|
+
const process_common_finnoto_list_1 = require("./process.common.finnoto.list");
|
|
5
|
+
class ProcessLockScriptList extends process_common_finnoto_list_1.ProcessCommonFinnotoList {
|
|
6
|
+
constructor(business, listingService) {
|
|
7
|
+
super();
|
|
8
|
+
this.business = business;
|
|
9
|
+
this.listingService = listingService;
|
|
10
|
+
this.config = {
|
|
11
|
+
sql: `bz_lock_scripts a, sys_system_scripts b where a.script_id = b.id and a.deleted_at is null and b.deleted_at is null`,
|
|
12
|
+
order: 'sq.created_at desc',
|
|
13
|
+
columns: ['a.*', 'b.name script_name', 'b.type_id script_type_id'],
|
|
14
|
+
metrics: [],
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
async process(filter) {
|
|
18
|
+
this.filter = filter;
|
|
19
|
+
this.processFilters();
|
|
20
|
+
return this.handle();
|
|
21
|
+
}
|
|
22
|
+
processFilters() {
|
|
23
|
+
this.restrictions.push(`a.business_id = ${this.business.id}`);
|
|
24
|
+
this.filterSourceType();
|
|
25
|
+
this.search();
|
|
26
|
+
}
|
|
27
|
+
filterSourceType() {
|
|
28
|
+
if (!this.filter.source_type)
|
|
29
|
+
return;
|
|
30
|
+
this.restrictions.push(`a.source_type = '${this.filter.source_type}'`);
|
|
31
|
+
}
|
|
32
|
+
search() {
|
|
33
|
+
if (!this.filter.search)
|
|
34
|
+
return;
|
|
35
|
+
const str = this.filter.search;
|
|
36
|
+
this.restrictions.push(`a.source_type ilike '%${str}%' or b.name ilike '%${str}%'`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.ProcessLockScriptList = ProcessLockScriptList;
|
|
40
|
+
//# sourceMappingURL=process.lock.script.list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.lock.script.list.js","sourceRoot":"","sources":["../../../src/access/libraries/process.lock.script.list.ts"],"names":[],"mappings":";;;AAIA,+EAAyE;AAOzE,MAAa,qBAAsB,SAAQ,sDAAwB;IAsB/D,YACuB,QAA8B,EAC9B,cAA8B;QAEjD,KAAK,EAAE,CAAC;QAHW,aAAQ,GAAR,QAAQ,CAAsB;QAC9B,mBAAc,GAAd,cAAc,CAAgB;QAf3C,WAAM,GAAG;YACf,GAAG,EAAE,oHAAoH;YACzH,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,0BAA0B,CAAC;YAClE,OAAO,EAAE,EAAE;SACd,CAAC;IAaF,CAAC;IAQD,KAAK,CAAC,OAAO,CAAC,MAA+B;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAOO,cAAc;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAQO,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO;QAErC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;IAC3E,CAAC;IAQO,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAE/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,yBAAyB,GAAG,wBAAwB,GAAG,IAAI,CAAC,CAAC;IACxF,CAAC;CACJ;AA7ED,sDA6EC"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProcessReportData = void 0;
|
|
4
4
|
const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
|
|
5
|
-
const report_log_entity_1 = require("../entities/report.log.entity");
|
|
6
5
|
const process_listing_csv_file_1 = require("./process.listing.csv.file");
|
|
7
6
|
class ProcessReportData {
|
|
8
7
|
constructor(sqlService, report, uploadService, listingService) {
|
|
@@ -27,31 +26,15 @@ class ProcessReportData {
|
|
|
27
26
|
this.filter = filter;
|
|
28
27
|
this.query = await this.setQuery();
|
|
29
28
|
const sql = `select * from ${this.query}`;
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return { data: response, debug_response: sql };
|
|
35
|
-
return response;
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
const duration = (new Date().getTime() - date.getTime()) / 1000;
|
|
39
|
-
await this.logReport(error, duration);
|
|
40
|
-
throw error;
|
|
41
|
-
}
|
|
29
|
+
const response = await this.sqlService.read(sql);
|
|
30
|
+
if (debug_mode)
|
|
31
|
+
return { data: response, debug_response: sql };
|
|
32
|
+
return response;
|
|
42
33
|
}
|
|
43
34
|
async getListRecords() {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
await this.getTotalRecords();
|
|
48
|
-
return this.sendResponse();
|
|
49
|
-
}
|
|
50
|
-
catch (error) {
|
|
51
|
-
const duration = (new Date().getTime() - date.getTime()) / 1000;
|
|
52
|
-
await this.logReport(error, duration);
|
|
53
|
-
throw error;
|
|
54
|
-
}
|
|
35
|
+
await this.getRecords();
|
|
36
|
+
await this.getTotalRecords();
|
|
37
|
+
return this.sendResponse();
|
|
55
38
|
}
|
|
56
39
|
getQueryRestrictions() {
|
|
57
40
|
if (!this.restrictions.length)
|
|
@@ -157,25 +140,6 @@ class ProcessReportData {
|
|
|
157
140
|
const records = await this.sqlService.read(dataSql);
|
|
158
141
|
return new process_listing_csv_file_1.ProcessListingCsvFile(this.uploadService, this.sqlService).process(this.filter.listing_slug, records, this.additionalData);
|
|
159
142
|
}
|
|
160
|
-
async logReport(response, duration) {
|
|
161
|
-
try {
|
|
162
|
-
const business_id = await nestjs_utility_services_1.Auth.user()?.auth_attributes?.business_id;
|
|
163
|
-
const log = report_log_entity_1.ReportLogEntity.create({
|
|
164
|
-
report_id: this.report?.id,
|
|
165
|
-
business_id: business_id || this.filter?.business_id,
|
|
166
|
-
user_id: nestjs_utility_services_1.Auth.user()?.id || this.filter?.user_id,
|
|
167
|
-
query: this.query,
|
|
168
|
-
params: this.filter,
|
|
169
|
-
response: { response },
|
|
170
|
-
is_error: true,
|
|
171
|
-
duration,
|
|
172
|
-
});
|
|
173
|
-
await log.save();
|
|
174
|
-
}
|
|
175
|
-
catch (error) {
|
|
176
|
-
console.error('Error logging report:', error);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
143
|
}
|
|
180
144
|
exports.ProcessReportData = ProcessReportData;
|
|
181
145
|
//# sourceMappingURL=process.report.data.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.report.data.js","sourceRoot":"","sources":["../../../src/access/libraries/process.report.data.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"process.report.data.js","sourceRoot":"","sources":["../../../src/access/libraries/process.report.data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function sanitizeEmailAddresses(input: string | string[] | null | undefined): string[];
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sanitizeEmailAddresses = sanitizeEmailAddresses;
|
|
4
|
+
function sanitizeEmailAddresses(input) {
|
|
5
|
+
if (!input)
|
|
6
|
+
return [];
|
|
7
|
+
const raw = Array.isArray(input) ? input : [input];
|
|
8
|
+
const flattened = raw.flatMap((item) => String(item ?? '').split(/[,;]/));
|
|
9
|
+
const isValidEmail = (email) => /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+$/i.test(email);
|
|
10
|
+
const valid = [];
|
|
11
|
+
const seen = new Set();
|
|
12
|
+
for (const item of flattened) {
|
|
13
|
+
let sanitized = item.trim().toLowerCase();
|
|
14
|
+
if (!sanitized)
|
|
15
|
+
continue;
|
|
16
|
+
const angle = sanitized.match(/<([^>]+)>/);
|
|
17
|
+
if (angle)
|
|
18
|
+
sanitized = angle[1].trim();
|
|
19
|
+
sanitized = sanitized.replace(/^["']+|["']+$/g, '').trim();
|
|
20
|
+
if (!isValidEmail(sanitized)) {
|
|
21
|
+
global.console.log(`Invalid email address skipped: ${sanitized}`);
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (seen.has(sanitized))
|
|
25
|
+
continue;
|
|
26
|
+
seen.add(sanitized);
|
|
27
|
+
valid.push(sanitized);
|
|
28
|
+
}
|
|
29
|
+
return valid;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=sanitize.email.addresses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.email.addresses.js","sourceRoot":"","sources":["../../../src/access/libraries/sanitize.email.addresses.ts"],"names":[],"mappings":";;AAIA,wDAkCC;AAlCD,SAAgB,sBAAsB,CAAC,KAA2C;IAC9E,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAG1E,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CACnC,kHAAkH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEnI,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS;YAAE,SAAS;QAGzB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,KAAK;YAAE,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE3D,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,SAAS,EAAE,CAAC,CAAC;YAClE,SAAS;QACb,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS;QAClC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SendEmailNotification = void 0;
|
|
4
4
|
const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
|
|
5
|
+
const sanitize_email_addresses_1 = require("./sanitize.email.addresses");
|
|
5
6
|
class SendEmailNotification {
|
|
6
7
|
constructor(notification, sendEmailService) {
|
|
7
8
|
this.notification = notification;
|
|
@@ -10,19 +11,24 @@ class SendEmailNotification {
|
|
|
10
11
|
async process(payload) {
|
|
11
12
|
this.payload = payload;
|
|
12
13
|
this.data = payload.data;
|
|
13
|
-
for (const user of this.payload.user_ids)
|
|
14
|
+
for (const user of this.payload.user_ids || [])
|
|
14
15
|
await this.sendMessage(this.notification, user);
|
|
15
16
|
}
|
|
16
17
|
async sendMessage(notification, userId) {
|
|
17
18
|
const user = await nestjs_utility_services_1.UserEntity.findOne({ where: { id: userId } });
|
|
18
19
|
if (!user)
|
|
19
20
|
return;
|
|
21
|
+
const [to] = (0, sanitize_email_addresses_1.sanitizeEmailAddresses)(user.email);
|
|
22
|
+
if (!to) {
|
|
23
|
+
global.console.log(`Email send skipped: user ${userId} has no valid email address`);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
20
26
|
const { name, identifier, subject } = notification.template;
|
|
21
27
|
const { payload: emailData, ...rest } = this.data;
|
|
22
28
|
const payload = {
|
|
23
29
|
data: emailData,
|
|
24
30
|
template_id: notification?.template_id,
|
|
25
|
-
to
|
|
31
|
+
to,
|
|
26
32
|
template: identifier,
|
|
27
33
|
subject,
|
|
28
34
|
name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.email.notification.js","sourceRoot":"","sources":["../../../src/access/libraries/send.email.notification.ts"],"names":[],"mappings":";;;AAAA,oFAAoE;
|
|
1
|
+
{"version":3,"file":"send.email.notification.js","sourceRoot":"","sources":["../../../src/access/libraries/send.email.notification.ts"],"names":[],"mappings":";;;AAAA,oFAAoE;AAMpE,yEAAoE;AAMpE,MAAa,qBAAqB;IAU9B,YACuB,YAAqC,EACrC,gBAAkC;QADlC,iBAAY,GAAZ,YAAY,CAAyB;QACrC,qBAAgB,GAAhB,gBAAgB,CAAkB;IACtD,CAAC;IAOJ,KAAK,CAAC,OAAO,CAAC,OAA+B;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAEzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;YAAE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACpG,CAAC;IAQD,KAAK,CAAC,WAAW,CAAC,YAAqC,EAAE,MAAc;QACnE,MAAM,IAAI,GAAG,MAAM,oCAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,CAAC,EAAE,CAAC,GAAG,IAAA,iDAAsB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,6BAA6B,CAAC,CAAC;YACpF,OAAO;QACX,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC;QAC5D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAElD,MAAM,OAAO,GAAgC;YACzC,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,YAAY,EAAE,WAAW;YACtC,EAAE;YACF,QAAQ,EAAE,UAAU;YACpB,OAAO;YACP,IAAI;YACJ,GAAG,IAAI;SACV,CAAC;QAEF,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;CACJ;AA1DD,sDA0DC"}
|
|
@@ -65,10 +65,13 @@ let NotificationService = class NotificationService {
|
|
|
65
65
|
return new send_email_notification_1.SendEmailNotification(notification, this.sendEmailService).process(payload);
|
|
66
66
|
}
|
|
67
67
|
async handleSms(notification, payload) {
|
|
68
|
-
const
|
|
69
|
-
if (!identifier)
|
|
68
|
+
const template = await nestjs_utility_services_1.SmsTemplateEntity.findOne({ where: { id: notification?.template_id } });
|
|
69
|
+
if (!template?.identifier)
|
|
70
70
|
return;
|
|
71
|
-
const
|
|
71
|
+
const userIds = payload?.user_ids || [];
|
|
72
|
+
if (!userIds.length)
|
|
73
|
+
return;
|
|
74
|
+
const users = await nestjs_utility_services_1.UserEntity.find({ where: { id: (0, typeorm_1.In)(userIds), mobile: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()) } });
|
|
72
75
|
if (!users.length)
|
|
73
76
|
return;
|
|
74
77
|
for await (const user of users) {
|
|
@@ -76,7 +79,7 @@ let NotificationService = class NotificationService {
|
|
|
76
79
|
const options = {
|
|
77
80
|
mobile: `${dialCode}${user.mobile}`,
|
|
78
81
|
context: payload.data,
|
|
79
|
-
template: identifier,
|
|
82
|
+
template: template.identifier,
|
|
80
83
|
};
|
|
81
84
|
await this.smsService.setAndSendMessage(options);
|
|
82
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.service.js","sourceRoot":"","sources":["../../../src/access/services/notification.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,oFAQgD;AAChD,qCAA0C;AAS1C,2EAAsE;AACtE,kFAA6E;AAC7E,8EAAyE;AACzE,kGAA4F;AAC5F,kGAA4F;AAC5F,kGAA4F;AAC5F,mGAA6F;AAC7F,wGAAkG;AAClG,mDAA+C;AAC/C,6DAAwD;AACxD,mDAA+C;AAC/C,yDAAqD;AAO9C,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAG5B,YACuB,oBAA0C,EAC1C,YAA0B,EAC1B,YAA0B,EAC1B,eAAgC,EAChC,eAAgC,EAChC,YAA0B,EAC1B,gBAAkC,EAClC,UAAsB;QAPtB,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,iBAAY,GAAZ,YAAY,CAAc;QAC1B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,oBAAe,GAAf,eAAe,CAAiB;QAChC,oBAAe,GAAf,eAAe,CAAiB;QAChC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,eAAU,GAAV,UAAU,CAAY;QAVnC,kBAAa,GAAG,IAAI,CAAC;IAW5B,CAAC;IAQJ,KAAK,CAAC,gBAAgB,CAAC,YAAqC,EAAE,OAA+B;QACzF,OAAO,IAAI,8DAA4B,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9F,CAAC;IAQD,KAAK,CAAC,gBAAgB,CAAC,YAAqC,EAAE,OAA+B;QACzF,MAAM,OAAO,GAAG,MAAM,yCAAkB,CAAC,IAAI,CAAC;YAC1C,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE;YACxG,SAAS,EAAE,CAAC,UAAU,CAAC;SAC1B,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,8DAA4B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7G,CAAC;IACL,CAAC;IAQD,KAAK,CAAC,mBAAmB,CAAC,YAAwC,EAAE,OAA+B;QAC/F,OAAO,IAAI,oEAA+B,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1H,CAAC;IAQD,KAAK,CAAC,mBAAmB,CAAC,YAAmC,EAAE,OAA+B;QAC1F,OAAO,IAAI,2CAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtI,CAAC;IAQD,KAAK,CAAC,gBAAgB,CAAC,YAAqC,EAAE,OAA+B;QACzF,OAAO,IAAI,8DAA4B,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9F,CAAC;IAQD,KAAK,CAAC,gBAAgB,CAAC,OAA2B,EAAE,OAA+B;QAC/E,OAAO,IAAI,8DAA4B,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjG,CAAC;IAQD,KAAK,CAAC,WAAW,CAAC,YAAqC,EAAE,OAA+B;QACpF,OAAO,IAAI,+CAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3F,CAAC;IAQD,KAAK,CAAC,SAAS,CAAC,YAAmC,EAAE,OAA+B;QAChF,MAAM,
|
|
1
|
+
{"version":3,"file":"notification.service.js","sourceRoot":"","sources":["../../../src/access/services/notification.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,7 +75,7 @@ let SyncWorkflowActivityJob = class SyncWorkflowActivityJob extends nestjs_utili
|
|
|
75
75
|
const onholdStep = steps.find((step) => step.activity_id === approval_status_type_enum_1.ApprovalStatusTypeEnum.ONHOLD);
|
|
76
76
|
if (onholdStep)
|
|
77
77
|
activity.status_id = verification_status_type_enum_1.VerificationStatusTypeEnum.ON_HOLD;
|
|
78
|
-
const isApproved = steps.every((step) => step.activity_id === approval_status_type_enum_1.ApprovalStatusTypeEnum.APPROVED);
|
|
78
|
+
const isApproved = steps.length > 0 && steps.every((step) => step.activity_id === approval_status_type_enum_1.ApprovalStatusTypeEnum.APPROVED);
|
|
79
79
|
if (isApproved) {
|
|
80
80
|
activity.status_id = verification_status_type_enum_1.VerificationStatusTypeEnum.APPROVED;
|
|
81
81
|
activity.activity_at = steps[steps.length - 1].activity_datetime;
|