Built motion from commit (unavailable).|2.5.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 _0x1cb9=['monitor_format','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','[OUTBOUND]','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','md5','util','moment','bluebird','./util','../../../../config/environment','freshsales','redis','defaults','localhost','socket.io-emitter','GET','/api/selector/owners','headers','info','Getting\x20admin\x20information','then','users','length','email','adminEmail','adminId','Requested\x20Resource\x20not\x20Found','error','toUpperCase','Getting\x20user\x20list','Getting\x20user\x20with\x20email','agentEmail','userEmail','User\x20found:','userId','Admin\x20selected','catch','message','&f=','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20found\x20work_number:','Contact\x20created:','/api/contacts','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','POST','/api/tasks','getString','add','ticketId','task','Task\x20created:','/contacts/','user:%s','trigger:browser:url','stripTrailingSlash','remoteUri','serverUrl','username','toLowerCase','callDirection','unmanaged','outbound','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x1cb9,0x14e));var _0x91cb=function(_0x481395,_0x336299){_0x481395=_0x481395-0x0;var _0x34e08a=_0x1cb9[_0x481395];return _0x34e08a;};'use strict';var _=require(_0x91cb('0x0'));var rp=require('request-promise');var md5=require(_0x91cb('0x1'));var util=require(_0x91cb('0x2'));var moment=require(_0x91cb('0x3'));var Promise=require(_0x91cb('0x4'));var Redis=require('ioredis');var intUtil=require(_0x91cb('0x5'));var config=require(_0x91cb('0x6'));var logger=require('../../../../config/logger')(_0x91cb('0x7'));config[_0x91cb('0x8')]=_[_0x91cb('0x9')](config[_0x91cb('0x8')],{'host':_0x91cb('0xa'),'port':0x18eb});var io=require(_0x91cb('0xb'))(new Redis(config['redis']));function getAdminId(_0x15c517,_0x5bda2f,_0x2fdfce,_0x4cf9ed){return new Promise(function(_0xa43e7a,_0x317df0){var _0x45317f=![];var _0x4a631d={'method':_0x91cb('0xc'),'uri':_0x4cf9ed+_0x91cb('0xd'),'json':!![]};_0x4a631d[_0x91cb('0xe')]=_0x2fdfce;logger[_0x91cb('0xf')](_0x91cb('0x10'));return rp(_0x4a631d)[_0x91cb('0x11')](function(_0x530d92){if(_0x530d92){var _0x3c1f56=_0x530d92[_0x91cb('0x12')];var _0x4ba2f2=null;for(_0x4ba2f2=0x0;_0x4ba2f2<_0x3c1f56[_0x91cb('0x13')];_0x4ba2f2++){if(_0x3c1f56[_0x4ba2f2][_0x91cb('0x14')]===_0x15c517[_0x91cb('0x15')]){_0x15c517[_0x91cb('0x16')]=_0x3c1f56[_0x4ba2f2]['id'];_0x45317f=!![];}}if(_0x45317f){logger['info']('Admin\x20found:',_0x15c517[_0x91cb('0x16')]);_0xa43e7a(_0x15c517);}else{_0x317df0({'statusCode':0x194,'message':_0x91cb('0x17')});}}else{_0x317df0({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})['catch'](function(_0x576369){logger[_0x91cb('0x18')]('['+[_0x5bda2f[_0x91cb('0x19')]()]+']',_0x576369['message']);_0x317df0(_0x576369);});});}function getUser(_0x238f11,_0x135890,_0x4f1554){return function(_0xc594e3){return new Promise(function(_0x139f4b,_0x1cd34b){var _0xcd1a78={'method':'GET','uri':_0x4f1554+_0x91cb('0xd'),'json':!![]};_0xcd1a78[_0x91cb('0xe')]=_0x135890;logger['info'](_0x91cb('0x1a'));return rp(_0xcd1a78)['then'](function(_0x55042a){if(_0x55042a){var _0x281ff3=_0x55042a[_0x91cb('0x12')];var _0x56e409=![];var _0x51a1d5=null;if(_0xc594e3['agentEmail']!==null){logger[_0x91cb('0xf')](_0x91cb('0x1b'),_0xc594e3[_0x91cb('0x1c')]);_0xc594e3[_0x91cb('0x1d')]=_0xc594e3['agentEmail'];for(_0x51a1d5=0x0;_0x51a1d5<_0x281ff3[_0x91cb('0x13')];_0x51a1d5++){if(_0x281ff3[_0x51a1d5][_0x91cb('0x14')]===_0xc594e3[_0x91cb('0x1c')]){_0x56e409=!![];_0xc594e3['userId']=_0x281ff3[_0x51a1d5]['id'];logger[_0x91cb('0xf')](_0x91cb('0x1e'),_0xc594e3[_0x91cb('0x1f')]);}}}if(!_0x56e409){logger[_0x91cb('0xf')](_0x91cb('0x20'));_0xc594e3[_0x91cb('0x1d')]=_0xc594e3[_0x91cb('0x15')];_0xc594e3[_0x91cb('0x1f')]=_0xc594e3[_0x91cb('0x16')];_0x56e409=!![];}if(_0x56e409){_0x139f4b(_0xc594e3);}else{_0x1cd34b({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x1cd34b({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0x91cb('0x21')](function(_0x554350){logger[_0x91cb('0x18')]('['+[_0x238f11[_0x91cb('0x19')]()]+']',_0x554350[_0x91cb('0x22')]);_0x1cd34b(_0x554350);});});};}function searchContact(_0x5595c5,_0x9b26a6,_0x4f5a7b,_0x4572f6){return new Promise(function(_0x308e8c,_0x3b3ee6){var _0x2fb473={'method':_0x91cb('0xc'),'headers':_0x9b26a6,'uri':_0x5595c5+'/api/lookup?q='+_0x4572f6+_0x91cb('0x23')+_0x4f5a7b+'&entities=contact','json':!![]};rp(_0x2fb473)[_0x91cb('0x11')](function(_0x30204e){var _0x445fe1=_['find'](_0x30204e[_0x91cb('0x24')][_0x91cb('0x24')],[_0x4f5a7b,_0x4572f6]);_0x308e8c(_0x445fe1);})[_0x91cb('0x21')](function(_0x361e4c){_0x3b3ee6(_0x361e4c);});});}function getEndUser(_0xf296bc,_0x3dab18,_0x1e5bf1){return function(_0x3bbde3){return new Promise(function(_0x1a10b1,_0x5e6ed3){logger[_0x91cb('0xf')](util[_0x91cb('0x25')](_0x91cb('0x26'),_0x3bbde3[_0x91cb('0x27')]));searchContact(_0x1e5bf1,_0x3dab18,_0x91cb('0x28'),_0x3bbde3['contactNumber'])[_0x91cb('0x11')](function(_0x74b443){if(_0x74b443){_0x3bbde3[_0x91cb('0x29')]=_0x74b443['id'];logger[_0x91cb('0xf')](_0x91cb('0x2a'),_0x3bbde3['endUserId']);return _0x1a10b1(_0x3bbde3);}searchContact(_0x1e5bf1,_0x3dab18,_0x91cb('0x2b'),_0x3bbde3['contactNumber'])['then'](function(_0x479968){if(_0x479968){_0x3bbde3[_0x91cb('0x29')]=_0x479968['id'];logger['info'](_0x91cb('0x2c'),_0x3bbde3['endUserId']);return _0x1a10b1(_0x3bbde3);}createEndUser(_0x3bbde3,_0xf296bc,_0x3dab18,_0x1e5bf1)['then'](function(_0x2ec8e1){logger[_0x91cb('0xf')](_0x91cb('0x2d'),_0x2ec8e1[_0x91cb('0x29')]);return _0x1a10b1(_0x2ec8e1);});});})[_0x91cb('0x21')](function(_0x4b0ca6){_0x5e6ed3(_0x4b0ca6);});});};}function createEndUser(_0x8beb3a,_0x3ddc0b,_0x13a5ea,_0x8496a3){return new Promise(function(_0x486a89,_0x5953f6){var _0x1eed21=moment();var _0x135bf1={'method':'POST','uri':_0x8496a3+_0x91cb('0x2e'),'body':{'contact':{'last_name':_0x8beb3a[_0x91cb('0x27')],'work_number':_0x8beb3a['contactNumber'],'mobile_number':_0x8beb3a[_0x91cb('0x27')],'owner_id':_0x8beb3a[_0x91cb('0x1f')],'created_at':_0x1eed21['format'](_0x91cb('0x2f'))}},'json':!![]};_0x135bf1['headers']=_0x13a5ea;logger[_0x91cb('0xf')](_0x91cb('0x30'));return rp(_0x135bf1)[_0x91cb('0x11')](function(_0x279ad5){_0x8beb3a[_0x91cb('0x29')]=_0x279ad5[_0x91cb('0x31')]['id'];_0x486a89(_0x8beb3a);})['catch'](function(_0xa90111){logger[_0x91cb('0x18')]('['+[_0x3ddc0b['toUpperCase']()]+']',_0xa90111[_0x91cb('0x22')]);_0x5953f6(_0xa90111['message']);});});}function getTicket(_0x2c6102,_0x2eac87,_0x2b4bac,_0x174794,_0x5e98c4){return function(_0x435fff){logger[_0x91cb('0xf')](_0x91cb('0x32'));return new Promise(function(_0x37e777,_0x42a7f3){var _0x2b8162=moment();var _0x451463={'method':_0x91cb('0x33'),'uri':_0x2b4bac+_0x91cb('0x34'),'body':{'title':intUtil[_0x91cb('0x35')](_0x174794['Subjects'],_0x5e98c4,'\x20'),'description':intUtil[_0x91cb('0x35')](_0x174794['Descriptions'],_0x5e98c4,'\x0a'),'owner_id':_0x435fff[_0x91cb('0x1f')],'creater_id':_0x435fff['adminId'],'targetable_id':_0x435fff[_0x91cb('0x29')],'targetable_type':'Contact','created_at':_0x2b8162[_0x91cb('0x25')](_0x91cb('0x2f')),'due_date':_0x2b8162[_0x91cb('0x36')](0x1e,'m')[_0x91cb('0x25')]('YYYY-MM-DDTHH:mm:ss')},'json':!![]};_0x451463[_0x91cb('0xe')]=_0x2eac87;return rp(_0x451463)[_0x91cb('0x11')](function(_0x57e26d){_0x435fff[_0x91cb('0x37')]=_0x57e26d[_0x91cb('0x38')]['id'];logger[_0x91cb('0xf')](_0x91cb('0x39'),_0x435fff[_0x91cb('0x37')]);_0x37e777(_0x435fff);})[_0x91cb('0x21')](function(_0x17d319){logger[_0x91cb('0x18')]('['+[_0x2c6102[_0x91cb('0x19')]()]+']',_0x17d319['message']);_0x42a7f3(_0x17d319[_0x91cb('0x22')]);});});};}function emit(_0x3e20d1,_0x2b7323,_0x470996){var _0x3314cc={'uri':_0x3e20d1+_0x91cb('0x3a')+_0x470996};io['to'](util[_0x91cb('0x25')](_0x91cb('0x3b'),_0x2b7323))['emit'](_0x91cb('0x3c'),_0x3314cc);}exports['cs']=function(_0x46caf1,_0x2b8b7f,_0x3b8cfd,_0x4da300,_0x9dae06,_0x1aa461,_0x4fad1b,_0x212473){var _0x47cdb7={};var _0x2c419b={'Authorization':'Token\x20token='+_0x1aa461['apiKey']};_0x1aa461['remoteUri']=intUtil[_0x91cb('0x3d')](_0x1aa461[_0x91cb('0x3e')]);_0x1aa461[_0x91cb('0x3f')]=intUtil[_0x91cb('0x3d')](_0x1aa461[_0x91cb('0x3f')]);var _0x56d4b9=_0x1aa461['remoteUri'];_0x47cdb7[_0x91cb('0x15')]=_0x1aa461[_0x91cb('0x40')];_0x47cdb7[_0x91cb('0x27')]=_0x212473[_0x91cb('0x41')]()==='outbound'?_0x2b8b7f['destcalleridnum']:_0x2b8b7f['calleridnum'];_0x47cdb7[_0x91cb('0x42')]=_0x212473==='queue'||_0x212473===_0x91cb('0x43')?'queue':_0x91cb('0x44');if(_0x4da300){_0x47cdb7[_0x91cb('0x1c')]=_0x4da300[_0x91cb('0x14')];}var _0x649976=util[_0x91cb('0x25')](_0x91cb('0x45'),_0x1aa461[_0x91cb('0x3f')],_0x2b8b7f[_0x91cb('0x46')],md5(_0x2b8b7f[_0x91cb('0x46')]));if(_0x9dae06&&_0x9dae06[_0x91cb('0x47')]){logger[_0x91cb('0xf')]('[QUEUE]',_0x91cb('0x48'));_0x2b8b7f[_0x91cb('0x49')]=_0x649976;}else if(_0x4fad1b&&_0x4fad1b['recordingFormat']&&_0x4fad1b[_0x91cb('0x4a')]!==_0x91cb('0x4b')){logger['info'](_0x91cb('0x4c'),_0x91cb('0x48'));_0x2b8b7f[_0x91cb('0x49')]=_0x649976;}else{_0x2b8b7f[_0x91cb('0x49')]='';}return getAdminId(_0x47cdb7,_0x212473,_0x2c419b,_0x56d4b9)[_0x91cb('0x11')](getUser(_0x212473,_0x2c419b,_0x56d4b9))[_0x91cb('0x11')](getEndUser(_0x212473,_0x2c419b,_0x56d4b9))[_0x91cb('0x11')](getTicket(_0x212473,_0x2c419b,_0x56d4b9,_0x3b8cfd,_0x2b8b7f))[_0x91cb('0x11')](function(_0x3320bd){logger[_0x91cb('0xf')](util[_0x91cb('0x25')]('The\x20ticket\x20ID\x20is:\x20%s',_0x3320bd[_0x91cb('0x37')]));if(_0x212473!=='unmanaged'){logger[_0x91cb('0xf')]('['+[_0x212473['toUpperCase']()]+']',_0x91cb('0x4d'));emit(_0x56d4b9,_0x4da300[_0x91cb('0x4e')],_0x3320bd[_0x91cb('0x29')]);}})['catch'](function(_0xe49d42){logger[_0x91cb('0x18')]('['+[_0x212473['toUpperCase']()]+_0x91cb('0x4f'),util[_0x91cb('0x50')](_0xe49d42,{'showHidden':!![],'depth':null}));});};