Built motion from commit 64a6f4bc.|2.6.26
[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 _0x952a=['Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','baseUrl','/whatsapp/v1/','text','POST','Bearer\x20','statuses','message_id','err','WhatsappMessage,\x20%s','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','moment','bluebird','node-fetch','path','../../config/environment','./whatsappMessage.attributes','exports','define','whatsapp_messages','messageId','fti_whatsapp_messages','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','then','update','createdAt','catch','error','WhatsappAccount','find','type','twilio','accountSid','phone','authToken','messages','body','whatsapp:','remote','/status?token=','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect'];(function(_0x17b159,_0x1c5e7d){var _0x45f28f=function(_0x599e4c){while(--_0x599e4c){_0x17b159['push'](_0x17b159['shift']());}};_0x45f28f(++_0x1c5e7d);}(_0x952a,0x175));var _0xa952=function(_0x5dbe75,_0x5d23e0){_0x5dbe75=_0x5dbe75-0x0;var _0x528bd3=_0x952a[_0x5dbe75];return _0x528bd3;};'use strict';var _=require(_0xa952('0x0'));var util=require(_0xa952('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xa952('0x2'));var BPromise=require(_0xa952('0x3'));var rp=require('request-promise');var fetch=require(_0xa952('0x4'));var fs=require('fs');var path=require(_0xa952('0x5'));var rimraf=require('rimraf');var config=require(_0xa952('0x6'));var attributes=require(_0xa952('0x7'));module[_0xa952('0x8')]=function(_0x421f0b,_0x54a65f){return _0x421f0b[_0xa952('0x9')]('WhatsappMessage',attributes,{'tableName':_0xa952('0xa'),'paranoid':![],'indexes':[{'name':'messageId','fields':[_0xa952('0xb')]},{'name':_0xa952('0xc'),'fields':['body'],'type':_0xa952('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x575bc8,_0x107fcc,_0x539373){var _0x152fab=_0x421f0b[_0xa952('0xe')];var _0x581ca8=_0x575bc8[_0xa952('0xf')]({'plain':!![]});if(_0x581ca8[_0xa952('0x10')][_0xa952('0x11')]()==='in'||_0x581ca8['direction']['toLowerCase']()===_0xa952('0x12')&&!_0x581ca8[_0xa952('0x13')]&&!_[_0xa952('0x14')](_0x581ca8[_0xa952('0x15')])){_0x152fab[_0xa952('0x16')][_0xa952('0x17')]({'where':{'id':_0x581ca8[_0xa952('0x18')]}})[_0xa952('0x19')](function(_0x366880){if(_0x366880){_0x366880[_0xa952('0x1a')]({'lastMsgAt':_0x581ca8[_0xa952('0x1b')],'lastMsgDirection':_0x581ca8['direction'][_0xa952('0x11')]()});}})[_0xa952('0x1c')](function(_0x2a8c20){console[_0xa952('0x1d')](_0x2a8c20);});}if(_0x581ca8[_0xa952('0x10')]==='out'&&!_0x581ca8[_0xa952('0x13')]){var _0x23a4d1;_0x152fab[_0xa952('0x1e')][_0xa952('0x1f')]({'where':{'id':_0x581ca8['WhatsappAccountId']},'raw':!![]})[_0xa952('0x19')](function(_0x28a172){_0x23a4d1=_0x28a172;if(_0x23a4d1&&_0x23a4d1[_0xa952('0x20')]){switch(_0x23a4d1['type']){case'twilio':var _0x44e8c4=require(_0xa952('0x21'));if(_0x23a4d1[_0xa952('0x22')]&&_0x23a4d1['authToken']&&_0x23a4d1[_0xa952('0x23')]){var _0x5eb893=new _0x44e8c4(_0x23a4d1[_0xa952('0x22')],_0x23a4d1[_0xa952('0x24')]);_0x5eb893[_0xa952('0x25')]['create']({'body':_0x581ca8[_0xa952('0x26')],'to':_0xa952('0x27')+_0x581ca8['phone'],'from':_0xa952('0x27')+_0x23a4d1[_0xa952('0x23')],'statusCallback':_0x23a4d1[_0xa952('0x28')]+'/api/whatsapp/messages/'+_0x581ca8['id']+_0xa952('0x29')+_0x23a4d1[_0xa952('0x2a')]})[_0xa952('0x19')](function(_0x291f77){if(_0x291f77[_0xa952('0x2b')]){return _0x575bc8[_0xa952('0x1a')]({'messageId':_0x291f77[_0xa952('0x2b')]});}})[_0xa952('0x1c')](function(_0x557264){logger['error'](_0xa952('0x2c'),_0xa952('0x2d'),'twilio',util[_0xa952('0x2e')](_0x557264,{'showHidden':![],'depth':null}));});}else{logger[_0xa952('0x1d')](_0xa952('0x2c'),_0xa952('0x2d'),_0xa952('0x21'),_0xa952('0x2f'));}break;case'sinch':var _0x401bdb=_0x23a4d1[_0xa952('0x22')];var _0x57e84c=_0x23a4d1['authToken'];var _0x5a1a14=_0x23a4d1[_0xa952('0x30')]+_0xa952('0x31')+_0x401bdb+'/messages/';var _0x407285={'to':[_0x581ca8[_0xa952('0x23')]],'message':{'type':_0xa952('0x32'),'text':_0x581ca8[_0xa952('0x26')]}};var _0x1ce07b={'method':_0xa952('0x33'),'uri':_0x5a1a14,'headers':{'Authorization':_0xa952('0x34')+_0x57e84c,'Content-Type':'application/json'},'body':_0x407285,'json':!![]};rp(_0x1ce07b)[_0xa952('0x19')](function(_0x1bc8c9){if(_0x1bc8c9[_0xa952('0x35')][0x0][_0xa952('0x36')]){return _0x575bc8[_0xa952('0x1a')]({'messageId':_0x1bc8c9[_0xa952('0x35')][0x0][_0xa952('0x36')]});}})[_0xa952('0x1c')](function(_0x2b3d39){logger[_0xa952('0x37')](_0xa952('0x38'),_0x2b3d39);});break;}}})[_0xa952('0x39')](function(){_0x539373();});}else{_0x539373();}}},'charset':_0xa952('0x3a'),'collate':_0xa952('0x3b')});};