62176d1361bb77154052f053d454c2cab19c70e7
[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 _0x201c=['POST','application/json','statuses','message_id','finally','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','bluebird','request-promise','node-fetch','path','../../config/environment','exports','define','WhatsappMessage','messageId','fti_whatsapp_messages','FULLTEXT','models','get','direction','out','WhatsappInteraction','then','update','createdAt','toLowerCase','catch','error','find','WhatsappAccountId','type','accountSid','authToken','phone','messages','create','body','whatsapp:','/api/whatsapp/messages/','/status?token=','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','sinch','baseUrl','/whatsapp/v1/','/messages/','text'];(function(_0x49eb4f,_0x197eb3){var _0x52c8fe=function(_0x28983d){while(--_0x28983d){_0x49eb4f['push'](_0x49eb4f['shift']());}};_0x52c8fe(++_0x197eb3);}(_0x201c,0x10b));var _0xc201=function(_0x3dae4f,_0x964e6e){_0x3dae4f=_0x3dae4f-0x0;var _0x38fc9b=_0x201c[_0x3dae4f];return _0x38fc9b;};'use strict';var _=require(_0xc201('0x0'));var util=require('util');var logger=require(_0xc201('0x1'))('api');var moment=require('moment');var BPromise=require(_0xc201('0x2'));var rp=require(_0xc201('0x3'));var fetch=require(_0xc201('0x4'));var fs=require('fs');var path=require(_0xc201('0x5'));var rimraf=require('rimraf');var config=require(_0xc201('0x6'));var attributes=require('./whatsappMessage.attributes');module[_0xc201('0x7')]=function(_0x53a626,_0x269ec3){return _0x53a626[_0xc201('0x8')](_0xc201('0x9'),attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0xc201('0xa'),'fields':[_0xc201('0xa')]},{'name':_0xc201('0xb'),'fields':['body'],'type':_0xc201('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x7ede3c,_0x345d6c,_0x549e8e){var _0x2843d2=_0x53a626[_0xc201('0xd')];var _0x4c7ad9=_0x7ede3c[_0xc201('0xe')]({'plain':!![]});if(_0x4c7ad9[_0xc201('0xf')]['toLowerCase']()==='in'||_0x4c7ad9['direction']['toLowerCase']()===_0xc201('0x10')&&!_0x4c7ad9['secret']&&!_['isNil'](_0x4c7ad9['UserId'])){_0x2843d2[_0xc201('0x11')]['findOne']({'where':{'id':_0x4c7ad9['WhatsappInteractionId']}})[_0xc201('0x12')](function(_0x22ef2a){if(_0x22ef2a){_0x22ef2a[_0xc201('0x13')]({'lastMsgAt':_0x4c7ad9[_0xc201('0x14')],'lastMsgDirection':_0x4c7ad9['direction'][_0xc201('0x15')]()});}})[_0xc201('0x16')](function(_0x513ccd){console[_0xc201('0x17')](_0x513ccd);});}if(_0x4c7ad9[_0xc201('0xf')]===_0xc201('0x10')&&!_0x4c7ad9['secret']){var _0x5f3895;_0x2843d2['WhatsappAccount'][_0xc201('0x18')]({'where':{'id':_0x4c7ad9[_0xc201('0x19')]},'raw':!![]})[_0xc201('0x12')](function(_0x176aed){_0x5f3895=_0x176aed;if(_0x5f3895&&_0x5f3895[_0xc201('0x1a')]){switch(_0x5f3895[_0xc201('0x1a')]){case'twilio':var _0x3a1f56=require('twilio');if(_0x5f3895[_0xc201('0x1b')]&&_0x5f3895[_0xc201('0x1c')]&&_0x5f3895[_0xc201('0x1d')]){var _0x50e638=new _0x3a1f56(_0x5f3895[_0xc201('0x1b')],_0x5f3895['authToken']);_0x50e638[_0xc201('0x1e')][_0xc201('0x1f')]({'body':_0x4c7ad9[_0xc201('0x20')],'to':_0xc201('0x21')+_0x4c7ad9[_0xc201('0x1d')],'from':_0xc201('0x21')+_0x5f3895[_0xc201('0x1d')],'statusCallback':_0x5f3895['remote']+_0xc201('0x22')+_0x4c7ad9['id']+_0xc201('0x23')+_0x5f3895[_0xc201('0x24')]})['then'](function(_0x2cc3df){if(_0x2cc3df[_0xc201('0x25')]){return _0x7ede3c['update']({'messageId':_0x2cc3df['sid']});}})[_0xc201('0x16')](function(_0x56a2c0){logger[_0xc201('0x17')](_0xc201('0x26'),'afterCreate','twilio',util['inspect'](_0x56a2c0,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xc201('0x26'),_0xc201('0x27'),'twilio','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0xc201('0x28'):var _0x5efbb=_0x5f3895[_0xc201('0x1b')];var _0x291466=_0x5f3895[_0xc201('0x1c')];var _0x142e36=_0x5f3895[_0xc201('0x29')]+_0xc201('0x2a')+_0x5efbb+_0xc201('0x2b');var _0x2455c5={'to':[_0x4c7ad9[_0xc201('0x1d')]],'message':{'type':_0xc201('0x2c'),'text':_0x4c7ad9[_0xc201('0x20')]}};var _0x4a1897={'method':_0xc201('0x2d'),'uri':_0x142e36,'headers':{'Authorization':'Bearer\x20'+_0x291466,'Content-Type':_0xc201('0x2e')},'body':_0x2455c5,'json':!![]};rp(_0x4a1897)[_0xc201('0x12')](function(_0x2269a0){if(_0x2269a0[_0xc201('0x2f')][0x0][_0xc201('0x30')]){return _0x7ede3c[_0xc201('0x13')]({'messageId':_0x2269a0[_0xc201('0x2f')][0x0][_0xc201('0x30')]});}})[_0xc201('0x16')](function(_0x37b2d4){logger['err']('WhatsappMessage,\x20%s',_0x37b2d4);});break;}}})[_0xc201('0x31')](function(){_0x549e8e();});}else{_0x549e8e();}}},'charset':_0xc201('0x32'),'collate':_0xc201('0x33')});};