e8d7e974abc179a6ee270e7a85db2d99831d3ac1
[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 _0x693d=['toLowerCase','out','isNil','UserId','WhatsappInteraction','then','update','createdAt','catch','error','secret','find','WhatsappAccountId','type','twilio','authToken','phone','whatsapp:','remote','/api/whatsapp/messages/','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','baseUrl','/whatsapp/v1/','/messages/','text','POST','Bearer\x20','application/json','statuses','message_id','WhatsappMessage,\x20%s','finally','utf8mb4','lodash','util','../../config/logger','api','moment','bluebird','request-promise','node-fetch','path','../../config/environment','./whatsappMessage.attributes','define','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','body','FULLTEXT','models','get','direction'];(function(_0x590ad7,_0x44e8c9){var _0x280f1d=function(_0x38ed6d){while(--_0x38ed6d){_0x590ad7['push'](_0x590ad7['shift']());}};_0x280f1d(++_0x44e8c9);}(_0x693d,0x153));var _0xd693=function(_0x11aee4,_0x33a7d3){_0x11aee4=_0x11aee4-0x0;var _0x5e8ee2=_0x693d[_0x11aee4];return _0x5e8ee2;};'use strict';var _=require(_0xd693('0x0'));var util=require(_0xd693('0x1'));var logger=require(_0xd693('0x2'))(_0xd693('0x3'));var moment=require(_0xd693('0x4'));var BPromise=require(_0xd693('0x5'));var rp=require(_0xd693('0x6'));var fetch=require(_0xd693('0x7'));var fs=require('fs');var path=require(_0xd693('0x8'));var rimraf=require('rimraf');var config=require(_0xd693('0x9'));var attributes=require(_0xd693('0xa'));module['exports']=function(_0x4cf777,_0x2379ae){return _0x4cf777[_0xd693('0xb')](_0xd693('0xc'),attributes,{'tableName':_0xd693('0xd'),'paranoid':![],'indexes':[{'name':_0xd693('0xe'),'fields':[_0xd693('0xe')]},{'name':_0xd693('0xf'),'fields':[_0xd693('0x10')],'type':_0xd693('0x11')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x13962f,_0x1c3803,_0x6ca2a6){var _0x16c16f=_0x4cf777[_0xd693('0x12')];var _0x3a9dfa=_0x13962f[_0xd693('0x13')]({'plain':!![]});if(_0x3a9dfa[_0xd693('0x14')][_0xd693('0x15')]()==='in'||_0x3a9dfa['direction']['toLowerCase']()===_0xd693('0x16')&&!_0x3a9dfa['secret']&&!_[_0xd693('0x17')](_0x3a9dfa[_0xd693('0x18')])){_0x16c16f[_0xd693('0x19')]['findOne']({'where':{'id':_0x3a9dfa['WhatsappInteractionId']}})[_0xd693('0x1a')](function(_0x107bec){if(_0x107bec){_0x107bec[_0xd693('0x1b')]({'lastMsgAt':_0x3a9dfa[_0xd693('0x1c')],'lastMsgDirection':_0x3a9dfa[_0xd693('0x14')][_0xd693('0x15')]()});}})[_0xd693('0x1d')](function(_0x18bf63){console[_0xd693('0x1e')](_0x18bf63);});}if(_0x3a9dfa[_0xd693('0x14')]==='out'&&!_0x3a9dfa[_0xd693('0x1f')]){var _0x2ac52f;_0x16c16f['WhatsappAccount'][_0xd693('0x20')]({'where':{'id':_0x3a9dfa[_0xd693('0x21')]},'raw':!![]})['then'](function(_0x1c4e0a){_0x2ac52f=_0x1c4e0a;if(_0x2ac52f&&_0x2ac52f[_0xd693('0x22')]){switch(_0x2ac52f['type']){case _0xd693('0x23'):var _0x52f9f4=require(_0xd693('0x23'));if(_0x2ac52f['accountSid']&&_0x2ac52f['authToken']&&_0x2ac52f['phone']){var _0x151039=new _0x52f9f4(_0x2ac52f['accountSid'],_0x2ac52f[_0xd693('0x24')]);_0x151039['messages']['create']({'body':_0x3a9dfa['body'],'to':'whatsapp:'+_0x3a9dfa[_0xd693('0x25')],'from':_0xd693('0x26')+_0x2ac52f[_0xd693('0x25')],'statusCallback':_0x2ac52f[_0xd693('0x27')]+_0xd693('0x28')+_0x3a9dfa['id']+'/status?token='+_0x2ac52f[_0xd693('0x29')]})[_0xd693('0x1a')](function(_0xbebe29){if(_0xbebe29[_0xd693('0x2a')]){return _0x13962f[_0xd693('0x1b')]({'messageId':_0xbebe29['sid']});}})[_0xd693('0x1d')](function(_0x4932b6){logger[_0xd693('0x1e')](_0xd693('0x2b'),_0xd693('0x2c'),_0xd693('0x23'),util[_0xd693('0x2d')](_0x4932b6,{'showHidden':![],'depth':null}));});}else{logger[_0xd693('0x1e')](_0xd693('0x2b'),_0xd693('0x2c'),_0xd693('0x23'),_0xd693('0x2e'));}break;case _0xd693('0x2f'):var _0x2814a8=_0x2ac52f['accountSid'];var _0x2ee501=_0x2ac52f[_0xd693('0x24')];var _0x57490f=_0x2ac52f[_0xd693('0x30')]+_0xd693('0x31')+_0x2814a8+_0xd693('0x32');var _0x2106cd={'to':[_0x3a9dfa[_0xd693('0x25')]],'message':{'type':_0xd693('0x33'),'text':_0x3a9dfa[_0xd693('0x10')]}};var _0x26fca1={'method':_0xd693('0x34'),'uri':_0x57490f,'headers':{'Authorization':_0xd693('0x35')+_0x2ee501,'Content-Type':_0xd693('0x36')},'body':_0x2106cd,'json':!![]};rp(_0x26fca1)[_0xd693('0x1a')](function(_0x3537cd){if(_0x3537cd[_0xd693('0x37')][0x0][_0xd693('0x38')]){return _0x13962f[_0xd693('0x1b')]({'messageId':_0x3537cd[_0xd693('0x37')][0x0]['message_id']});}})[_0xd693('0x1d')](function(_0x2e6806){logger['err'](_0xd693('0x39'),_0x2e6806);});break;}}})[_0xd693('0x3a')](function(){_0x6ca2a6();});}else{_0x6ca2a6();}}},'charset':_0xd693('0x3b'),'collate':'utf8mb4_unicode_ci'});};