43d87faf4c143e54ab17624afa3277476e8fa883
[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 _0xeed4=['remote','/status?token=','token','then','sid','afterCreate','WhatsappMessage,\x20%s,\x20%s,\x20%s','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','baseUrl','/whatsapp/v1/','/messages/','Bearer\x20','statuses','catch','err','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','node-fetch','path','rimraf','./whatsappMessage.attributes','exports','define','WhatsappMessage','whatsapp_messages','messageId','body','FULLTEXT','get','direction','toLowerCase','secret','UserId','WhatsappInteractionId','update','createdAt','error','out','find','WhatsappAccountId','type','twilio','accountSid','authToken','phone','messages','create','whatsapp:'];(function(_0x1dc687,_0x26106f){var _0x4c757f=function(_0x4fa24f){while(--_0x4fa24f){_0x1dc687['push'](_0x1dc687['shift']());}};_0x4c757f(++_0x26106f);}(_0xeed4,0x162));var _0x4eed=function(_0x187842,_0x58331c){_0x187842=_0x187842-0x0;var _0x5dbcf3=_0xeed4[_0x187842];return _0x5dbcf3;};'use strict';var _=require(_0x4eed('0x0'));var util=require(_0x4eed('0x1'));var logger=require(_0x4eed('0x2'))(_0x4eed('0x3'));var moment=require(_0x4eed('0x4'));var BPromise=require(_0x4eed('0x5'));var rp=require(_0x4eed('0x6'));var fetch=require(_0x4eed('0x7'));var fs=require('fs');var path=require(_0x4eed('0x8'));var rimraf=require(_0x4eed('0x9'));var config=require('../../config/environment');var attributes=require(_0x4eed('0xa'));module[_0x4eed('0xb')]=function(_0x17f4a2,_0x10f688){return _0x17f4a2[_0x4eed('0xc')](_0x4eed('0xd'),attributes,{'tableName':_0x4eed('0xe'),'paranoid':![],'indexes':[{'name':_0x4eed('0xf'),'fields':[_0x4eed('0xf')]},{'name':'fti_whatsapp_messages','fields':[_0x4eed('0x10')],'type':_0x4eed('0x11')}],'timestamps':!![],'hooks':{'afterCreate':function(_0xff6cb,_0x4d6bb1,_0x398100){var _0x48184a=_0x17f4a2['models'];var _0x2a976a=_0xff6cb[_0x4eed('0x12')]({'plain':!![]});if(_0x2a976a[_0x4eed('0x13')][_0x4eed('0x14')]()==='in'||_0x2a976a[_0x4eed('0x13')][_0x4eed('0x14')]()==='out'&&!_0x2a976a[_0x4eed('0x15')]&&!_['isNil'](_0x2a976a[_0x4eed('0x16')])){_0x48184a['WhatsappInteraction']['findOne']({'where':{'id':_0x2a976a[_0x4eed('0x17')]}})['then'](function(_0xbf9f57){if(_0xbf9f57){_0xbf9f57[_0x4eed('0x18')]({'lastMsgAt':_0x2a976a[_0x4eed('0x19')],'lastMsgDirection':_0x2a976a['direction'][_0x4eed('0x14')]()});}})['catch'](function(_0x4992f8){console[_0x4eed('0x1a')](_0x4992f8);});}if(_0x2a976a[_0x4eed('0x13')]===_0x4eed('0x1b')&&!_0x2a976a[_0x4eed('0x15')]){var _0x4a2ed2;_0x48184a['WhatsappAccount'][_0x4eed('0x1c')]({'where':{'id':_0x2a976a[_0x4eed('0x1d')]},'raw':!![]})['then'](function(_0x5eb1ff){_0x4a2ed2=_0x5eb1ff;if(_0x4a2ed2&&_0x4a2ed2[_0x4eed('0x1e')]){switch(_0x4a2ed2[_0x4eed('0x1e')]){case _0x4eed('0x1f'):var _0x39b8ed=require(_0x4eed('0x1f'));if(_0x4a2ed2[_0x4eed('0x20')]&&_0x4a2ed2[_0x4eed('0x21')]&&_0x4a2ed2[_0x4eed('0x22')]){var _0x358b39=new _0x39b8ed(_0x4a2ed2[_0x4eed('0x20')],_0x4a2ed2[_0x4eed('0x21')]);_0x358b39[_0x4eed('0x23')][_0x4eed('0x24')]({'body':_0x2a976a[_0x4eed('0x10')],'to':_0x4eed('0x25')+_0x2a976a[_0x4eed('0x22')],'from':_0x4eed('0x25')+_0x4a2ed2['phone'],'statusCallback':_0x4a2ed2[_0x4eed('0x26')]+'/api/whatsapp/messages/'+_0x2a976a['id']+_0x4eed('0x27')+_0x4a2ed2[_0x4eed('0x28')]})[_0x4eed('0x29')](function(_0x27b00d){if(_0x27b00d[_0x4eed('0x2a')]){return _0xff6cb[_0x4eed('0x18')]({'messageId':_0x27b00d[_0x4eed('0x2a')]});}})['catch'](function(_0x3021f1){logger[_0x4eed('0x1a')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x4eed('0x2b'),'twilio',util['inspect'](_0x3021f1,{'showHidden':![],'depth':null}));});}else{logger[_0x4eed('0x1a')](_0x4eed('0x2c'),_0x4eed('0x2b'),_0x4eed('0x1f'),_0x4eed('0x2d'));}break;case'sinch':var _0x217649=_0x4a2ed2['accountSid'];var _0x302dbe=_0x4a2ed2[_0x4eed('0x21')];var _0x8957e0=_0x4a2ed2[_0x4eed('0x2e')]+_0x4eed('0x2f')+_0x217649+_0x4eed('0x30');var _0x592d38={'to':[_0x2a976a[_0x4eed('0x22')]],'message':{'type':'text','text':_0x2a976a[_0x4eed('0x10')]}};var _0xa1c147={'method':'POST','uri':_0x8957e0,'headers':{'Authorization':_0x4eed('0x31')+_0x302dbe,'Content-Type':'application/json'},'body':_0x592d38,'json':!![]};rp(_0xa1c147)[_0x4eed('0x29')](function(_0x59502e){if(_0x59502e['statuses'][0x0]['message_id']){return _0xff6cb['update']({'messageId':_0x59502e[_0x4eed('0x32')][0x0]['message_id']});}})[_0x4eed('0x33')](function(_0xd2d796){logger[_0x4eed('0x34')]('WhatsappMessage,\x20%s',_0xd2d796);});break;}}})[_0x4eed('0x35')](function(){_0x398100();});}else{_0x398100();}}},'charset':_0x4eed('0x36'),'collate':_0x4eed('0x37')});};