Built motion from commit 1fa89557.|2.6.10
[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 _0x3c3e=['fti_whatsapp_messages','body','FULLTEXT','models','toLowerCase','direction','secret','isNil','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','then','update','createdAt','catch','error','out','WhatsappAccount','find','WhatsappAccountId','type','twilio','accountSid','authToken','create','phone','whatsapp:','/api/whatsapp/messages/','/status?token=','token','sid','afterCreate','WhatsappMessage,\x20%s,\x20%s,\x20%s','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','/whatsapp/v1/','/messages/','text','POST','Bearer\x20','application/json','statuses','message_id','err','WhatsappMessage,\x20%s','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','moment','request-promise','node-fetch','path','rimraf','../../config/environment','./whatsappMessage.attributes','exports','messageId'];(function(_0x12b4ec,_0x5ba907){var _0x6cba01=function(_0x4c1124){while(--_0x4c1124){_0x12b4ec['push'](_0x12b4ec['shift']());}};_0x6cba01(++_0x5ba907);}(_0x3c3e,0xe4));var _0xe3c3=function(_0x279558,_0x20dbee){_0x279558=_0x279558-0x0;var _0x1de954=_0x3c3e[_0x279558];return _0x1de954;};'use strict';var _=require(_0xe3c3('0x0'));var util=require('util');var logger=require(_0xe3c3('0x1'))(_0xe3c3('0x2'));var moment=require(_0xe3c3('0x3'));var BPromise=require('bluebird');var rp=require(_0xe3c3('0x4'));var fetch=require(_0xe3c3('0x5'));var fs=require('fs');var path=require(_0xe3c3('0x6'));var rimraf=require(_0xe3c3('0x7'));var config=require(_0xe3c3('0x8'));var attributes=require(_0xe3c3('0x9'));module[_0xe3c3('0xa')]=function(_0x257db5,_0x5bee97){return _0x257db5['define']('WhatsappMessage',attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0xe3c3('0xb'),'fields':[_0xe3c3('0xb')]},{'name':_0xe3c3('0xc'),'fields':[_0xe3c3('0xd')],'type':_0xe3c3('0xe')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3f5bde,_0x1e4b09,_0x32b36f){var _0x55932e=_0x257db5[_0xe3c3('0xf')];var _0xfeacd3=_0x3f5bde['get']({'plain':!![]});if(_0xfeacd3['direction'][_0xe3c3('0x10')]()==='in'||_0xfeacd3[_0xe3c3('0x11')]['toLowerCase']()==='out'&&!_0xfeacd3[_0xe3c3('0x12')]&&!_[_0xe3c3('0x13')](_0xfeacd3[_0xe3c3('0x14')])){_0x55932e[_0xe3c3('0x15')][_0xe3c3('0x16')]({'where':{'id':_0xfeacd3[_0xe3c3('0x17')]}})[_0xe3c3('0x18')](function(_0x219c7a){if(_0x219c7a){_0x219c7a[_0xe3c3('0x19')]({'lastMsgAt':_0xfeacd3[_0xe3c3('0x1a')],'lastMsgDirection':_0xfeacd3[_0xe3c3('0x11')][_0xe3c3('0x10')]()});}})[_0xe3c3('0x1b')](function(_0x47b821){console[_0xe3c3('0x1c')](_0x47b821);});}if(_0xfeacd3[_0xe3c3('0x11')]===_0xe3c3('0x1d')&&!_0xfeacd3[_0xe3c3('0x12')]){var _0x18c11b;_0x55932e[_0xe3c3('0x1e')][_0xe3c3('0x1f')]({'where':{'id':_0xfeacd3[_0xe3c3('0x20')]},'raw':!![]})[_0xe3c3('0x18')](function(_0x20567c){_0x18c11b=_0x20567c;if(_0x18c11b&&_0x18c11b[_0xe3c3('0x21')]){switch(_0x18c11b['type']){case _0xe3c3('0x22'):var _0x5963d4=require(_0xe3c3('0x22'));if(_0x18c11b[_0xe3c3('0x23')]&&_0x18c11b['authToken']&&_0x18c11b['phone']){var _0x51354a=new _0x5963d4(_0x18c11b['accountSid'],_0x18c11b[_0xe3c3('0x24')]);_0x51354a['messages'][_0xe3c3('0x25')]({'body':_0xfeacd3[_0xe3c3('0xd')],'to':'whatsapp:'+_0xfeacd3[_0xe3c3('0x26')],'from':_0xe3c3('0x27')+_0x18c11b[_0xe3c3('0x26')],'statusCallback':_0x18c11b['remote']+_0xe3c3('0x28')+_0xfeacd3['id']+_0xe3c3('0x29')+_0x18c11b[_0xe3c3('0x2a')]})[_0xe3c3('0x18')](function(_0x278f8e){if(_0x278f8e[_0xe3c3('0x2b')]){return _0x3f5bde[_0xe3c3('0x19')]({'messageId':_0x278f8e[_0xe3c3('0x2b')]});}})[_0xe3c3('0x1b')](function(_0x39ddf6){logger[_0xe3c3('0x1c')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0xe3c3('0x2c'),_0xe3c3('0x22'),util['inspect'](_0x39ddf6,{'showHidden':![],'depth':null}));});}else{logger[_0xe3c3('0x1c')](_0xe3c3('0x2d'),_0xe3c3('0x2c'),_0xe3c3('0x22'),_0xe3c3('0x2e'));}break;case _0xe3c3('0x2f'):var _0x3c2077=_0x18c11b[_0xe3c3('0x23')];var _0x206558=_0x18c11b[_0xe3c3('0x24')];var _0x9ab78d=_0x18c11b['baseUrl']+_0xe3c3('0x30')+_0x3c2077+_0xe3c3('0x31');var _0x4edaf2={'to':[_0xfeacd3['phone']],'message':{'type':_0xe3c3('0x32'),'text':_0xfeacd3[_0xe3c3('0xd')]}};var _0x94ac38={'method':_0xe3c3('0x33'),'uri':_0x9ab78d,'headers':{'Authorization':_0xe3c3('0x34')+_0x206558,'Content-Type':_0xe3c3('0x35')},'body':_0x4edaf2,'json':!![]};rp(_0x94ac38)['then'](function(_0x33939d){if(_0x33939d[_0xe3c3('0x36')][0x0][_0xe3c3('0x37')]){return _0x3f5bde[_0xe3c3('0x19')]({'messageId':_0x33939d[_0xe3c3('0x36')][0x0][_0xe3c3('0x37')]});}})[_0xe3c3('0x1b')](function(_0x21fe37){logger[_0xe3c3('0x38')](_0xe3c3('0x39'),_0x21fe37);});break;}}})['finally'](function(){_0x32b36f();});}else{_0x32b36f();}}},'charset':_0xe3c3('0x3a'),'collate':_0xe3c3('0x3b')});};