plenna_utilities 1.13.10 → 1.15.0
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/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/src/meta/index.d.ts +22 -0
- package/dist/src/meta/index.js +21 -0
- package/dist/src/s3/index.d.ts +3 -1
- package/dist/src/s3/index.js +19 -0
- package/dist/src/sendesk/index.d.ts +16 -0
- package/dist/src/sendesk/index.js +92 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -31,3 +31,5 @@ __exportStar(require("./src/alerts/presenter"), exports);
|
|
|
31
31
|
__exportStar(require("./src/common/domain/shared"), exports);
|
|
32
32
|
__exportStar(require("./src/AI/bedrock"), exports);
|
|
33
33
|
__exportStar(require("./src/respira"), exports);
|
|
34
|
+
__exportStar(require("./src/sendesk"), exports);
|
|
35
|
+
__exportStar(require("./src/meta"), exports);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface IMetaWhatsAppTemplateComponent {
|
|
2
|
+
type: 'HEADER' | 'BODY' | 'FOOTER' | 'BUTTONS';
|
|
3
|
+
text?: string;
|
|
4
|
+
format?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface IMetaWhatsAppTemplate {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
language: string;
|
|
10
|
+
status: string;
|
|
11
|
+
components: IMetaWhatsAppTemplateComponent[];
|
|
12
|
+
}
|
|
13
|
+
export interface IMetaTemplatesResponse {
|
|
14
|
+
data: IMetaWhatsAppTemplate[];
|
|
15
|
+
}
|
|
16
|
+
export declare class MetaWhatsAppService {
|
|
17
|
+
private readonly token;
|
|
18
|
+
private readonly wabaId;
|
|
19
|
+
private readonly graphVersion;
|
|
20
|
+
constructor(token: string, wabaId: string);
|
|
21
|
+
getTemplateByName(name: string, language: string): Promise<Response>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MetaWhatsAppService = void 0;
|
|
4
|
+
class MetaWhatsAppService {
|
|
5
|
+
token;
|
|
6
|
+
wabaId;
|
|
7
|
+
graphVersion = 'v25.0';
|
|
8
|
+
constructor(token, wabaId) {
|
|
9
|
+
this.token = token;
|
|
10
|
+
this.wabaId = wabaId;
|
|
11
|
+
}
|
|
12
|
+
async getTemplateByName(name, language) {
|
|
13
|
+
const url = new URL(`https://graph.facebook.com/${this.graphVersion}/${this.wabaId}/message_templates`);
|
|
14
|
+
url.searchParams.set('name', name);
|
|
15
|
+
url.searchParams.set('language', language);
|
|
16
|
+
return await fetch(url.toString(), {
|
|
17
|
+
headers: { Authorization: `Bearer ${this.token}` }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.MetaWhatsAppService = MetaWhatsAppService;
|
package/dist/src/s3/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ObjectCannedACL, type PutObjectCommandInput, type S3ClientConfig } from '@aws-sdk/client-s3';
|
|
1
|
+
import { type ObjectCannedACL, type PutObjectCommandInput, type S3ClientConfig, type DeleteObjectCommandOutput, type DeleteObjectsCommandOutput } from '@aws-sdk/client-s3';
|
|
2
2
|
export declare class PlennaS3Service {
|
|
3
3
|
private readonly bucket;
|
|
4
4
|
private readonly acl;
|
|
@@ -6,4 +6,6 @@ export declare class PlennaS3Service {
|
|
|
6
6
|
constructor(bucket: string, acl: ObjectCannedACL, options?: Partial<PutObjectCommandInput>);
|
|
7
7
|
getPresignedUrl(keyName: string, clientConfig?: S3ClientConfig): Promise<string>;
|
|
8
8
|
upload(fileName: string, file: PutObjectCommandInput['Body'], options?: Partial<PutObjectCommandInput>): Promise<string>;
|
|
9
|
+
deleteObject(key: string): Promise<DeleteObjectCommandOutput>;
|
|
10
|
+
deleteObjects(keys: string[]): Promise<DeleteObjectsCommandOutput>;
|
|
9
11
|
}
|
package/dist/src/s3/index.js
CHANGED
|
@@ -40,5 +40,24 @@ class PlennaS3Service {
|
|
|
40
40
|
const fileS3Url = `https://${this.bucket}.s3.${REGION}.amazonaws.com/${fileName}`;
|
|
41
41
|
return fileS3Url;
|
|
42
42
|
}
|
|
43
|
+
async deleteObject(key) {
|
|
44
|
+
const s3 = new client_s3_1.S3Client({ region: REGION });
|
|
45
|
+
const response = await s3.send(new client_s3_1.DeleteObjectCommand({
|
|
46
|
+
Bucket: this.bucket,
|
|
47
|
+
Key: key
|
|
48
|
+
}));
|
|
49
|
+
return response;
|
|
50
|
+
}
|
|
51
|
+
async deleteObjects(keys) {
|
|
52
|
+
const s3 = new client_s3_1.S3Client({ region: REGION });
|
|
53
|
+
const response = await s3.send(new client_s3_1.DeleteObjectsCommand({
|
|
54
|
+
Bucket: this.bucket,
|
|
55
|
+
Delete: {
|
|
56
|
+
Objects: keys.map(key => ({ Key: key })),
|
|
57
|
+
Quiet: false
|
|
58
|
+
}
|
|
59
|
+
}));
|
|
60
|
+
return response;
|
|
61
|
+
}
|
|
43
62
|
}
|
|
44
63
|
exports.PlennaS3Service = PlennaS3Service;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class SendeskService {
|
|
2
|
+
private readonly user;
|
|
3
|
+
private readonly token;
|
|
4
|
+
private readonly url;
|
|
5
|
+
constructor(user: string, token: string, url: string);
|
|
6
|
+
_getHeaders(): Record<string, string>;
|
|
7
|
+
getInfoTicket(ticketId: string): Promise<Response>;
|
|
8
|
+
updatedTicket(ticketId: string, updatePayload: Record<string, unknown>): Promise<Response>;
|
|
9
|
+
getInfoUser(userId: string): Promise<Response>;
|
|
10
|
+
getInfoUserByQuery(query: Record<string, unknown>): Promise<Response>;
|
|
11
|
+
updateUser(userId: string, updatePayload: Record<string, unknown>): Promise<Response>;
|
|
12
|
+
createIdentity(user: string, type: string, value: string): Promise<Response>;
|
|
13
|
+
getIdentities(user: string): Promise<Response>;
|
|
14
|
+
getAllOpenTicketsByUser(user: string): Promise<Response>;
|
|
15
|
+
getInfoTicketAudit(ticketId: string): Promise<Response>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SendeskService = void 0;
|
|
4
|
+
class SendeskService {
|
|
5
|
+
user;
|
|
6
|
+
token;
|
|
7
|
+
url;
|
|
8
|
+
constructor(user, token, url) {
|
|
9
|
+
this.user = user;
|
|
10
|
+
this.token = token;
|
|
11
|
+
this.url = url;
|
|
12
|
+
}
|
|
13
|
+
_getHeaders() {
|
|
14
|
+
const authString = `${this.user}/token:${this.token}`;
|
|
15
|
+
const encodedAuth = Buffer.from(authString).toString('base64');
|
|
16
|
+
const headers = {
|
|
17
|
+
Authorization: `Basic ${encodedAuth}`,
|
|
18
|
+
'Content-Type': 'application/json'
|
|
19
|
+
};
|
|
20
|
+
return headers;
|
|
21
|
+
}
|
|
22
|
+
async getInfoTicket(ticketId) {
|
|
23
|
+
const headers = this._getHeaders();
|
|
24
|
+
return await fetch(`${this.url}/api/v2/tickets/${ticketId}.json`, {
|
|
25
|
+
method: 'GET',
|
|
26
|
+
headers
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
async updatedTicket(ticketId, updatePayload) {
|
|
30
|
+
const headers = this._getHeaders();
|
|
31
|
+
return await fetch(`${this.url}/api/v2/tickets/${ticketId}.json`, {
|
|
32
|
+
method: 'PUT',
|
|
33
|
+
headers,
|
|
34
|
+
body: JSON.stringify(updatePayload)
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async getInfoUser(userId) {
|
|
38
|
+
const headers = this._getHeaders();
|
|
39
|
+
return await fetch(`${this.url}/api/v2/users/${userId}.json`, {
|
|
40
|
+
method: 'GET',
|
|
41
|
+
headers
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
async getInfoUserByQuery(query) {
|
|
45
|
+
const headers = this._getHeaders();
|
|
46
|
+
return await fetch(`${this.url}/api/v2/users/search?query=${encodeURIComponent(JSON.stringify(query))}`, {
|
|
47
|
+
method: 'GET',
|
|
48
|
+
headers
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
async updateUser(userId, updatePayload) {
|
|
52
|
+
const headers = this._getHeaders();
|
|
53
|
+
return await fetch(`${this.url}/api/v2/users/${userId}.json`, {
|
|
54
|
+
method: 'PUT',
|
|
55
|
+
headers,
|
|
56
|
+
body: JSON.stringify(updatePayload)
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
async createIdentity(user, type, value) {
|
|
60
|
+
const headers = this._getHeaders();
|
|
61
|
+
return await fetch(`${this.url}/api/v2/users/${user}/identities.json`, {
|
|
62
|
+
method: 'POST',
|
|
63
|
+
headers,
|
|
64
|
+
body: JSON.stringify({ identity: { type, value } })
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
async getIdentities(user) {
|
|
68
|
+
const headers = this._getHeaders();
|
|
69
|
+
return await fetch(`${this.url}/api/v2/end_users/${user}/identities.json`, {
|
|
70
|
+
method: 'GET',
|
|
71
|
+
headers
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
async getAllOpenTicketsByUser(user) {
|
|
75
|
+
const headers = this._getHeaders();
|
|
76
|
+
const params = new URLSearchParams({
|
|
77
|
+
query: `type:ticket requester_id:${user} status<closed`
|
|
78
|
+
});
|
|
79
|
+
return await fetch(`${this.url}/api/v2/search?${params.toString()}`, {
|
|
80
|
+
method: 'GET',
|
|
81
|
+
headers
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
async getInfoTicketAudit(ticketId) {
|
|
85
|
+
const headers = this._getHeaders();
|
|
86
|
+
return await fetch(`${this.url}/api/v2/tickets/${ticketId}/audits.json`, {
|
|
87
|
+
method: 'GET',
|
|
88
|
+
headers
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.SendeskService = SendeskService;
|