fd9d0fb2dd50179e47ca034dd14c54042c26e989
[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 _0xb315=['../../config/environment','exports','define','whatsapp_messages','messageId','fti_whatsapp_messages','body','FULLTEXT','models','direction','toLowerCase','isNil','UserId','findOne','WhatsappInteractionId','then','update','createdAt','error','out','secret','WhatsappAccount','find','twilio','accountSid','authToken','phone','messages','create','whatsapp:','remote','/api/whatsapp/messages/','/status?token=','sid','catch','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','sinch','baseUrl','/whatsapp/v1/','/messages/','text','POST','Bearer\x20','statuses','message_id','err','WhatsappMessage,\x20%s','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x1a08db,_0x29eeeb){var _0x5d2f16=function(_0x3524e4){while(--_0x3524e4){_0x1a08db['push'](_0x1a08db['shift']());}};_0x5d2f16(++_0x29eeeb);}(_0xb315,0x1a2));var _0x5b31=function(_0xdd827a,_0x482ad2){_0xdd827a=_0xdd827a-0x0;var _0x2f46f1=_0xb315[_0xdd827a];return _0x2f46f1;};'use strict';var _=require(_0x5b31('0x0'));var util=require(_0x5b31('0x1'));var logger=require(_0x5b31('0x2'))(_0x5b31('0x3'));var moment=require(_0x5b31('0x4'));var BPromise=require(_0x5b31('0x5'));var rp=require(_0x5b31('0x6'));var fetch=require('node-fetch');var fs=require('fs');var path=require(_0x5b31('0x7'));var rimraf=require(_0x5b31('0x8'));var config=require(_0x5b31('0x9'));var attributes=require('./whatsappMessage.attributes');module[_0x5b31('0xa')]=function(_0xd6cfb7,_0x2866c0){return _0xd6cfb7[_0x5b31('0xb')]('WhatsappMessage',attributes,{'tableName':_0x5b31('0xc'),'paranoid':![],'indexes':[{'name':_0x5b31('0xd'),'fields':['messageId']},{'name':_0x5b31('0xe'),'fields':[_0x5b31('0xf')],'type':_0x5b31('0x10')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x465020,_0x26f59c,_0xd35b45){var _0x14cc1e=_0xd6cfb7[_0x5b31('0x11')];var _0x5cecde=_0x465020['get']({'plain':!![]});if(_0x5cecde[_0x5b31('0x12')][_0x5b31('0x13')]()==='in'||_0x5cecde[_0x5b31('0x12')][_0x5b31('0x13')]()==='out'&&!_0x5cecde['secret']&&!_[_0x5b31('0x14')](_0x5cecde[_0x5b31('0x15')])){_0x14cc1e['WhatsappInteraction'][_0x5b31('0x16')]({'where':{'id':_0x5cecde[_0x5b31('0x17')]}})[_0x5b31('0x18')](function(_0x4801ba){if(_0x4801ba){_0x4801ba[_0x5b31('0x19')]({'lastMsgAt':_0x5cecde[_0x5b31('0x1a')],'lastMsgDirection':_0x5cecde[_0x5b31('0x12')][_0x5b31('0x13')]()});}})['catch'](function(_0x3e1b40){console[_0x5b31('0x1b')](_0x3e1b40);});}if(_0x5cecde[_0x5b31('0x12')]===_0x5b31('0x1c')&&!_0x5cecde[_0x5b31('0x1d')]){var _0x36c50f;_0x14cc1e[_0x5b31('0x1e')][_0x5b31('0x1f')]({'where':{'id':_0x5cecde['WhatsappAccountId']},'raw':!![]})[_0x5b31('0x18')](function(_0x51ab9c){_0x36c50f=_0x51ab9c;if(_0x36c50f&&_0x36c50f['type']){switch(_0x36c50f['type']){case _0x5b31('0x20'):var _0x51d6f3=require(_0x5b31('0x20'));if(_0x36c50f[_0x5b31('0x21')]&&_0x36c50f[_0x5b31('0x22')]&&_0x36c50f[_0x5b31('0x23')]){var _0x2d44d3=new _0x51d6f3(_0x36c50f['accountSid'],_0x36c50f[_0x5b31('0x22')]);_0x2d44d3[_0x5b31('0x24')][_0x5b31('0x25')]({'body':_0x5cecde[_0x5b31('0xf')],'to':'whatsapp:'+_0x5cecde[_0x5b31('0x23')],'from':_0x5b31('0x26')+_0x36c50f[_0x5b31('0x23')],'statusCallback':_0x36c50f[_0x5b31('0x27')]+_0x5b31('0x28')+_0x5cecde['id']+_0x5b31('0x29')+_0x36c50f['token']})[_0x5b31('0x18')](function(_0x31c9f4){if(_0x31c9f4[_0x5b31('0x2a')]){return _0x465020['update']({'messageId':_0x31c9f4[_0x5b31('0x2a')]});}})[_0x5b31('0x2b')](function(_0x332eb1){logger[_0x5b31('0x1b')](_0x5b31('0x2c'),_0x5b31('0x2d'),_0x5b31('0x20'),util[_0x5b31('0x2e')](_0x332eb1,{'showHidden':![],'depth':null}));});}else{logger[_0x5b31('0x1b')](_0x5b31('0x2c'),_0x5b31('0x2d'),'twilio','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0x5b31('0x2f'):var _0x1d9a57=_0x36c50f[_0x5b31('0x21')];var _0x3caa38=_0x36c50f[_0x5b31('0x22')];var _0x4c5d50=_0x36c50f[_0x5b31('0x30')]+_0x5b31('0x31')+_0x1d9a57+_0x5b31('0x32');var _0x255c1e={'to':[_0x5cecde[_0x5b31('0x23')]],'message':{'type':_0x5b31('0x33'),'text':_0x5cecde['body']}};var _0x3b8b22={'method':_0x5b31('0x34'),'uri':_0x4c5d50,'headers':{'Authorization':_0x5b31('0x35')+_0x3caa38,'Content-Type':'application/json'},'body':_0x255c1e,'json':!![]};rp(_0x3b8b22)[_0x5b31('0x18')](function(_0x5973b9){if(_0x5973b9[_0x5b31('0x36')][0x0][_0x5b31('0x37')]){return _0x465020[_0x5b31('0x19')]({'messageId':_0x5973b9[_0x5b31('0x36')][0x0][_0x5b31('0x37')]});}})[_0x5b31('0x2b')](function(_0x1b7da1){logger[_0x5b31('0x38')](_0x5b31('0x39'),_0x1b7da1);});break;}}})[_0x5b31('0x3a')](function(){_0xd35b45();});}else{_0xd35b45();}}},'charset':_0x5b31('0x3b'),'collate':_0x5b31('0x3c')});};