c70c3ba5498f71eb31a28eedfe16ec7e73dbc774
[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 _0x0178=['WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','body','FULLTEXT','models','get','direction','toLowerCase','out','isNil','UserId','WhatsappInteraction','WhatsappInteractionId','then','createdAt','catch','secret','WhatsappAccount','find','WhatsappAccountId','type','twilio','phone','accountSid','authToken','messages','create','whatsapp:','remote','/api/whatsapp/messages/','/status?token=','token','update','sid','error','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','sinch','baseUrl','/whatsapp/v1/','/messages/','text','POST','application/json','statuses','message_id','err','finally','utf8mb4','lodash','api','moment','bluebird','request-promise','node-fetch','path','../../config/environment','./whatsappMessage.attributes','define'];(function(_0xeb4f14,_0x40b0bb){var _0xbdb9ae=function(_0x1ccfe4){while(--_0x1ccfe4){_0xeb4f14['push'](_0xeb4f14['shift']());}};_0xbdb9ae(++_0x40b0bb);}(_0x0178,0x1e6));var _0x8017=function(_0x453209,_0xb138cf){_0x453209=_0x453209-0x0;var _0x5b3d1d=_0x0178[_0x453209];return _0x5b3d1d;};'use strict';var _=require(_0x8017('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x8017('0x1'));var moment=require(_0x8017('0x2'));var BPromise=require(_0x8017('0x3'));var rp=require(_0x8017('0x4'));var fetch=require(_0x8017('0x5'));var fs=require('fs');var path=require(_0x8017('0x6'));var rimraf=require('rimraf');var config=require(_0x8017('0x7'));var attributes=require(_0x8017('0x8'));module['exports']=function(_0x4ff3f7,_0x5dab34){return _0x4ff3f7[_0x8017('0x9')](_0x8017('0xa'),attributes,{'tableName':_0x8017('0xb'),'paranoid':![],'indexes':[{'name':'messageId','fields':[_0x8017('0xc')]},{'name':_0x8017('0xd'),'fields':[_0x8017('0xe')],'type':_0x8017('0xf')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4b7be5,_0x19a709,_0x507b95){var _0x574d65=_0x4ff3f7[_0x8017('0x10')];var _0x5beac3=_0x4b7be5[_0x8017('0x11')]({'plain':!![]});if(_0x5beac3[_0x8017('0x12')][_0x8017('0x13')]()==='in'||_0x5beac3[_0x8017('0x12')][_0x8017('0x13')]()===_0x8017('0x14')&&!_0x5beac3['secret']&&!_[_0x8017('0x15')](_0x5beac3[_0x8017('0x16')])){_0x574d65[_0x8017('0x17')]['findOne']({'where':{'id':_0x5beac3[_0x8017('0x18')]}})[_0x8017('0x19')](function(_0x5a21c0){if(_0x5a21c0){_0x5a21c0['update']({'lastMsgAt':_0x5beac3[_0x8017('0x1a')],'lastMsgDirection':_0x5beac3[_0x8017('0x12')][_0x8017('0x13')]()});}})[_0x8017('0x1b')](function(_0xe85267){console['error'](_0xe85267);});}if(_0x5beac3['direction']===_0x8017('0x14')&&!_0x5beac3[_0x8017('0x1c')]){var _0xb90de3;_0x574d65[_0x8017('0x1d')][_0x8017('0x1e')]({'where':{'id':_0x5beac3[_0x8017('0x1f')]},'raw':!![]})[_0x8017('0x19')](function(_0x91d2d6){_0xb90de3=_0x91d2d6;if(_0xb90de3&&_0xb90de3['type']){switch(_0xb90de3[_0x8017('0x20')]){case _0x8017('0x21'):var _0x57fd81=require(_0x8017('0x21'));if(_0xb90de3['accountSid']&&_0xb90de3['authToken']&&_0xb90de3[_0x8017('0x22')]){var _0x5ac156=new _0x57fd81(_0xb90de3[_0x8017('0x23')],_0xb90de3[_0x8017('0x24')]);_0x5ac156[_0x8017('0x25')][_0x8017('0x26')]({'body':_0x5beac3[_0x8017('0xe')],'to':_0x8017('0x27')+_0x5beac3[_0x8017('0x22')],'from':'whatsapp:'+_0xb90de3['phone'],'statusCallback':_0xb90de3[_0x8017('0x28')]+_0x8017('0x29')+_0x5beac3['id']+_0x8017('0x2a')+_0xb90de3[_0x8017('0x2b')]})[_0x8017('0x19')](function(_0x771a83){if(_0x771a83['sid']){return _0x4b7be5[_0x8017('0x2c')]({'messageId':_0x771a83[_0x8017('0x2d')]});}})[_0x8017('0x1b')](function(_0x2a482c){logger[_0x8017('0x2e')](_0x8017('0x2f'),_0x8017('0x30'),_0x8017('0x21'),util[_0x8017('0x31')](_0x2a482c,{'showHidden':![],'depth':null}));});}else{logger[_0x8017('0x2e')](_0x8017('0x2f'),_0x8017('0x30'),_0x8017('0x21'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0x8017('0x32'):var _0xe4eef0=_0xb90de3[_0x8017('0x23')];var _0x556708=_0xb90de3[_0x8017('0x24')];var _0x185ff5=_0xb90de3[_0x8017('0x33')]+_0x8017('0x34')+_0xe4eef0+_0x8017('0x35');var _0x45c82c={'to':[_0x5beac3[_0x8017('0x22')]],'message':{'type':_0x8017('0x36'),'text':_0x5beac3[_0x8017('0xe')]}};var _0x5ad744={'method':_0x8017('0x37'),'uri':_0x185ff5,'headers':{'Authorization':'Bearer\x20'+_0x556708,'Content-Type':_0x8017('0x38')},'body':_0x45c82c,'json':!![]};rp(_0x5ad744)[_0x8017('0x19')](function(_0x35ec7f){if(_0x35ec7f[_0x8017('0x39')][0x0][_0x8017('0x3a')]){return _0x4b7be5['update']({'messageId':_0x35ec7f[_0x8017('0x39')][0x0][_0x8017('0x3a')]});}})[_0x8017('0x1b')](function(_0x39a716){logger[_0x8017('0x3b')]('WhatsappMessage,\x20%s',_0x39a716);});break;}}})[_0x8017('0x3c')](function(){_0x507b95();});}else{_0x507b95();}}},'charset':_0x8017('0x3d'),'collate':'utf8mb4_unicode_ci'});};