UNPKG

1.31 kBJavaScriptView Raw
1class MediaResolver {
2 constructor(companyId) {
3 this.companyId = companyId;
4 }
5
6 static get IMAGE_INTENT() {
7 return {
8 intent: 'media_receive_image',
9 dialog: `${this.companyId}.media.image`,
10 };
11 }
12
13 static get AUDIO_INTENT() {
14 return {
15 intent: 'media_receive_audio',
16 dialog: `${this.companyId}.media.audio`,
17 };
18 }
19
20 static get DOCUMENT_INTENT() {
21 return {
22 intent: 'media_receive_document',
23 dialog: `${this.companyId}.media.document`,
24 };
25 }
26
27 resolve(media, intents) {
28 return new Promise((resolve, reject) => {
29 let intent = {};
30 if (media && media.type) {
31 switch (media.type) {
32 case 'image':
33 intent = MediaResolver.IMAGE_INTENT;
34 break;
35 case 'ptt':
36 case 'audio':
37 intent = MediaResolver.AUDIO_INTENT;
38 break;
39 case 'document':
40 intent = MediaResolver.DOCUMENT_INTENT;
41 break;
42 }
43 if (intent.intent) {
44 const intentBot = intents.find(item => {
45 return item.intent === intent.intent;
46 });
47 resolve(intentBot);
48 return;
49 }
50 }
51 reject();
52 });
53 }
54}
55
56module.exports = MediaResolver;