5e7ef9ec17f608a209e041e10d1c3bb2dddf228d
[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 _0x4097=['path','rimraf','../../config/environment','exports','define','WhatsappMessage','whatsapp_messages','messageId','body','models','get','direction','toLowerCase','out','secret','isNil','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','then','update','createdAt','catch','error','WhatsappAccount','WhatsappAccountId','type','twilio','authToken','phone','accountSid','create','whatsapp:','remote','/api/whatsapp/messages/','/status?token=','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','inspect','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','baseUrl','/whatsapp/v1/','/messages/','text','POST','Bearer\x20','application/json','statuses','message_id','WhatsappMessage,\x20%s','finally','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','node-fetch'];(function(_0x13459b,_0x2348ff){var _0x218d3c=function(_0x1d4c98){while(--_0x1d4c98){_0x13459b['push'](_0x13459b['shift']());}};_0x218d3c(++_0x2348ff);}(_0x4097,0x78));var _0x7409=function(_0x1cc294,_0x5d677d){_0x1cc294=_0x1cc294-0x0;var _0x9af5f=_0x4097[_0x1cc294];return _0x9af5f;};'use strict';var _=require(_0x7409('0x0'));var util=require(_0x7409('0x1'));var logger=require(_0x7409('0x2'))(_0x7409('0x3'));var moment=require(_0x7409('0x4'));var BPromise=require(_0x7409('0x5'));var rp=require(_0x7409('0x6'));var fetch=require(_0x7409('0x7'));var fs=require('fs');var path=require(_0x7409('0x8'));var rimraf=require(_0x7409('0x9'));var config=require(_0x7409('0xa'));var attributes=require('./whatsappMessage.attributes');module[_0x7409('0xb')]=function(_0x3ac6db,_0x24ebe8){return _0x3ac6db[_0x7409('0xc')](_0x7409('0xd'),attributes,{'tableName':_0x7409('0xe'),'paranoid':![],'indexes':[{'name':'messageId','fields':[_0x7409('0xf')]},{'name':'fti_whatsapp_messages','fields':[_0x7409('0x10')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3b8f96,_0x21ff44,_0x2ee737){var _0x373fca=_0x3ac6db[_0x7409('0x11')];var _0x4081ed=_0x3b8f96[_0x7409('0x12')]({'plain':!![]});if(_0x4081ed[_0x7409('0x13')][_0x7409('0x14')]()==='in'||_0x4081ed['direction'][_0x7409('0x14')]()===_0x7409('0x15')&&!_0x4081ed[_0x7409('0x16')]&&!_[_0x7409('0x17')](_0x4081ed[_0x7409('0x18')])){_0x373fca[_0x7409('0x19')][_0x7409('0x1a')]({'where':{'id':_0x4081ed[_0x7409('0x1b')]}})[_0x7409('0x1c')](function(_0xc293d1){if(_0xc293d1){_0xc293d1[_0x7409('0x1d')]({'lastMsgAt':_0x4081ed[_0x7409('0x1e')],'lastMsgDirection':_0x4081ed['direction'][_0x7409('0x14')]()});}})[_0x7409('0x1f')](function(_0x401030){console[_0x7409('0x20')](_0x401030);});}if(_0x4081ed[_0x7409('0x13')]==='out'&&!_0x4081ed[_0x7409('0x16')]){var _0x429ca6;_0x373fca[_0x7409('0x21')]['find']({'where':{'id':_0x4081ed[_0x7409('0x22')]},'raw':!![]})[_0x7409('0x1c')](function(_0x94882e){_0x429ca6=_0x94882e;if(_0x429ca6&&_0x429ca6[_0x7409('0x23')]){switch(_0x429ca6[_0x7409('0x23')]){case'twilio':var _0x50fd7d=require(_0x7409('0x24'));if(_0x429ca6['accountSid']&&_0x429ca6[_0x7409('0x25')]&&_0x429ca6[_0x7409('0x26')]){var _0x373c7a=new _0x50fd7d(_0x429ca6[_0x7409('0x27')],_0x429ca6[_0x7409('0x25')]);_0x373c7a['messages'][_0x7409('0x28')]({'body':_0x4081ed['body'],'to':_0x7409('0x29')+_0x4081ed[_0x7409('0x26')],'from':_0x7409('0x29')+_0x429ca6[_0x7409('0x26')],'statusCallback':_0x429ca6[_0x7409('0x2a')]+_0x7409('0x2b')+_0x4081ed['id']+_0x7409('0x2c')+_0x429ca6[_0x7409('0x2d')]})[_0x7409('0x1c')](function(_0xb6a68d){if(_0xb6a68d[_0x7409('0x2e')]){return _0x3b8f96[_0x7409('0x1d')]({'messageId':_0xb6a68d['sid']});}})[_0x7409('0x1f')](function(_0x1c633c){logger[_0x7409('0x20')](_0x7409('0x2f'),'afterCreate','twilio',util[_0x7409('0x30')](_0x1c633c,{'showHidden':![],'depth':null}));});}else{logger[_0x7409('0x20')](_0x7409('0x2f'),_0x7409('0x31'),'twilio',_0x7409('0x32'));}break;case _0x7409('0x33'):var _0x4f0c7d=_0x429ca6[_0x7409('0x27')];var _0xc9768=_0x429ca6['authToken'];var _0x1d7404=_0x429ca6[_0x7409('0x34')]+_0x7409('0x35')+_0x4f0c7d+_0x7409('0x36');var _0x291deb={'to':[_0x4081ed[_0x7409('0x26')]],'message':{'type':_0x7409('0x37'),'text':_0x4081ed[_0x7409('0x10')]}};var _0x438e78={'method':_0x7409('0x38'),'uri':_0x1d7404,'headers':{'Authorization':_0x7409('0x39')+_0xc9768,'Content-Type':_0x7409('0x3a')},'body':_0x291deb,'json':!![]};rp(_0x438e78)[_0x7409('0x1c')](function(_0x3587e1){if(_0x3587e1[_0x7409('0x3b')][0x0]['message_id']){return _0x3b8f96[_0x7409('0x1d')]({'messageId':_0x3587e1[_0x7409('0x3b')][0x0][_0x7409('0x3c')]});}})[_0x7409('0x1f')](function(_0x26e4e4){logger['err'](_0x7409('0x3d'),_0x26e4e4);});break;}}})[_0x7409('0x3e')](function(){_0x2ee737();});}else{_0x2ee737();}}},'charset':'utf8mb4','collate':_0x7409('0x3f')});};