Built motion from commit 9d0783e6.|2.6.13
[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 _0xafab=['remote','/api/whatsapp/messages/','token','sid','error','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','/whatsapp/v1/','/messages/','text','POST','Bearer\x20','application/json','message_id','err','WhatsappMessage,\x20%s','finally','utf8mb4','lodash','util','moment','request-promise','node-fetch','path','rimraf','./whatsappMessage.attributes','exports','define','WhatsappMessage','whatsapp_messages','messageId','body','get','direction','toLowerCase','secret','isNil','UserId','WhatsappInteraction','update','catch','out','find','WhatsappAccountId','then','type','twilio','accountSid','phone','authToken','create','whatsapp:'];(function(_0x1283ad,_0x33c0e0){var _0x12afe0=function(_0x231e75){while(--_0x231e75){_0x1283ad['push'](_0x1283ad['shift']());}};_0x12afe0(++_0x33c0e0);}(_0xafab,0x122));var _0xbafa=function(_0x39119a,_0x16fb90){_0x39119a=_0x39119a-0x0;var _0x3e7f4a=_0xafab[_0x39119a];return _0x3e7f4a;};'use strict';var _=require(_0xbafa('0x0'));var util=require(_0xbafa('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xbafa('0x2'));var BPromise=require('bluebird');var rp=require(_0xbafa('0x3'));var fetch=require(_0xbafa('0x4'));var fs=require('fs');var path=require(_0xbafa('0x5'));var rimraf=require(_0xbafa('0x6'));var config=require('../../config/environment');var attributes=require(_0xbafa('0x7'));module[_0xbafa('0x8')]=function(_0x3d22dc,_0x2d888f){return _0x3d22dc[_0xbafa('0x9')](_0xbafa('0xa'),attributes,{'tableName':_0xbafa('0xb'),'paranoid':![],'indexes':[{'name':_0xbafa('0xc'),'fields':[_0xbafa('0xc')]},{'name':'fti_whatsapp_messages','fields':[_0xbafa('0xd')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x1606e7,_0x450805,_0x536715){var _0x432b9b=_0x3d22dc['models'];var _0x41e401=_0x1606e7[_0xbafa('0xe')]({'plain':!![]});if(_0x41e401[_0xbafa('0xf')][_0xbafa('0x10')]()==='in'||_0x41e401[_0xbafa('0xf')][_0xbafa('0x10')]()==='out'&&!_0x41e401[_0xbafa('0x11')]&&!_[_0xbafa('0x12')](_0x41e401[_0xbafa('0x13')])){_0x432b9b[_0xbafa('0x14')]['findOne']({'where':{'id':_0x41e401['WhatsappInteractionId']}})['then'](function(_0x2fd041){if(_0x2fd041){_0x2fd041[_0xbafa('0x15')]({'lastMsgAt':_0x41e401['createdAt'],'lastMsgDirection':_0x41e401[_0xbafa('0xf')][_0xbafa('0x10')]()});}})[_0xbafa('0x16')](function(_0x2bab58){console['error'](_0x2bab58);});}if(_0x41e401[_0xbafa('0xf')]===_0xbafa('0x17')&&!_0x41e401[_0xbafa('0x11')]){var _0x95ef48;_0x432b9b['WhatsappAccount'][_0xbafa('0x18')]({'where':{'id':_0x41e401[_0xbafa('0x19')]},'raw':!![]})[_0xbafa('0x1a')](function(_0x22807d){_0x95ef48=_0x22807d;if(_0x95ef48&&_0x95ef48[_0xbafa('0x1b')]){switch(_0x95ef48[_0xbafa('0x1b')]){case _0xbafa('0x1c'):var _0xa15b23=require(_0xbafa('0x1c'));if(_0x95ef48[_0xbafa('0x1d')]&&_0x95ef48['authToken']&&_0x95ef48[_0xbafa('0x1e')]){var _0x10012f=new _0xa15b23(_0x95ef48[_0xbafa('0x1d')],_0x95ef48[_0xbafa('0x1f')]);_0x10012f['messages'][_0xbafa('0x20')]({'body':_0x41e401[_0xbafa('0xd')],'to':_0xbafa('0x21')+_0x41e401[_0xbafa('0x1e')],'from':'whatsapp:'+_0x95ef48[_0xbafa('0x1e')],'statusCallback':_0x95ef48[_0xbafa('0x22')]+_0xbafa('0x23')+_0x41e401['id']+'/status?token='+_0x95ef48[_0xbafa('0x24')]})[_0xbafa('0x1a')](function(_0x48ca78){if(_0x48ca78[_0xbafa('0x25')]){return _0x1606e7[_0xbafa('0x15')]({'messageId':_0x48ca78['sid']});}})['catch'](function(_0x530682){logger[_0xbafa('0x26')](_0xbafa('0x27'),_0xbafa('0x28'),'twilio',util[_0xbafa('0x29')](_0x530682,{'showHidden':![],'depth':null}));});}else{logger[_0xbafa('0x26')](_0xbafa('0x27'),_0xbafa('0x28'),_0xbafa('0x1c'),_0xbafa('0x2a'));}break;case'sinch':var _0x4d45a8=_0x95ef48[_0xbafa('0x1d')];var _0x1cc5ff=_0x95ef48['authToken'];var _0x4b3e24=_0x95ef48['baseUrl']+_0xbafa('0x2b')+_0x4d45a8+_0xbafa('0x2c');var _0x45e62e={'to':[_0x41e401[_0xbafa('0x1e')]],'message':{'type':_0xbafa('0x2d'),'text':_0x41e401[_0xbafa('0xd')]}};var _0x2b60a5={'method':_0xbafa('0x2e'),'uri':_0x4b3e24,'headers':{'Authorization':_0xbafa('0x2f')+_0x1cc5ff,'Content-Type':_0xbafa('0x30')},'body':_0x45e62e,'json':!![]};rp(_0x2b60a5)[_0xbafa('0x1a')](function(_0xabf2ca){if(_0xabf2ca['statuses'][0x0][_0xbafa('0x31')]){return _0x1606e7['update']({'messageId':_0xabf2ca['statuses'][0x0][_0xbafa('0x31')]});}})[_0xbafa('0x16')](function(_0x2d887c){logger[_0xbafa('0x32')](_0xbafa('0x33'),_0x2d887c);});break;}}})[_0xbafa('0x34')](function(){_0x536715();});}else{_0x536715();}}},'charset':_0xbafa('0x35'),'collate':'utf8mb4_unicode_ci'});};