f4f0372e27612d268cc9478106aa24e553ff54f7
[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 _0x8c57=['get','toLowerCase','secret','WhatsappInteractionId','then','update','createdAt','catch','out','WhatsappAccount','find','twilio','accountSid','authToken','phone','create','whatsapp:','/api/whatsapp/messages/','token','sid','error','afterCreate','inspect','sinch','/whatsapp/v1/','/messages/','Bearer\x20','application/json','statuses','message_id','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','bluebird','node-fetch','path','../../config/environment','./whatsappMessage.attributes','define','WhatsappMessage','whatsapp_messages','messageId','body','models'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x8c57,0x1c7));var _0x78c5=function(_0x41fef3,_0x4c9eff){_0x41fef3=_0x41fef3-0x0;var _0x8ee292=_0x8c57[_0x41fef3];return _0x8ee292;};'use strict';var _=require(_0x78c5('0x0'));var util=require(_0x78c5('0x1'));var logger=require(_0x78c5('0x2'))(_0x78c5('0x3'));var moment=require('moment');var BPromise=require(_0x78c5('0x4'));var rp=require('request-promise');var fetch=require(_0x78c5('0x5'));var fs=require('fs');var path=require(_0x78c5('0x6'));var rimraf=require('rimraf');var config=require(_0x78c5('0x7'));var attributes=require(_0x78c5('0x8'));module['exports']=function(_0xb8beb,_0x4d0c3e){return _0xb8beb[_0x78c5('0x9')](_0x78c5('0xa'),attributes,{'tableName':_0x78c5('0xb'),'paranoid':![],'indexes':[{'name':'messageId','fields':[_0x78c5('0xc')]},{'name':'fti_whatsapp_messages','fields':[_0x78c5('0xd')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x29233c,_0x449a22,_0x50fe47){var _0x41e64a=_0xb8beb[_0x78c5('0xe')];var _0x424166=_0x29233c[_0x78c5('0xf')]({'plain':!![]});if(_0x424166['direction'][_0x78c5('0x10')]()==='in'||_0x424166['direction'][_0x78c5('0x10')]()==='out'&&!_0x424166[_0x78c5('0x11')]&&!_['isNil'](_0x424166['UserId'])){_0x41e64a['WhatsappInteraction']['findOne']({'where':{'id':_0x424166[_0x78c5('0x12')]}})[_0x78c5('0x13')](function(_0x24a84e){if(_0x24a84e){_0x24a84e[_0x78c5('0x14')]({'lastMsgAt':_0x424166[_0x78c5('0x15')],'lastMsgDirection':_0x424166['direction'][_0x78c5('0x10')]()});}})[_0x78c5('0x16')](function(_0x1de971){console['error'](_0x1de971);});}if(_0x424166['direction']===_0x78c5('0x17')&&!_0x424166[_0x78c5('0x11')]){var _0x119678;_0x41e64a[_0x78c5('0x18')][_0x78c5('0x19')]({'where':{'id':_0x424166['WhatsappAccountId']},'raw':!![]})[_0x78c5('0x13')](function(_0x6a3e35){_0x119678=_0x6a3e35;if(_0x119678&&_0x119678['type']){switch(_0x119678['type']){case _0x78c5('0x1a'):var _0x4b0e97=require('twilio');if(_0x119678[_0x78c5('0x1b')]&&_0x119678[_0x78c5('0x1c')]&&_0x119678[_0x78c5('0x1d')]){var _0x18d572=new _0x4b0e97(_0x119678[_0x78c5('0x1b')],_0x119678[_0x78c5('0x1c')]);_0x18d572['messages'][_0x78c5('0x1e')]({'body':_0x424166['body'],'to':_0x78c5('0x1f')+_0x424166[_0x78c5('0x1d')],'from':_0x78c5('0x1f')+_0x119678['phone'],'statusCallback':_0x119678['remote']+_0x78c5('0x20')+_0x424166['id']+'/status?token='+_0x119678[_0x78c5('0x21')]})[_0x78c5('0x13')](function(_0x405460){if(_0x405460[_0x78c5('0x22')]){return _0x29233c[_0x78c5('0x14')]({'messageId':_0x405460[_0x78c5('0x22')]});}})[_0x78c5('0x16')](function(_0x8d000b){logger[_0x78c5('0x23')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x78c5('0x24'),'twilio',util[_0x78c5('0x25')](_0x8d000b,{'showHidden':![],'depth':null}));});}else{logger['error']('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x78c5('0x24'),_0x78c5('0x1a'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0x78c5('0x26'):var _0x1ace23=_0x119678[_0x78c5('0x1b')];var _0x4139e9=_0x119678[_0x78c5('0x1c')];var _0x229508=_0x119678['baseUrl']+_0x78c5('0x27')+_0x1ace23+_0x78c5('0x28');var _0x6f4230={'to':[_0x424166[_0x78c5('0x1d')]],'message':{'type':'text','text':_0x424166['body']}};var _0x363381={'method':'POST','uri':_0x229508,'headers':{'Authorization':_0x78c5('0x29')+_0x4139e9,'Content-Type':_0x78c5('0x2a')},'body':_0x6f4230,'json':!![]};rp(_0x363381)[_0x78c5('0x13')](function(_0x2c9e1c){if(_0x2c9e1c[_0x78c5('0x2b')][0x0]['message_id']){return _0x29233c[_0x78c5('0x14')]({'messageId':_0x2c9e1c[_0x78c5('0x2b')][0x0][_0x78c5('0x2c')]});}})[_0x78c5('0x16')](function(_0x2d9d3a){logger['err']('WhatsappMessage,\x20%s',_0x2d9d3a);});break;}}})['finally'](function(){_0x50fe47();});}else{_0x50fe47();}}},'charset':_0x78c5('0x2d'),'collate':_0x78c5('0x2e')});};