06cb4a3391927dd9485c3474b0054fa040c81081
[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 _0xc639=['sinch','/whatsapp/v1/','/messages/','text','POST','Bearer\x20','application/json','statuses','message_id','utf8mb4','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','exports','define','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','body','FULLTEXT','models','direction','toLowerCase','UserId','findOne','WhatsappInteractionId','update','createdAt','catch','out','WhatsappAccount','WhatsappAccountId','then','type','twilio','accountSid','phone','authToken','messages','create','remote','/api/whatsapp/messages/','token','sid','error','afterCreate','WhatsappMessage,\x20%s,\x20%s,\x20%s','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken'];(function(_0x5447fd,_0x52a6b5){var _0x15b28a=function(_0x370d4f){while(--_0x370d4f){_0x5447fd['push'](_0x5447fd['shift']());}};_0x15b28a(++_0x52a6b5);}(_0xc639,0x184));var _0x9c63=function(_0x357786,_0x1742f8){_0x357786=_0x357786-0x0;var _0x5925a9=_0xc639[_0x357786];return _0x5925a9;};'use strict';var _=require(_0x9c63('0x0'));var util=require('util');var logger=require(_0x9c63('0x1'))(_0x9c63('0x2'));var moment=require(_0x9c63('0x3'));var BPromise=require(_0x9c63('0x4'));var rp=require(_0x9c63('0x5'));var fetch=require('node-fetch');var fs=require('fs');var path=require(_0x9c63('0x6'));var rimraf=require(_0x9c63('0x7'));var config=require('../../config/environment');var attributes=require('./whatsappMessage.attributes');module[_0x9c63('0x8')]=function(_0x5b8a20,_0x3e3a79){return _0x5b8a20[_0x9c63('0x9')](_0x9c63('0xa'),attributes,{'tableName':_0x9c63('0xb'),'paranoid':![],'indexes':[{'name':_0x9c63('0xc'),'fields':['messageId']},{'name':_0x9c63('0xd'),'fields':[_0x9c63('0xe')],'type':_0x9c63('0xf')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x53eef9,_0x50b617,_0x161f06){var _0x491aa5=_0x5b8a20[_0x9c63('0x10')];var _0x75bdd5=_0x53eef9['get']({'plain':!![]});if(_0x75bdd5[_0x9c63('0x11')]['toLowerCase']()==='in'||_0x75bdd5[_0x9c63('0x11')][_0x9c63('0x12')]()==='out'&&!_0x75bdd5['secret']&&!_['isNil'](_0x75bdd5[_0x9c63('0x13')])){_0x491aa5['WhatsappInteraction'][_0x9c63('0x14')]({'where':{'id':_0x75bdd5[_0x9c63('0x15')]}})['then'](function(_0x5b225b){if(_0x5b225b){_0x5b225b[_0x9c63('0x16')]({'lastMsgAt':_0x75bdd5[_0x9c63('0x17')],'lastMsgDirection':_0x75bdd5[_0x9c63('0x11')][_0x9c63('0x12')]()});}})[_0x9c63('0x18')](function(_0x58841c){console['error'](_0x58841c);});}if(_0x75bdd5[_0x9c63('0x11')]===_0x9c63('0x19')&&!_0x75bdd5['secret']){var _0x38bbd0;_0x491aa5[_0x9c63('0x1a')]['find']({'where':{'id':_0x75bdd5[_0x9c63('0x1b')]},'raw':!![]})[_0x9c63('0x1c')](function(_0x468ab0){_0x38bbd0=_0x468ab0;if(_0x38bbd0&&_0x38bbd0[_0x9c63('0x1d')]){switch(_0x38bbd0[_0x9c63('0x1d')]){case _0x9c63('0x1e'):var _0x4dbf11=require(_0x9c63('0x1e'));if(_0x38bbd0[_0x9c63('0x1f')]&&_0x38bbd0['authToken']&&_0x38bbd0[_0x9c63('0x20')]){var _0x5b5628=new _0x4dbf11(_0x38bbd0[_0x9c63('0x1f')],_0x38bbd0[_0x9c63('0x21')]);_0x5b5628[_0x9c63('0x22')][_0x9c63('0x23')]({'body':_0x75bdd5['body'],'to':'whatsapp:'+_0x75bdd5['phone'],'from':'whatsapp:'+_0x38bbd0[_0x9c63('0x20')],'statusCallback':_0x38bbd0[_0x9c63('0x24')]+_0x9c63('0x25')+_0x75bdd5['id']+'/status?token='+_0x38bbd0[_0x9c63('0x26')]})[_0x9c63('0x1c')](function(_0x3bf732){if(_0x3bf732[_0x9c63('0x27')]){return _0x53eef9[_0x9c63('0x16')]({'messageId':_0x3bf732[_0x9c63('0x27')]});}})[_0x9c63('0x18')](function(_0x4e4f2b){logger[_0x9c63('0x28')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x9c63('0x29'),_0x9c63('0x1e'),util['inspect'](_0x4e4f2b,{'showHidden':![],'depth':null}));});}else{logger[_0x9c63('0x28')](_0x9c63('0x2a'),'afterCreate','twilio',_0x9c63('0x2b'));}break;case _0x9c63('0x2c'):var _0x216ae9=_0x38bbd0['accountSid'];var _0x4ea6d7=_0x38bbd0['authToken'];var _0x543dc8=_0x38bbd0['baseUrl']+_0x9c63('0x2d')+_0x216ae9+_0x9c63('0x2e');var _0x2a983c={'to':[_0x75bdd5[_0x9c63('0x20')]],'message':{'type':_0x9c63('0x2f'),'text':_0x75bdd5['body']}};var _0x313614={'method':_0x9c63('0x30'),'uri':_0x543dc8,'headers':{'Authorization':_0x9c63('0x31')+_0x4ea6d7,'Content-Type':_0x9c63('0x32')},'body':_0x2a983c,'json':!![]};rp(_0x313614)[_0x9c63('0x1c')](function(_0x34a594){if(_0x34a594[_0x9c63('0x33')][0x0][_0x9c63('0x34')]){return _0x53eef9[_0x9c63('0x16')]({'messageId':_0x34a594['statuses'][0x0]['message_id']});}})[_0x9c63('0x18')](function(_0xd39ca2){logger['err']('WhatsappMessage,\x20%s',_0xd39ca2);});break;}}})['finally'](function(){_0x161f06();});}else{_0x161f06();}}},'charset':_0x9c63('0x35'),'collate':'utf8mb4_unicode_ci'});};