0e8c683c2f14d4656bab17047717b97a7af5a687
[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 _0xfb49=['utf8mb4_unicode_ci','lodash','util','../../config/logger','api','bluebird','request-promise','node-fetch','path','rimraf','./whatsappMessage.attributes','exports','define','whatsapp_messages','messageId','fti_whatsapp_messages','body','models','get','direction','toLowerCase','out','secret','isNil','UserId','WhatsappInteraction','findOne','then','update','createdAt','find','WhatsappAccountId','type','twilio','accountSid','authToken','phone','messages','whatsapp:','remote','/api/whatsapp/messages/','/status?token=','token','sid','catch','error','WhatsappMessage,\x20%s,\x20%s,\x20%s','inspect','afterCreate','sinch','/whatsapp/v1/','/messages/','text','POST','Bearer\x20','application/json','statuses','message_id','err','WhatsappMessage,\x20%s','utf8mb4'];(function(_0x564615,_0x51000c){var _0x3e5c3c=function(_0x35b777){while(--_0x35b777){_0x564615['push'](_0x564615['shift']());}};_0x3e5c3c(++_0x51000c);}(_0xfb49,0x1ac));var _0x9fb4=function(_0x4d2583,_0x52bd89){_0x4d2583=_0x4d2583-0x0;var _0x57fa3a=_0xfb49[_0x4d2583];return _0x57fa3a;};'use strict';var _=require(_0x9fb4('0x0'));var util=require(_0x9fb4('0x1'));var logger=require(_0x9fb4('0x2'))(_0x9fb4('0x3'));var moment=require('moment');var BPromise=require(_0x9fb4('0x4'));var rp=require(_0x9fb4('0x5'));var fetch=require(_0x9fb4('0x6'));var fs=require('fs');var path=require(_0x9fb4('0x7'));var rimraf=require(_0x9fb4('0x8'));var config=require('../../config/environment');var attributes=require(_0x9fb4('0x9'));module[_0x9fb4('0xa')]=function(_0xee211e,_0x51ab4e){return _0xee211e[_0x9fb4('0xb')]('WhatsappMessage',attributes,{'tableName':_0x9fb4('0xc'),'paranoid':![],'indexes':[{'name':_0x9fb4('0xd'),'fields':[_0x9fb4('0xd')]},{'name':_0x9fb4('0xe'),'fields':[_0x9fb4('0xf')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x1fd88a,_0x16cb55,_0x3f10e7){var _0x35c97a=_0xee211e[_0x9fb4('0x10')];var _0x4f6415=_0x1fd88a[_0x9fb4('0x11')]({'plain':!![]});if(_0x4f6415[_0x9fb4('0x12')][_0x9fb4('0x13')]()==='in'||_0x4f6415[_0x9fb4('0x12')]['toLowerCase']()===_0x9fb4('0x14')&&!_0x4f6415[_0x9fb4('0x15')]&&!_[_0x9fb4('0x16')](_0x4f6415[_0x9fb4('0x17')])){_0x35c97a[_0x9fb4('0x18')][_0x9fb4('0x19')]({'where':{'id':_0x4f6415['WhatsappInteractionId']}})[_0x9fb4('0x1a')](function(_0x194a91){if(_0x194a91){_0x194a91[_0x9fb4('0x1b')]({'lastMsgAt':_0x4f6415[_0x9fb4('0x1c')],'lastMsgDirection':_0x4f6415[_0x9fb4('0x12')][_0x9fb4('0x13')]()});}})['catch'](function(_0x15ec60){console['error'](_0x15ec60);});}if(_0x4f6415['direction']===_0x9fb4('0x14')&&!_0x4f6415[_0x9fb4('0x15')]){var _0x3b76b1;_0x35c97a['WhatsappAccount'][_0x9fb4('0x1d')]({'where':{'id':_0x4f6415[_0x9fb4('0x1e')]},'raw':!![]})[_0x9fb4('0x1a')](function(_0x60f378){_0x3b76b1=_0x60f378;if(_0x3b76b1&&_0x3b76b1['type']){switch(_0x3b76b1[_0x9fb4('0x1f')]){case _0x9fb4('0x20'):var _0x2b53b9=require(_0x9fb4('0x20'));if(_0x3b76b1[_0x9fb4('0x21')]&&_0x3b76b1[_0x9fb4('0x22')]&&_0x3b76b1[_0x9fb4('0x23')]){var _0x4c7270=new _0x2b53b9(_0x3b76b1[_0x9fb4('0x21')],_0x3b76b1[_0x9fb4('0x22')]);_0x4c7270[_0x9fb4('0x24')]['create']({'body':_0x4f6415[_0x9fb4('0xf')],'to':_0x9fb4('0x25')+_0x4f6415[_0x9fb4('0x23')],'from':_0x9fb4('0x25')+_0x3b76b1['phone'],'statusCallback':_0x3b76b1[_0x9fb4('0x26')]+_0x9fb4('0x27')+_0x4f6415['id']+_0x9fb4('0x28')+_0x3b76b1[_0x9fb4('0x29')]})[_0x9fb4('0x1a')](function(_0x49faed){if(_0x49faed[_0x9fb4('0x2a')]){return _0x1fd88a['update']({'messageId':_0x49faed['sid']});}})[_0x9fb4('0x2b')](function(_0x152a71){logger[_0x9fb4('0x2c')](_0x9fb4('0x2d'),'afterCreate',_0x9fb4('0x20'),util[_0x9fb4('0x2e')](_0x152a71,{'showHidden':![],'depth':null}));});}else{logger[_0x9fb4('0x2c')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x9fb4('0x2f'),_0x9fb4('0x20'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0x9fb4('0x30'):var _0x238645=_0x3b76b1['accountSid'];var _0x23cb05=_0x3b76b1[_0x9fb4('0x22')];var _0x1c5d7b=_0x3b76b1['baseUrl']+_0x9fb4('0x31')+_0x238645+_0x9fb4('0x32');var _0x5cad5e={'to':[_0x4f6415[_0x9fb4('0x23')]],'message':{'type':_0x9fb4('0x33'),'text':_0x4f6415[_0x9fb4('0xf')]}};var _0x9aed05={'method':_0x9fb4('0x34'),'uri':_0x1c5d7b,'headers':{'Authorization':_0x9fb4('0x35')+_0x23cb05,'Content-Type':_0x9fb4('0x36')},'body':_0x5cad5e,'json':!![]};rp(_0x9aed05)[_0x9fb4('0x1a')](function(_0x3d613e){if(_0x3d613e[_0x9fb4('0x37')][0x0]['message_id']){return _0x1fd88a[_0x9fb4('0x1b')]({'messageId':_0x3d613e['statuses'][0x0][_0x9fb4('0x38')]});}})[_0x9fb4('0x2b')](function(_0x24993c){logger[_0x9fb4('0x39')](_0x9fb4('0x3a'),_0x24993c);});break;}}})['finally'](function(){_0x3f10e7();});}else{_0x3f10e7();}}},'charset':_0x9fb4('0x3b'),'collate':_0x9fb4('0x3c')});};