Built motion from commit b0a9a629.|2.6.33
[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 _0x5651=['message_id','err','WhatsappMessage,\x20%s','utf8mb4','../../config/logger','moment','bluebird','request-promise','node-fetch','path','rimraf','../../config/environment','./whatsappMessage.attributes','exports','define','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','FULLTEXT','models','get','direction','toLowerCase','out','WhatsappInteraction','findOne','WhatsappInteractionId','createdAt','catch','error','secret','WhatsappAccount','find','WhatsappAccountId','then','type','twilio','accountSid','authToken','messages','body','whatsapp:','phone','remote','/api/whatsapp/messages/','token','sid','update','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','baseUrl','/whatsapp/v1/','/messages/','POST','Bearer\x20','application/json','statuses'];(function(_0x482af4,_0x841ba7){var _0x266fbb=function(_0x46244e){while(--_0x46244e){_0x482af4['push'](_0x482af4['shift']());}};_0x266fbb(++_0x841ba7);}(_0x5651,0x1e4));var _0x1565=function(_0x36f47c,_0x38ef4d){_0x36f47c=_0x36f47c-0x0;var _0x296c55=_0x5651[_0x36f47c];return _0x296c55;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x1565('0x0'))('api');var moment=require(_0x1565('0x1'));var BPromise=require(_0x1565('0x2'));var rp=require(_0x1565('0x3'));var fetch=require(_0x1565('0x4'));var fs=require('fs');var path=require(_0x1565('0x5'));var rimraf=require(_0x1565('0x6'));var config=require(_0x1565('0x7'));var attributes=require(_0x1565('0x8'));module[_0x1565('0x9')]=function(_0x34f842,_0x15804e){return _0x34f842[_0x1565('0xa')](_0x1565('0xb'),attributes,{'tableName':_0x1565('0xc'),'paranoid':![],'indexes':[{'name':_0x1565('0xd'),'fields':[_0x1565('0xd')]},{'name':_0x1565('0xe'),'fields':['body'],'type':_0x1565('0xf')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x115b55,_0x2f1f23,_0x5c7022){var _0x1baab7=_0x34f842[_0x1565('0x10')];var _0x48c52d=_0x115b55[_0x1565('0x11')]({'plain':!![]});if(_0x48c52d[_0x1565('0x12')][_0x1565('0x13')]()==='in'||_0x48c52d[_0x1565('0x12')][_0x1565('0x13')]()===_0x1565('0x14')&&!_0x48c52d['secret']&&!_['isNil'](_0x48c52d['UserId'])){_0x1baab7[_0x1565('0x15')][_0x1565('0x16')]({'where':{'id':_0x48c52d[_0x1565('0x17')]}})['then'](function(_0x122761){if(_0x122761){_0x122761['update']({'lastMsgAt':_0x48c52d[_0x1565('0x18')],'lastMsgDirection':_0x48c52d[_0x1565('0x12')][_0x1565('0x13')]()});}})[_0x1565('0x19')](function(_0x3ee6ae){console[_0x1565('0x1a')](_0x3ee6ae);});}if(_0x48c52d['direction']===_0x1565('0x14')&&!_0x48c52d[_0x1565('0x1b')]){var _0x19a2f1;_0x1baab7[_0x1565('0x1c')][_0x1565('0x1d')]({'where':{'id':_0x48c52d[_0x1565('0x1e')]},'raw':!![]})[_0x1565('0x1f')](function(_0x198aa7){_0x19a2f1=_0x198aa7;if(_0x19a2f1&&_0x19a2f1[_0x1565('0x20')]){switch(_0x19a2f1['type']){case _0x1565('0x21'):var _0x371253=require('twilio');if(_0x19a2f1[_0x1565('0x22')]&&_0x19a2f1[_0x1565('0x23')]&&_0x19a2f1['phone']){var _0x9b8960=new _0x371253(_0x19a2f1[_0x1565('0x22')],_0x19a2f1['authToken']);_0x9b8960[_0x1565('0x24')]['create']({'body':_0x48c52d[_0x1565('0x25')],'to':_0x1565('0x26')+_0x48c52d[_0x1565('0x27')],'from':_0x1565('0x26')+_0x19a2f1[_0x1565('0x27')],'statusCallback':_0x19a2f1[_0x1565('0x28')]+_0x1565('0x29')+_0x48c52d['id']+'/status?token='+_0x19a2f1[_0x1565('0x2a')]})[_0x1565('0x1f')](function(_0x12d4b9){if(_0x12d4b9[_0x1565('0x2b')]){return _0x115b55[_0x1565('0x2c')]({'messageId':_0x12d4b9['sid']});}})[_0x1565('0x19')](function(_0x2dd671){logger[_0x1565('0x1a')](_0x1565('0x2d'),'afterCreate',_0x1565('0x21'),util['inspect'](_0x2dd671,{'showHidden':![],'depth':null}));});}else{logger[_0x1565('0x1a')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x1565('0x2e'),_0x1565('0x21'),_0x1565('0x2f'));}break;case _0x1565('0x30'):var _0x1b73b7=_0x19a2f1['accountSid'];var _0x3fd408=_0x19a2f1[_0x1565('0x23')];var _0x3cefb4=_0x19a2f1[_0x1565('0x31')]+_0x1565('0x32')+_0x1b73b7+_0x1565('0x33');var _0xf532bd={'to':[_0x48c52d['phone']],'message':{'type':'text','text':_0x48c52d[_0x1565('0x25')]}};var _0x57a08b={'method':_0x1565('0x34'),'uri':_0x3cefb4,'headers':{'Authorization':_0x1565('0x35')+_0x3fd408,'Content-Type':_0x1565('0x36')},'body':_0xf532bd,'json':!![]};rp(_0x57a08b)['then'](function(_0x1a7f6a){if(_0x1a7f6a[_0x1565('0x37')][0x0]['message_id']){return _0x115b55[_0x1565('0x2c')]({'messageId':_0x1a7f6a['statuses'][0x0][_0x1565('0x38')]});}})[_0x1565('0x19')](function(_0x4096f9){logger[_0x1565('0x39')](_0x1565('0x3a'),_0x4096f9);});break;}}})['finally'](function(){_0x5c7022();});}else{_0x5c7022();}}},'charset':_0x1565('0x3b'),'collate':'utf8mb4_unicode_ci'});};