Built motion from commit 6a0adb95.|2.6.31
[motion2.git] / server / services / ami / trigger / integration / freshsales.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 _0xb1dc=['catch','error','toUpperCase','message','GET','agentEmail','Getting\x20user\x20with\x20email','userEmail','userId','User\x20found:','Admin\x20selected','Requested\x20Resource\x20not\x20Found','/api/lookup?q=','&f=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','Contact\x20found\x20mobile_number:','endUserId','work_number','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','/api/tasks','Subjects','getString','Contact','YYYY-MM-DDTHH:mm:ss','add','ticketId','task','Task\x20created:','/contacts/','user:%s','emit','apiKey','remoteUri','stripTrailingSlash','toLowerCase','outbound','destcalleridnum','callDirection','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','lodash','request-promise','md5','util','moment','ioredis','./util','../../../../config/environment','freshsales','redis','defaults','socket.io-emitter','/api/selector/owners','headers','info','Getting\x20admin\x20information','then','email','adminEmail','adminId','Admin\x20found:'];(function(_0x24f443,_0x51e332){var _0x17ce79=function(_0x45313e){while(--_0x45313e){_0x24f443['push'](_0x24f443['shift']());}};_0x17ce79(++_0x51e332);}(_0xb1dc,0x18f));var _0xcb1d=function(_0x533e4e,_0x4eba54){_0x533e4e=_0x533e4e-0x0;var _0x1f14bb=_0xb1dc[_0x533e4e];return _0x1f14bb;};'use strict';var _=require(_0xcb1d('0x0'));var rp=require(_0xcb1d('0x1'));var md5=require(_0xcb1d('0x2'));var util=require(_0xcb1d('0x3'));var moment=require(_0xcb1d('0x4'));var Promise=require('bluebird');var Redis=require(_0xcb1d('0x5'));var intUtil=require(_0xcb1d('0x6'));var config=require(_0xcb1d('0x7'));var logger=require('../../../../config/logger')(_0xcb1d('0x8'));config[_0xcb1d('0x9')]=_[_0xcb1d('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xcb1d('0xb'))(new Redis(config[_0xcb1d('0x9')]));function getAdminId(_0x407d8b,_0x2434de,_0x3f9f5a,_0x18a0d8){return new Promise(function(_0x3abfb8,_0x30ed40){var _0x3784f6=![];var _0x542c01={'method':'GET','uri':_0x18a0d8+_0xcb1d('0xc'),'json':!![]};_0x542c01[_0xcb1d('0xd')]=_0x3f9f5a;logger[_0xcb1d('0xe')](_0xcb1d('0xf'));return rp(_0x542c01)[_0xcb1d('0x10')](function(_0x8dbfeb){if(_0x8dbfeb){var _0x24ec9a=_0x8dbfeb['users'];var _0x4175fb=null;for(_0x4175fb=0x0;_0x4175fb<_0x24ec9a['length'];_0x4175fb++){if(_0x24ec9a[_0x4175fb][_0xcb1d('0x11')]===_0x407d8b[_0xcb1d('0x12')]){_0x407d8b[_0xcb1d('0x13')]=_0x24ec9a[_0x4175fb]['id'];_0x3784f6=!![];}}if(_0x3784f6){logger['info'](_0xcb1d('0x14'),_0x407d8b['adminId']);_0x3abfb8(_0x407d8b);}else{_0x30ed40({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x30ed40({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xcb1d('0x15')](function(_0x4acc45){logger[_0xcb1d('0x16')]('['+[_0x2434de[_0xcb1d('0x17')]()]+']',_0x4acc45[_0xcb1d('0x18')]);_0x30ed40(_0x4acc45);});});}function getUser(_0x4f5103,_0x34d177,_0x3232e0){return function(_0x5ad427){return new Promise(function(_0x11858b,_0x5a6bc7){var _0xac9692={'method':_0xcb1d('0x19'),'uri':_0x3232e0+_0xcb1d('0xc'),'json':!![]};_0xac9692[_0xcb1d('0xd')]=_0x34d177;logger[_0xcb1d('0xe')]('Getting\x20user\x20list');return rp(_0xac9692)[_0xcb1d('0x10')](function(_0x22da36){if(_0x22da36){var _0x883447=_0x22da36['users'];var _0x5b8a4e=![];var _0x40ace1=null;if(_0x5ad427[_0xcb1d('0x1a')]!==null){logger[_0xcb1d('0xe')](_0xcb1d('0x1b'),_0x5ad427[_0xcb1d('0x1a')]);_0x5ad427[_0xcb1d('0x1c')]=_0x5ad427[_0xcb1d('0x1a')];for(_0x40ace1=0x0;_0x40ace1<_0x883447['length'];_0x40ace1++){if(_0x883447[_0x40ace1]['email']===_0x5ad427[_0xcb1d('0x1a')]){_0x5b8a4e=!![];_0x5ad427[_0xcb1d('0x1d')]=_0x883447[_0x40ace1]['id'];logger[_0xcb1d('0xe')](_0xcb1d('0x1e'),_0x5ad427[_0xcb1d('0x1d')]);}}}if(!_0x5b8a4e){logger['info'](_0xcb1d('0x1f'));_0x5ad427['userEmail']=_0x5ad427[_0xcb1d('0x12')];_0x5ad427['userId']=_0x5ad427[_0xcb1d('0x13')];_0x5b8a4e=!![];}if(_0x5b8a4e){_0x11858b(_0x5ad427);}else{_0x5a6bc7({'statusCode':0x194,'message':_0xcb1d('0x20')});}}else{_0x5a6bc7({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xcb1d('0x15')](function(_0xdc453a){logger['error']('['+[_0x4f5103['toUpperCase']()]+']',_0xdc453a[_0xcb1d('0x18')]);_0x5a6bc7(_0xdc453a);});});};}function searchContact(_0x28c89a,_0x3c73be,_0x3822c9,_0x5a30dd){return new Promise(function(_0x5c26c1,_0x1d9a5e){var _0x3afa69={'method':_0xcb1d('0x19'),'headers':_0x3c73be,'uri':_0x28c89a+_0xcb1d('0x21')+_0x5a30dd+_0xcb1d('0x22')+_0x3822c9+_0xcb1d('0x23'),'json':!![]};rp(_0x3afa69)[_0xcb1d('0x10')](function(_0x38d6f0){var _0xfb7e3b=_[_0xcb1d('0x24')](_0x38d6f0[_0xcb1d('0x25')][_0xcb1d('0x25')],[_0x3822c9,_0x5a30dd]);_0x5c26c1(_0xfb7e3b);})[_0xcb1d('0x15')](function(_0x17b985){_0x1d9a5e(_0x17b985);});});}function getEndUser(_0xc9cac7,_0x1b6257,_0xb26259){return function(_0x5d8911){return new Promise(function(_0x187947,_0xa55892){logger['info'](util[_0xcb1d('0x26')](_0xcb1d('0x27'),_0x5d8911[_0xcb1d('0x28')]));searchContact(_0xb26259,_0x1b6257,_0xcb1d('0x29'),_0x5d8911[_0xcb1d('0x28')])['then'](function(_0x39b514){if(_0x39b514){_0x5d8911['endUserId']=_0x39b514['id'];logger[_0xcb1d('0xe')](_0xcb1d('0x2a'),_0x5d8911[_0xcb1d('0x2b')]);return _0x187947(_0x5d8911);}searchContact(_0xb26259,_0x1b6257,_0xcb1d('0x2c'),_0x5d8911[_0xcb1d('0x28')])[_0xcb1d('0x10')](function(_0x1e63bb){if(_0x1e63bb){_0x5d8911['endUserId']=_0x1e63bb['id'];logger[_0xcb1d('0xe')](_0xcb1d('0x2d'),_0x5d8911[_0xcb1d('0x2b')]);return _0x187947(_0x5d8911);}createEndUser(_0x5d8911,_0xc9cac7,_0x1b6257,_0xb26259)['then'](function(_0x3520a9){logger[_0xcb1d('0xe')](_0xcb1d('0x2e'),_0x3520a9[_0xcb1d('0x2b')]);return _0x187947(_0x3520a9);});});})[_0xcb1d('0x15')](function(_0x716bae){_0xa55892(_0x716bae);});});};}function createEndUser(_0xeb4c7d,_0x4e001d,_0xe281fa,_0x45c86e){return new Promise(function(_0x294172,_0x3403a7){var _0x36aa2c=moment();var _0x5b85c3={'method':_0xcb1d('0x2f'),'uri':_0x45c86e+_0xcb1d('0x30'),'body':{'contact':{'last_name':_0xeb4c7d[_0xcb1d('0x28')],'work_number':_0xeb4c7d[_0xcb1d('0x28')],'mobile_number':_0xeb4c7d[_0xcb1d('0x28')],'owner_id':_0xeb4c7d['userId'],'created_at':_0x36aa2c[_0xcb1d('0x26')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x5b85c3['headers']=_0xe281fa;logger[_0xcb1d('0xe')](_0xcb1d('0x31'));return rp(_0x5b85c3)['then'](function(_0xec8ccf){_0xeb4c7d[_0xcb1d('0x2b')]=_0xec8ccf[_0xcb1d('0x32')]['id'];_0x294172(_0xeb4c7d);})['catch'](function(_0x3fa6a3){logger['error']('['+[_0x4e001d['toUpperCase']()]+']',_0x3fa6a3['message']);_0x3403a7(_0x3fa6a3[_0xcb1d('0x18')]);});});}function getTicket(_0x3f5b0f,_0x2fc016,_0x2d5cea,_0x31fa91,_0x5579cc){return function(_0x28cf77){logger[_0xcb1d('0xe')](_0xcb1d('0x33'));return new Promise(function(_0x3e3a24,_0x51c4fd){var _0x55a8b8=moment();var _0x351aaa={'method':'POST','uri':_0x2d5cea+_0xcb1d('0x34'),'body':{'title':intUtil['getString'](_0x31fa91[_0xcb1d('0x35')],_0x5579cc,'\x20'),'description':intUtil[_0xcb1d('0x36')](_0x31fa91['Descriptions'],_0x5579cc,'\x0a'),'owner_id':_0x28cf77[_0xcb1d('0x1d')],'creater_id':_0x28cf77[_0xcb1d('0x13')],'targetable_id':_0x28cf77[_0xcb1d('0x2b')],'targetable_type':_0xcb1d('0x37'),'created_at':_0x55a8b8[_0xcb1d('0x26')](_0xcb1d('0x38')),'due_date':_0x55a8b8[_0xcb1d('0x39')](0x1e,'m')[_0xcb1d('0x26')](_0xcb1d('0x38'))},'json':!![]};_0x351aaa[_0xcb1d('0xd')]=_0x2fc016;return rp(_0x351aaa)['then'](function(_0x391661){_0x28cf77[_0xcb1d('0x3a')]=_0x391661[_0xcb1d('0x3b')]['id'];logger['info'](_0xcb1d('0x3c'),_0x28cf77[_0xcb1d('0x3a')]);_0x3e3a24(_0x28cf77);})[_0xcb1d('0x15')](function(_0x4ea70e){logger[_0xcb1d('0x16')]('['+[_0x3f5b0f['toUpperCase']()]+']',_0x4ea70e[_0xcb1d('0x18')]);_0x51c4fd(_0x4ea70e['message']);});});};}function emit(_0x3f6c85,_0x5b5608,_0x4b33f8){var _0x55f3d3={'uri':_0x3f6c85+_0xcb1d('0x3d')+_0x4b33f8};io['to'](util[_0xcb1d('0x26')](_0xcb1d('0x3e'),_0x5b5608))[_0xcb1d('0x3f')]('trigger:browser:url',_0x55f3d3);}exports['cs']=function(_0x38dbfc,_0x2deaad,_0x35e4b7,_0x2ca309,_0x390499,_0x3dc41f,_0x497ae2,_0x3981a8){var _0x467bd9={};var _0x1f2fb4={'Authorization':'Token\x20token='+_0x3dc41f[_0xcb1d('0x40')]};_0x3dc41f[_0xcb1d('0x41')]=intUtil['stripTrailingSlash'](_0x3dc41f[_0xcb1d('0x41')]);_0x3dc41f['serverUrl']=intUtil[_0xcb1d('0x42')](_0x3dc41f['serverUrl']);var _0x3dd685=_0x3dc41f[_0xcb1d('0x41')];_0x467bd9[_0xcb1d('0x12')]=_0x3dc41f['username'];_0x467bd9['contactNumber']=_0x3981a8[_0xcb1d('0x43')]()===_0xcb1d('0x44')?_0x2deaad[_0xcb1d('0x45')]:_0x2deaad['calleridnum'];_0x467bd9[_0xcb1d('0x46')]=_0x3981a8===_0xcb1d('0x47')||_0x3981a8==='unmanaged'?_0xcb1d('0x47'):'outbound';if(_0x2ca309){_0x467bd9['agentEmail']=_0x2ca309[_0xcb1d('0x11')];}var _0x1a71be=util[_0xcb1d('0x26')](_0xcb1d('0x48'),_0x3dc41f[_0xcb1d('0x49')],_0x2deaad[_0xcb1d('0x4a')],md5(_0x2deaad[_0xcb1d('0x4a')]));if(_0x390499&&_0x390499['monitor_format']){logger[_0xcb1d('0xe')](_0xcb1d('0x4b'),_0xcb1d('0x4c'));_0x2deaad[_0xcb1d('0x4d')]=_0x1a71be;}else if(_0x497ae2&&_0x497ae2['recordingFormat']&&_0x497ae2[_0xcb1d('0x4e')]!==_0xcb1d('0x4f')){logger[_0xcb1d('0xe')]('[OUTBOUND]',_0xcb1d('0x4c'));_0x2deaad[_0xcb1d('0x4d')]=_0x1a71be;}else{_0x2deaad['recordingURL']='';}return getAdminId(_0x467bd9,_0x3981a8,_0x1f2fb4,_0x3dd685)[_0xcb1d('0x10')](getUser(_0x3981a8,_0x1f2fb4,_0x3dd685))[_0xcb1d('0x10')](getEndUser(_0x3981a8,_0x1f2fb4,_0x3dd685))[_0xcb1d('0x10')](getTicket(_0x3981a8,_0x1f2fb4,_0x3dd685,_0x35e4b7,_0x2deaad))[_0xcb1d('0x10')](function(_0x1fb39d){logger[_0xcb1d('0xe')](util[_0xcb1d('0x26')](_0xcb1d('0x50'),_0x1fb39d['ticketId']));if(_0x3981a8!=='unmanaged'){logger['info']('['+[_0x3981a8['toUpperCase']()]+']',_0xcb1d('0x51'));emit(_0x3dd685,_0x2ca309[_0xcb1d('0x52')],_0x1fb39d['endUserId']);}})[_0xcb1d('0x15')](function(_0x33a1d0){logger['error']('['+[_0x3981a8[_0xcb1d('0x17')]()]+_0xcb1d('0x53'),util['inspect'](_0x33a1d0,{'showHidden':!![],'depth':null}));});};