UNPKG

asksuite-core

Version:
57 lines (51 loc) 1.31 kB
class MediaResolver { constructor(companyId) { this.companyId = companyId; } static get IMAGE_INTENT() { return { intent: 'media_receive_image', dialog: `${this.companyId}.media.image`, }; } static get AUDIO_INTENT() { return { intent: 'media_receive_audio', dialog: `${this.companyId}.media.audio`, }; } static get DOCUMENT_INTENT() { return { intent: 'media_receive_document', dialog: `${this.companyId}.media.document`, }; } resolve(media, intents) { return new Promise((resolve, reject) => { let intent = {}; if (media && media.type) { switch (media.type) { case 'image': intent = MediaResolver.IMAGE_INTENT; break; case 'ptt': case 'audio': intent = MediaResolver.AUDIO_INTENT; break; case 'document': intent = MediaResolver.DOCUMENT_INTENT; break; } if (intent.intent) { const intentBot = intents.find(item => { return item.intent === intent.intent; }); resolve(intentBot); return; } } reject(); }); } } module.exports = MediaResolver;