26d345420634d9045f574943e4cda75aeab3bc29
[motion2.git] / server / api / whatsappMessage / whatsappMessage.model.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x51a0=['path','../../config/environment','exports','define','whatsapp_messages','messageId','fti_whatsapp_messages','body','FULLTEXT','models','get','direction','toLowerCase','out','isNil','UserId','WhatsappInteractionId','createdAt','catch','secret','WhatsappAccount','find','WhatsappAccountId','then','type','twilio','accountSid','authToken','create','whatsapp:','phone','/status?token=','sid','update','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','error','finally','utf8mb4','utf8mb4_unicode_ci','util','api','moment','bluebird','request-promise'];(function(_0x4a991a,_0x2ac1cc){var _0x50076e=function(_0x1e46c9){while(--_0x1e46c9){_0x4a991a['push'](_0x4a991a['shift']());}};_0x50076e(++_0x2ac1cc);}(_0x51a0,0xb3));var _0x051a=function(_0x13ce0c,_0x3f2a0d){_0x13ce0c=_0x13ce0c-0x0;var _0x4388fb=_0x51a0[_0x13ce0c];return _0x4388fb;};'use strict';var _=require('lodash');var util=require(_0x051a('0x0'));var logger=require('../../config/logger')(_0x051a('0x1'));var moment=require(_0x051a('0x2'));var BPromise=require(_0x051a('0x3'));var rp=require(_0x051a('0x4'));var fs=require('fs');var path=require(_0x051a('0x5'));var rimraf=require('rimraf');var config=require(_0x051a('0x6'));var attributes=require('./whatsappMessage.attributes');module[_0x051a('0x7')]=function(_0x4c3d7a,_0x485028){return _0x4c3d7a[_0x051a('0x8')]('WhatsappMessage',attributes,{'tableName':_0x051a('0x9'),'paranoid':![],'indexes':[{'name':_0x051a('0xa'),'fields':[_0x051a('0xa')]},{'name':_0x051a('0xb'),'fields':[_0x051a('0xc')],'type':_0x051a('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x21ea0d,_0x14810a,_0x411f66){var _0xa3c358=_0x4c3d7a[_0x051a('0xe')];var _0x4bcaab=_0x21ea0d[_0x051a('0xf')]({'plain':!![]});if(_0x4bcaab[_0x051a('0x10')][_0x051a('0x11')]()==='in'||_0x4bcaab[_0x051a('0x10')][_0x051a('0x11')]()===_0x051a('0x12')&&!_0x4bcaab['secret']&&!_[_0x051a('0x13')](_0x4bcaab[_0x051a('0x14')])){_0xa3c358['WhatsappInteraction']['findOne']({'where':{'id':_0x4bcaab[_0x051a('0x15')]}})['then'](function(_0x41a94e){if(_0x41a94e){_0x41a94e['update']({'lastMsgAt':_0x4bcaab[_0x051a('0x16')],'lastMsgDirection':_0x4bcaab[_0x051a('0x10')][_0x051a('0x11')]()});}})[_0x051a('0x17')](function(_0x2c5a8c){console['error'](_0x2c5a8c);});}if(_0x4bcaab[_0x051a('0x10')]===_0x051a('0x12')&&!_0x4bcaab[_0x051a('0x18')]){var _0x109a44;_0xa3c358[_0x051a('0x19')][_0x051a('0x1a')]({'where':{'id':_0x4bcaab[_0x051a('0x1b')]},'raw':!![]})[_0x051a('0x1c')](function(_0x1a90e7){_0x109a44=_0x1a90e7;if(_0x109a44&&_0x109a44['type']){switch(_0x109a44[_0x051a('0x1d')]){case _0x051a('0x1e'):var _0x20220a=require('twilio');if(_0x109a44[_0x051a('0x1f')]&&_0x109a44[_0x051a('0x20')]&&_0x109a44['phone']){var _0x341eeb=new _0x20220a(_0x109a44[_0x051a('0x1f')],_0x109a44[_0x051a('0x20')]);_0x341eeb['messages'][_0x051a('0x21')]({'body':_0x4bcaab['body'],'to':_0x051a('0x22')+_0x4bcaab[_0x051a('0x23')],'from':_0x051a('0x22')+_0x109a44['phone'],'statusCallback':_0x109a44['remote']+'/api/whatsapp/messages/'+_0x4bcaab['id']+_0x051a('0x24')+_0x109a44['token']})[_0x051a('0x1c')](function(_0x3b4866){if(_0x3b4866[_0x051a('0x25')]){return _0x21ea0d[_0x051a('0x26')]({'messageId':_0x3b4866['sid']});}})[_0x051a('0x17')](function(_0x42f81e){logger['error'](_0x051a('0x27'),_0x051a('0x28'),_0x051a('0x1e'),util[_0x051a('0x29')](_0x42f81e,{'showHidden':![],'depth':null}));});}else{logger[_0x051a('0x2a')]('WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x051a('0x1e'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;}}})[_0x051a('0x2b')](function(){_0x411f66();});}else{_0x411f66();}}},'charset':_0x051a('0x2c'),'collate':_0x051a('0x2d')});};