fc603d797dfcb398af62c4a667781b0663a30d90
[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 _0x12cd=['catch','message','&f=','&entities=contact','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','endUserId','Contact\x20found\x20mobile_number:','Contact\x20created:','POST','/api/contacts','YYYY-MM-DDTHH:mm:ss','contact','Creating\x20new\x20task','/api/tasks','getString','Descriptions','add','ticketId','task','Task\x20created:','/contacts/','user:%s','emit','trigger:browser:url','apiKey','stripTrailingSlash','serverUrl','remoteUri','destcalleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','Recording\x20is\x20enabled!','recordingURL','recordingFormat','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','util','moment','bluebird','ioredis','./util','../../../../config/environment','freshsales','defaults','socket.io-emitter','redis','GET','/api/selector/owners','info','Getting\x20admin\x20information','then','users','length','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','error','toUpperCase','headers','Getting\x20user\x20list','Getting\x20user\x20with\x20email','agentEmail','userEmail','email','userId','Admin\x20selected'];(function(_0x7a21da,_0x2a6cdf){var _0x44af7d=function(_0xbbc520){while(--_0xbbc520){_0x7a21da['push'](_0x7a21da['shift']());}};_0x44af7d(++_0x2a6cdf);}(_0x12cd,0x1c5));var _0xd12c=function(_0x66abf5,_0xa2ca54){_0x66abf5=_0x66abf5-0x0;var _0x431579=_0x12cd[_0x66abf5];return _0x431579;};'use strict';var _=require(_0xd12c('0x0'));var rp=require(_0xd12c('0x1'));var md5=require('md5');var util=require(_0xd12c('0x2'));var moment=require(_0xd12c('0x3'));var Promise=require(_0xd12c('0x4'));var Redis=require(_0xd12c('0x5'));var intUtil=require(_0xd12c('0x6'));var config=require(_0xd12c('0x7'));var logger=require('../../../../config/logger')(_0xd12c('0x8'));config['redis']=_[_0xd12c('0x9')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xd12c('0xa'))(new Redis(config[_0xd12c('0xb')]));function getAdminId(_0x55592e,_0x43cff1,_0x31f5f5,_0x6ffe1){return new Promise(function(_0x51e401,_0x4223e6){var _0x5abad0=![];var _0x249c44={'method':_0xd12c('0xc'),'uri':_0x6ffe1+_0xd12c('0xd'),'json':!![]};_0x249c44['headers']=_0x31f5f5;logger[_0xd12c('0xe')](_0xd12c('0xf'));return rp(_0x249c44)[_0xd12c('0x10')](function(_0x6004ed){if(_0x6004ed){var _0x103af3=_0x6004ed[_0xd12c('0x11')];var _0x3b324f=null;for(_0x3b324f=0x0;_0x3b324f<_0x103af3[_0xd12c('0x12')];_0x3b324f++){if(_0x103af3[_0x3b324f]['email']===_0x55592e[_0xd12c('0x13')]){_0x55592e[_0xd12c('0x14')]=_0x103af3[_0x3b324f]['id'];_0x5abad0=!![];}}if(_0x5abad0){logger['info'](_0xd12c('0x15'),_0x55592e[_0xd12c('0x14')]);_0x51e401(_0x55592e);}else{_0x4223e6({'statusCode':0x194,'message':_0xd12c('0x16')});}}else{_0x4223e6({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})['catch'](function(_0x1cb0dc){logger[_0xd12c('0x17')]('['+[_0x43cff1[_0xd12c('0x18')]()]+']',_0x1cb0dc['message']);_0x4223e6(_0x1cb0dc);});});}function getUser(_0x295f6,_0x252cd6,_0x4f75c4){return function(_0x206ab4){return new Promise(function(_0x4f0c1f,_0x2629ae){var _0x2a4073={'method':_0xd12c('0xc'),'uri':_0x4f75c4+_0xd12c('0xd'),'json':!![]};_0x2a4073[_0xd12c('0x19')]=_0x252cd6;logger[_0xd12c('0xe')](_0xd12c('0x1a'));return rp(_0x2a4073)[_0xd12c('0x10')](function(_0x1acbc2){if(_0x1acbc2){var _0xad48b1=_0x1acbc2['users'];var _0x235087=![];var _0x3d49ac=null;if(_0x206ab4['agentEmail']!==null){logger[_0xd12c('0xe')](_0xd12c('0x1b'),_0x206ab4[_0xd12c('0x1c')]);_0x206ab4[_0xd12c('0x1d')]=_0x206ab4[_0xd12c('0x1c')];for(_0x3d49ac=0x0;_0x3d49ac<_0xad48b1[_0xd12c('0x12')];_0x3d49ac++){if(_0xad48b1[_0x3d49ac][_0xd12c('0x1e')]===_0x206ab4[_0xd12c('0x1c')]){_0x235087=!![];_0x206ab4[_0xd12c('0x1f')]=_0xad48b1[_0x3d49ac]['id'];logger['info']('User\x20found:',_0x206ab4[_0xd12c('0x1f')]);}}}if(!_0x235087){logger[_0xd12c('0xe')](_0xd12c('0x20'));_0x206ab4[_0xd12c('0x1d')]=_0x206ab4[_0xd12c('0x13')];_0x206ab4[_0xd12c('0x1f')]=_0x206ab4[_0xd12c('0x14')];_0x235087=!![];}if(_0x235087){_0x4f0c1f(_0x206ab4);}else{_0x2629ae({'statusCode':0x194,'message':_0xd12c('0x16')});}}else{_0x2629ae({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xd12c('0x21')](function(_0x17c897){logger[_0xd12c('0x17')]('['+[_0x295f6[_0xd12c('0x18')]()]+']',_0x17c897[_0xd12c('0x22')]);_0x2629ae(_0x17c897);});});};}function searchContact(_0x1fa54b,_0xa30b07,_0x502ca3,_0x5e8875){return new Promise(function(_0x1e8b82,_0x189d9d){var _0x49d2d6={'method':'GET','headers':_0xa30b07,'uri':_0x1fa54b+'/api/lookup?q='+_0x5e8875+_0xd12c('0x23')+_0x502ca3+_0xd12c('0x24'),'json':!![]};rp(_0x49d2d6)[_0xd12c('0x10')](function(_0x4c45eb){var _0x112465=_['find'](_0x4c45eb[_0xd12c('0x25')]['contacts'],[_0x502ca3,_0x5e8875]);_0x1e8b82(_0x112465);})[_0xd12c('0x21')](function(_0x45a0c5){_0x189d9d(_0x45a0c5);});});}function getEndUser(_0x3c5644,_0x5a8223,_0x188b63){return function(_0x2ca725){return new Promise(function(_0x5f151b,_0x518926){logger[_0xd12c('0xe')](util[_0xd12c('0x26')](_0xd12c('0x27'),_0x2ca725[_0xd12c('0x28')]));searchContact(_0x188b63,_0x5a8223,_0xd12c('0x29'),_0x2ca725[_0xd12c('0x28')])[_0xd12c('0x10')](function(_0x391da0){if(_0x391da0){_0x2ca725[_0xd12c('0x2a')]=_0x391da0['id'];logger[_0xd12c('0xe')](_0xd12c('0x2b'),_0x2ca725[_0xd12c('0x2a')]);return _0x5f151b(_0x2ca725);}searchContact(_0x188b63,_0x5a8223,'work_number',_0x2ca725['contactNumber'])[_0xd12c('0x10')](function(_0xa3bccc){if(_0xa3bccc){_0x2ca725[_0xd12c('0x2a')]=_0xa3bccc['id'];logger[_0xd12c('0xe')]('Contact\x20found\x20work_number:',_0x2ca725[_0xd12c('0x2a')]);return _0x5f151b(_0x2ca725);}createEndUser(_0x2ca725,_0x3c5644,_0x5a8223,_0x188b63)[_0xd12c('0x10')](function(_0x4bbb4b){logger['info'](_0xd12c('0x2c'),_0x4bbb4b[_0xd12c('0x2a')]);return _0x5f151b(_0x4bbb4b);});});})['catch'](function(_0x283333){_0x518926(_0x283333);});});};}function createEndUser(_0x4a6c72,_0x3fc360,_0x43c9be,_0x289432){return new Promise(function(_0x24c87f,_0x513d6f){var _0x5d9071=moment();var _0x267e10={'method':_0xd12c('0x2d'),'uri':_0x289432+_0xd12c('0x2e'),'body':{'contact':{'last_name':_0x4a6c72['contactNumber'],'work_number':_0x4a6c72[_0xd12c('0x28')],'mobile_number':_0x4a6c72[_0xd12c('0x28')],'owner_id':_0x4a6c72[_0xd12c('0x1f')],'created_at':_0x5d9071[_0xd12c('0x26')](_0xd12c('0x2f'))}},'json':!![]};_0x267e10[_0xd12c('0x19')]=_0x43c9be;logger['info']('Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact');return rp(_0x267e10)[_0xd12c('0x10')](function(_0x4dacf6){_0x4a6c72[_0xd12c('0x2a')]=_0x4dacf6[_0xd12c('0x30')]['id'];_0x24c87f(_0x4a6c72);})[_0xd12c('0x21')](function(_0x110096){logger['error']('['+[_0x3fc360['toUpperCase']()]+']',_0x110096[_0xd12c('0x22')]);_0x513d6f(_0x110096[_0xd12c('0x22')]);});});}function getTicket(_0x452ca8,_0x5859fa,_0x36a5f0,_0x5c504c,_0x4279bf){return function(_0x446c04){logger[_0xd12c('0xe')](_0xd12c('0x31'));return new Promise(function(_0x5189d5,_0x26825a){var _0x1126ca=moment();var _0x281d75={'method':'POST','uri':_0x36a5f0+_0xd12c('0x32'),'body':{'title':intUtil[_0xd12c('0x33')](_0x5c504c['Subjects'],_0x4279bf,'\x20'),'description':intUtil[_0xd12c('0x33')](_0x5c504c[_0xd12c('0x34')],_0x4279bf,'\x0a'),'owner_id':_0x446c04[_0xd12c('0x1f')],'creater_id':_0x446c04['adminId'],'targetable_id':_0x446c04[_0xd12c('0x2a')],'targetable_type':'Contact','created_at':_0x1126ca['format'](_0xd12c('0x2f')),'due_date':_0x1126ca[_0xd12c('0x35')](0x1e,'m')['format'](_0xd12c('0x2f'))},'json':!![]};_0x281d75[_0xd12c('0x19')]=_0x5859fa;return rp(_0x281d75)[_0xd12c('0x10')](function(_0x4d9b6e){_0x446c04[_0xd12c('0x36')]=_0x4d9b6e[_0xd12c('0x37')]['id'];logger[_0xd12c('0xe')](_0xd12c('0x38'),_0x446c04[_0xd12c('0x36')]);_0x5189d5(_0x446c04);})[_0xd12c('0x21')](function(_0x432e8f){logger[_0xd12c('0x17')]('['+[_0x452ca8[_0xd12c('0x18')]()]+']',_0x432e8f['message']);_0x26825a(_0x432e8f['message']);});});};}function emit(_0x37d690,_0x5d8ffd,_0x4b581f){var _0x37cc3e={'uri':_0x37d690+_0xd12c('0x39')+_0x4b581f};io['to'](util[_0xd12c('0x26')](_0xd12c('0x3a'),_0x5d8ffd))[_0xd12c('0x3b')](_0xd12c('0x3c'),_0x37cc3e);}exports['cs']=function(_0x17df93,_0x402241,_0x10bbdd,_0x5b917e,_0x522895,_0x27a278,_0x3dff2f,_0x447021){var _0x2ee12f={};var _0x2b4858={'Authorization':'Token\x20token='+_0x27a278[_0xd12c('0x3d')]};_0x27a278['remoteUri']=intUtil[_0xd12c('0x3e')](_0x27a278['remoteUri']);_0x27a278[_0xd12c('0x3f')]=intUtil['stripTrailingSlash'](_0x27a278['serverUrl']);var _0x5df048=_0x27a278[_0xd12c('0x40')];_0x2ee12f[_0xd12c('0x13')]=_0x27a278['username'];_0x2ee12f[_0xd12c('0x28')]=_0x447021['toLowerCase']()==='outbound'?_0x402241[_0xd12c('0x41')]:_0x402241['calleridnum'];_0x2ee12f[_0xd12c('0x42')]=_0x447021===_0xd12c('0x43')||_0x447021===_0xd12c('0x44')?_0xd12c('0x43'):'outbound';if(_0x5b917e){_0x2ee12f[_0xd12c('0x1c')]=_0x5b917e[_0xd12c('0x1e')];}var _0x4fc280=util[_0xd12c('0x26')](_0xd12c('0x45'),_0x27a278['serverUrl'],_0x402241[_0xd12c('0x46')],md5(_0x402241[_0xd12c('0x46')]));if(_0x522895&&_0x522895[_0xd12c('0x47')]){logger[_0xd12c('0xe')]('[QUEUE]',_0xd12c('0x48'));_0x402241[_0xd12c('0x49')]=_0x4fc280;}else if(_0x3dff2f&&_0x3dff2f['recordingFormat']&&_0x3dff2f[_0xd12c('0x4a')]!=='none'){logger['info'](_0xd12c('0x4b'),_0xd12c('0x48'));_0x402241[_0xd12c('0x49')]=_0x4fc280;}else{_0x402241['recordingURL']='';}return getAdminId(_0x2ee12f,_0x447021,_0x2b4858,_0x5df048)['then'](getUser(_0x447021,_0x2b4858,_0x5df048))[_0xd12c('0x10')](getEndUser(_0x447021,_0x2b4858,_0x5df048))[_0xd12c('0x10')](getTicket(_0x447021,_0x2b4858,_0x5df048,_0x10bbdd,_0x402241))[_0xd12c('0x10')](function(_0x386463){logger['info'](util['format'](_0xd12c('0x4c'),_0x386463[_0xd12c('0x36')]));if(_0x447021!==_0xd12c('0x44')){logger[_0xd12c('0xe')]('['+[_0x447021[_0xd12c('0x18')]()]+']',_0xd12c('0x4d'));emit(_0x5df048,_0x5b917e[_0xd12c('0x4e')],_0x386463[_0xd12c('0x2a')]);}})[_0xd12c('0x21')](function(_0x1eed97){logger[_0xd12c('0x17')]('['+[_0x447021[_0xd12c('0x18')]()]+_0xd12c('0x4f'),util[_0xd12c('0x50')](_0x1eed97,{'showHidden':!![],'depth':null}));});};