0662583ffc5a847eafc0185ccd40f11510d6b49c
[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 _0xecd8=['bluebird','request-promise','path','define','WhatsappMessage','messageId','fti_whatsapp_messages','FULLTEXT','models','toLowerCase','UserId','WhatsappInteraction','WhatsappInteractionId','then','update','createdAt','catch','direction','out','WhatsappAccount','type','twilio','authToken','phone','accountSid','messages','create','body','/status?token=','sid','error','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','finally','lodash','../../config/logger','api','moment'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0xecd8,0x6e));var _0x8ecd=function(_0x228c6d,_0x5d55b4){_0x228c6d=_0x228c6d-0x0;var _0x1385fd=_0xecd8[_0x228c6d];return _0x1385fd;};'use strict';var _=require(_0x8ecd('0x0'));var util=require('util');var logger=require(_0x8ecd('0x1'))(_0x8ecd('0x2'));var moment=require(_0x8ecd('0x3'));var BPromise=require(_0x8ecd('0x4'));var rp=require(_0x8ecd('0x5'));var fs=require('fs');var path=require(_0x8ecd('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./whatsappMessage.attributes');module['exports']=function(_0x2f993e,_0x4a866e){return _0x2f993e[_0x8ecd('0x7')](_0x8ecd('0x8'),attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0x8ecd('0x9'),'fields':[_0x8ecd('0x9')]},{'name':_0x8ecd('0xa'),'fields':['body'],'type':_0x8ecd('0xb')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4188b6,_0x3dda20,_0x238237){var _0x1fbbaf=_0x2f993e[_0x8ecd('0xc')];var _0x22aaa4=_0x4188b6['get']({'plain':!![]});if(_0x22aaa4['direction'][_0x8ecd('0xd')]()==='in'||_0x22aaa4['direction']['toLowerCase']()==='out'&&!_0x22aaa4['secret']&&!_['isNil'](_0x22aaa4[_0x8ecd('0xe')])){_0x1fbbaf[_0x8ecd('0xf')]['findOne']({'where':{'id':_0x22aaa4[_0x8ecd('0x10')]}})[_0x8ecd('0x11')](function(_0x2da8b0){if(_0x2da8b0){_0x2da8b0[_0x8ecd('0x12')]({'lastMsgAt':_0x22aaa4[_0x8ecd('0x13')],'lastMsgDirection':_0x22aaa4['direction'][_0x8ecd('0xd')]()});}})[_0x8ecd('0x14')](function(_0x339f38){console['error'](_0x339f38);});}if(_0x22aaa4[_0x8ecd('0x15')]===_0x8ecd('0x16')&&!_0x22aaa4['secret']){var _0x8c8207;_0x1fbbaf[_0x8ecd('0x17')]['find']({'where':{'id':_0x22aaa4['WhatsappAccountId']},'raw':!![]})[_0x8ecd('0x11')](function(_0x4524d2){_0x8c8207=_0x4524d2;if(_0x8c8207&&_0x8c8207[_0x8ecd('0x18')]){switch(_0x8c8207[_0x8ecd('0x18')]){case _0x8ecd('0x19'):var _0xde580a=require(_0x8ecd('0x19'));if(_0x8c8207['accountSid']&&_0x8c8207[_0x8ecd('0x1a')]&&_0x8c8207[_0x8ecd('0x1b')]){var _0x16e36a=new _0xde580a(_0x8c8207[_0x8ecd('0x1c')],_0x8c8207[_0x8ecd('0x1a')]);_0x16e36a[_0x8ecd('0x1d')][_0x8ecd('0x1e')]({'body':_0x22aaa4[_0x8ecd('0x1f')],'to':'whatsapp:'+_0x22aaa4[_0x8ecd('0x1b')],'from':'whatsapp:'+_0x8c8207[_0x8ecd('0x1b')],'statusCallback':_0x8c8207['remote']+'/api/whatsapp/messages/'+_0x22aaa4['id']+_0x8ecd('0x20')+_0x8c8207['token']})[_0x8ecd('0x11')](function(_0x220329){if(_0x220329[_0x8ecd('0x21')]){return _0x4188b6['update']({'messageId':_0x220329[_0x8ecd('0x21')]});}})['catch'](function(_0x3cfd8d){logger[_0x8ecd('0x22')](_0x8ecd('0x23'),'afterCreate',_0x8ecd('0x19'),util['inspect'](_0x3cfd8d,{'showHidden':![],'depth':null}));});}else{logger[_0x8ecd('0x22')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x8ecd('0x24'),_0x8ecd('0x19'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;}}})[_0x8ecd('0x25')](function(){_0x238237();});}else{_0x238237();}}},'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};