c4f2b656ccf0dfa488f2ee4ac899372ed06d2f95
[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 _0x483d=['token','sid','error','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','sinch','baseUrl','/whatsapp/v1/','Bearer\x20','message_id','err','WhatsappMessage,\x20%s','finally','utf8mb4','util','api','bluebird','request-promise','path','rimraf','../../config/environment','./whatsappMessage.attributes','exports','define','WhatsappMessage','whatsapp_messages','messageId','body','FULLTEXT','models','direction','toLowerCase','out','secret','isNil','UserId','WhatsappInteraction','WhatsappInteractionId','then','update','catch','WhatsappAccount','find','WhatsappAccountId','twilio','accountSid','authToken','phone','messages','create','whatsapp:','remote','/api/whatsapp/messages/','/status?token='];(function(_0xf7f3be,_0x24db61){var _0x3f91cb=function(_0x5b9153){while(--_0x5b9153){_0xf7f3be['push'](_0xf7f3be['shift']());}};_0x3f91cb(++_0x24db61);}(_0x483d,0x159));var _0xd483=function(_0x9842b2,_0x1b94f0){_0x9842b2=_0x9842b2-0x0;var _0x53389c=_0x483d[_0x9842b2];return _0x53389c;};'use strict';var _=require('lodash');var util=require(_0xd483('0x0'));var logger=require('../../config/logger')(_0xd483('0x1'));var moment=require('moment');var BPromise=require(_0xd483('0x2'));var rp=require(_0xd483('0x3'));var fetch=require('node-fetch');var fs=require('fs');var path=require(_0xd483('0x4'));var rimraf=require(_0xd483('0x5'));var config=require(_0xd483('0x6'));var attributes=require(_0xd483('0x7'));module[_0xd483('0x8')]=function(_0x3ea1e7,_0x1f91a8){return _0x3ea1e7[_0xd483('0x9')](_0xd483('0xa'),attributes,{'tableName':_0xd483('0xb'),'paranoid':![],'indexes':[{'name':_0xd483('0xc'),'fields':['messageId']},{'name':'fti_whatsapp_messages','fields':[_0xd483('0xd')],'type':_0xd483('0xe')}],'timestamps':!![],'hooks':{'afterCreate':function(_0xccba2d,_0xe23c79,_0x2a34a6){var _0x36e4e2=_0x3ea1e7[_0xd483('0xf')];var _0xa9b675=_0xccba2d['get']({'plain':!![]});if(_0xa9b675[_0xd483('0x10')]['toLowerCase']()==='in'||_0xa9b675[_0xd483('0x10')][_0xd483('0x11')]()===_0xd483('0x12')&&!_0xa9b675[_0xd483('0x13')]&&!_[_0xd483('0x14')](_0xa9b675[_0xd483('0x15')])){_0x36e4e2[_0xd483('0x16')]['findOne']({'where':{'id':_0xa9b675[_0xd483('0x17')]}})[_0xd483('0x18')](function(_0x4930b7){if(_0x4930b7){_0x4930b7[_0xd483('0x19')]({'lastMsgAt':_0xa9b675['createdAt'],'lastMsgDirection':_0xa9b675['direction'][_0xd483('0x11')]()});}})[_0xd483('0x1a')](function(_0x16f0ce){console['error'](_0x16f0ce);});}if(_0xa9b675[_0xd483('0x10')]===_0xd483('0x12')&&!_0xa9b675[_0xd483('0x13')]){var _0x8487;_0x36e4e2[_0xd483('0x1b')][_0xd483('0x1c')]({'where':{'id':_0xa9b675[_0xd483('0x1d')]},'raw':!![]})[_0xd483('0x18')](function(_0xe5fc0c){_0x8487=_0xe5fc0c;if(_0x8487&&_0x8487['type']){switch(_0x8487['type']){case _0xd483('0x1e'):var _0x26a8d8=require(_0xd483('0x1e'));if(_0x8487[_0xd483('0x1f')]&&_0x8487[_0xd483('0x20')]&&_0x8487[_0xd483('0x21')]){var _0x3f48b5=new _0x26a8d8(_0x8487[_0xd483('0x1f')],_0x8487[_0xd483('0x20')]);_0x3f48b5[_0xd483('0x22')][_0xd483('0x23')]({'body':_0xa9b675[_0xd483('0xd')],'to':_0xd483('0x24')+_0xa9b675[_0xd483('0x21')],'from':'whatsapp:'+_0x8487[_0xd483('0x21')],'statusCallback':_0x8487[_0xd483('0x25')]+_0xd483('0x26')+_0xa9b675['id']+_0xd483('0x27')+_0x8487[_0xd483('0x28')]})['then'](function(_0x5a051f){if(_0x5a051f[_0xd483('0x29')]){return _0xccba2d[_0xd483('0x19')]({'messageId':_0x5a051f[_0xd483('0x29')]});}})[_0xd483('0x1a')](function(_0x25557e){logger[_0xd483('0x2a')](_0xd483('0x2b'),_0xd483('0x2c'),_0xd483('0x1e'),util[_0xd483('0x2d')](_0x25557e,{'showHidden':![],'depth':null}));});}else{logger[_0xd483('0x2a')](_0xd483('0x2b'),'afterCreate',_0xd483('0x1e'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0xd483('0x2e'):var _0x4e789d=_0x8487[_0xd483('0x1f')];var _0x1247a5=_0x8487[_0xd483('0x20')];var _0x4fca7e=_0x8487[_0xd483('0x2f')]+_0xd483('0x30')+_0x4e789d+'/messages/';var _0x2803b5={'to':[_0xa9b675[_0xd483('0x21')]],'message':{'type':'text','text':_0xa9b675['body']}};var _0x18e339={'method':'POST','uri':_0x4fca7e,'headers':{'Authorization':_0xd483('0x31')+_0x1247a5,'Content-Type':'application/json'},'body':_0x2803b5,'json':!![]};rp(_0x18e339)[_0xd483('0x18')](function(_0xb76cf5){if(_0xb76cf5['statuses'][0x0][_0xd483('0x32')]){return _0xccba2d[_0xd483('0x19')]({'messageId':_0xb76cf5['statuses'][0x0]['message_id']});}})[_0xd483('0x1a')](function(_0x3a03ca){logger[_0xd483('0x33')](_0xd483('0x34'),_0x3a03ca);});break;}}})[_0xd483('0x35')](function(){_0x2a34a6();});}else{_0x2a34a6();}}},'charset':_0xd483('0x36'),'collate':'utf8mb4_unicode_ci'});};