87069fc12b961986624e8a1d692665abf1c980b5
[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 _0x1057=['WhatsappInteractionId','toLowerCase','catch','error','find','WhatsappAccountId','then','type','twilio','accountSid','authToken','phone','body','whatsapp:','/api/whatsapp/messages/','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','sinch','baseUrl','/whatsapp/v1/','text','POST','Bearer\x20','application/json','statuses','message_id','update','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','request-promise','node-fetch','path','rimraf','../../config/environment','./whatsappMessage.attributes','exports','define','whatsapp_messages','messageId','fti_whatsapp_messages','models','get','direction','out','UserId'];(function(_0x27a3cb,_0x4af597){var _0x54ff38=function(_0x3a82d2){while(--_0x3a82d2){_0x27a3cb['push'](_0x27a3cb['shift']());}};_0x54ff38(++_0x4af597);}(_0x1057,0xc3));var _0x7105=function(_0x4acae6,_0x3e1453){_0x4acae6=_0x4acae6-0x0;var _0x377c0f=_0x1057[_0x4acae6];return _0x377c0f;};'use strict';var _=require(_0x7105('0x0'));var util=require(_0x7105('0x1'));var logger=require(_0x7105('0x2'))(_0x7105('0x3'));var moment=require(_0x7105('0x4'));var BPromise=require('bluebird');var rp=require(_0x7105('0x5'));var fetch=require(_0x7105('0x6'));var fs=require('fs');var path=require(_0x7105('0x7'));var rimraf=require(_0x7105('0x8'));var config=require(_0x7105('0x9'));var attributes=require(_0x7105('0xa'));module[_0x7105('0xb')]=function(_0xcb314,_0x635835){return _0xcb314[_0x7105('0xc')]('WhatsappMessage',attributes,{'tableName':_0x7105('0xd'),'paranoid':![],'indexes':[{'name':'messageId','fields':[_0x7105('0xe')]},{'name':_0x7105('0xf'),'fields':['body'],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4cb415,_0x27a838,_0x45bf76){var _0x1c48fc=_0xcb314[_0x7105('0x10')];var _0x360faa=_0x4cb415[_0x7105('0x11')]({'plain':!![]});if(_0x360faa[_0x7105('0x12')]['toLowerCase']()==='in'||_0x360faa[_0x7105('0x12')]['toLowerCase']()===_0x7105('0x13')&&!_0x360faa['secret']&&!_['isNil'](_0x360faa[_0x7105('0x14')])){_0x1c48fc['WhatsappInteraction']['findOne']({'where':{'id':_0x360faa[_0x7105('0x15')]}})['then'](function(_0x571bb4){if(_0x571bb4){_0x571bb4['update']({'lastMsgAt':_0x360faa['createdAt'],'lastMsgDirection':_0x360faa['direction'][_0x7105('0x16')]()});}})[_0x7105('0x17')](function(_0x2b1174){console[_0x7105('0x18')](_0x2b1174);});}if(_0x360faa[_0x7105('0x12')]===_0x7105('0x13')&&!_0x360faa['secret']){var _0x497f0f;_0x1c48fc['WhatsappAccount'][_0x7105('0x19')]({'where':{'id':_0x360faa[_0x7105('0x1a')]},'raw':!![]})[_0x7105('0x1b')](function(_0x307126){_0x497f0f=_0x307126;if(_0x497f0f&&_0x497f0f[_0x7105('0x1c')]){switch(_0x497f0f[_0x7105('0x1c')]){case _0x7105('0x1d'):var _0x18e768=require(_0x7105('0x1d'));if(_0x497f0f[_0x7105('0x1e')]&&_0x497f0f[_0x7105('0x1f')]&&_0x497f0f[_0x7105('0x20')]){var _0x3d0eaf=new _0x18e768(_0x497f0f[_0x7105('0x1e')],_0x497f0f[_0x7105('0x1f')]);_0x3d0eaf['messages']['create']({'body':_0x360faa[_0x7105('0x21')],'to':_0x7105('0x22')+_0x360faa['phone'],'from':'whatsapp:'+_0x497f0f[_0x7105('0x20')],'statusCallback':_0x497f0f['remote']+_0x7105('0x23')+_0x360faa['id']+'/status?token='+_0x497f0f[_0x7105('0x24')]})[_0x7105('0x1b')](function(_0x2671ab){if(_0x2671ab[_0x7105('0x25')]){return _0x4cb415['update']({'messageId':_0x2671ab[_0x7105('0x25')]});}})[_0x7105('0x17')](function(_0x1c6d84){logger[_0x7105('0x18')](_0x7105('0x26'),_0x7105('0x27'),_0x7105('0x1d'),util[_0x7105('0x28')](_0x1c6d84,{'showHidden':![],'depth':null}));});}else{logger[_0x7105('0x18')](_0x7105('0x26'),_0x7105('0x27'),_0x7105('0x1d'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0x7105('0x29'):var _0x24e441=_0x497f0f[_0x7105('0x1e')];var _0x5bda7c=_0x497f0f[_0x7105('0x1f')];var _0x402d98=_0x497f0f[_0x7105('0x2a')]+_0x7105('0x2b')+_0x24e441+'/messages/';var _0x5ab0e4={'to':[_0x360faa[_0x7105('0x20')]],'message':{'type':_0x7105('0x2c'),'text':_0x360faa[_0x7105('0x21')]}};var _0x368ca3={'method':_0x7105('0x2d'),'uri':_0x402d98,'headers':{'Authorization':_0x7105('0x2e')+_0x5bda7c,'Content-Type':_0x7105('0x2f')},'body':_0x5ab0e4,'json':!![]};rp(_0x368ca3)[_0x7105('0x1b')](function(_0x12afbf){if(_0x12afbf[_0x7105('0x30')][0x0][_0x7105('0x31')]){return _0x4cb415[_0x7105('0x32')]({'messageId':_0x12afbf[_0x7105('0x30')][0x0]['message_id']});}})[_0x7105('0x17')](function(_0x5a7ba3){logger['err']('WhatsappMessage,\x20%s',_0x5a7ba3);});break;}}})[_0x7105('0x33')](function(){_0x45bf76();});}else{_0x45bf76();}}},'charset':_0x7105('0x34'),'collate':_0x7105('0x35')});};