Built motion from commit f0b1811d.|2.6.6
[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 _0x4622=['inspect','lodash','request-promise','md5','moment','bluebird','ioredis','./util','../../../../config/environment','freshsales','redis','defaults','localhost','socket.io-emitter','headers','Getting\x20admin\x20information','then','length','email','adminEmail','adminId','info','Admin\x20found:','Requested\x20Resource\x20not\x20Found','GET','/api/selector/owners','agentEmail','Getting\x20user\x20with\x20email','userEmail','User\x20found:','userId','Admin\x20selected','message','/api/lookup?q=','&f=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','mobile_number','contactNumber','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20found\x20work_number:','Contact\x20created:','catch','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','POST','/api/tasks','getString','Subjects','Descriptions','Contact','add','ticketId','task','Task\x20created:','error','toUpperCase','/contacts/','user:%s','emit','trigger:browser:url','Token\x20token=','apiKey','remoteUri','stripTrailingSlash','serverUrl','username','toLowerCase','outbound','calleridnum','callDirection','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','unmanaged','Displaying\x20task\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20Freshsales\x20integration'];(function(_0x2fe19b,_0x341817){var _0x4c0fe8=function(_0x3ae58c){while(--_0x3ae58c){_0x2fe19b['push'](_0x2fe19b['shift']());}};_0x4c0fe8(++_0x341817);}(_0x4622,0x112));var _0x2462=function(_0x503950,_0x5022eb){_0x503950=_0x503950-0x0;var _0x1657a9=_0x4622[_0x503950];return _0x1657a9;};'use strict';var _=require(_0x2462('0x0'));var rp=require(_0x2462('0x1'));var md5=require(_0x2462('0x2'));var util=require('util');var moment=require(_0x2462('0x3'));var Promise=require(_0x2462('0x4'));var Redis=require(_0x2462('0x5'));var intUtil=require(_0x2462('0x6'));var config=require(_0x2462('0x7'));var logger=require('../../../../config/logger')(_0x2462('0x8'));config[_0x2462('0x9')]=_[_0x2462('0xa')](config[_0x2462('0x9')],{'host':_0x2462('0xb'),'port':0x18eb});var io=require(_0x2462('0xc'))(new Redis(config['redis']));function getAdminId(_0x5791df,_0xf42612,_0x153ad8,_0x33bb26){return new Promise(function(_0x5ba0ac,_0x4f3d67){var _0x49273a=![];var _0x466991={'method':'GET','uri':_0x33bb26+'/api/selector/owners','json':!![]};_0x466991[_0x2462('0xd')]=_0x153ad8;logger['info'](_0x2462('0xe'));return rp(_0x466991)[_0x2462('0xf')](function(_0x1bfa2d){if(_0x1bfa2d){var _0x1b7aaa=_0x1bfa2d['users'];var _0x13d67b=null;for(_0x13d67b=0x0;_0x13d67b<_0x1b7aaa[_0x2462('0x10')];_0x13d67b++){if(_0x1b7aaa[_0x13d67b][_0x2462('0x11')]===_0x5791df[_0x2462('0x12')]){_0x5791df[_0x2462('0x13')]=_0x1b7aaa[_0x13d67b]['id'];_0x49273a=!![];}}if(_0x49273a){logger[_0x2462('0x14')](_0x2462('0x15'),_0x5791df[_0x2462('0x13')]);_0x5ba0ac(_0x5791df);}else{_0x4f3d67({'statusCode':0x194,'message':_0x2462('0x16')});}}else{_0x4f3d67({'statusCode':0x194,'message':_0x2462('0x16')});}})['catch'](function(_0x165ccf){logger['error']('['+[_0xf42612['toUpperCase']()]+']',_0x165ccf['message']);_0x4f3d67(_0x165ccf);});});}function getUser(_0x5d1de1,_0x4769c8,_0x13c9fc){return function(_0x48d8d7){return new Promise(function(_0x1f81b2,_0x431b8e){var _0x11899f={'method':_0x2462('0x17'),'uri':_0x13c9fc+_0x2462('0x18'),'json':!![]};_0x11899f[_0x2462('0xd')]=_0x4769c8;logger[_0x2462('0x14')]('Getting\x20user\x20list');return rp(_0x11899f)[_0x2462('0xf')](function(_0xa375dc){if(_0xa375dc){var _0x292425=_0xa375dc['users'];var _0x48ee31=![];var _0x424392=null;if(_0x48d8d7[_0x2462('0x19')]!==null){logger[_0x2462('0x14')](_0x2462('0x1a'),_0x48d8d7['agentEmail']);_0x48d8d7[_0x2462('0x1b')]=_0x48d8d7[_0x2462('0x19')];for(_0x424392=0x0;_0x424392<_0x292425[_0x2462('0x10')];_0x424392++){if(_0x292425[_0x424392][_0x2462('0x11')]===_0x48d8d7[_0x2462('0x19')]){_0x48ee31=!![];_0x48d8d7['userId']=_0x292425[_0x424392]['id'];logger['info'](_0x2462('0x1c'),_0x48d8d7[_0x2462('0x1d')]);}}}if(!_0x48ee31){logger[_0x2462('0x14')](_0x2462('0x1e'));_0x48d8d7[_0x2462('0x1b')]=_0x48d8d7[_0x2462('0x12')];_0x48d8d7['userId']=_0x48d8d7[_0x2462('0x13')];_0x48ee31=!![];}if(_0x48ee31){_0x1f81b2(_0x48d8d7);}else{_0x431b8e({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x431b8e({'statusCode':0x194,'message':_0x2462('0x16')});}})['catch'](function(_0x1a302f){logger['error']('['+[_0x5d1de1['toUpperCase']()]+']',_0x1a302f[_0x2462('0x1f')]);_0x431b8e(_0x1a302f);});});};}function searchContact(_0x4eb4b5,_0x17cee9,_0x55c7f1,_0x176f43){return new Promise(function(_0x280131,_0xe64854){var _0x427d91={'method':_0x2462('0x17'),'headers':_0x17cee9,'uri':_0x4eb4b5+_0x2462('0x20')+_0x176f43+_0x2462('0x21')+_0x55c7f1+_0x2462('0x22'),'json':!![]};rp(_0x427d91)['then'](function(_0x5bf676){var _0x168d5b=_[_0x2462('0x23')](_0x5bf676[_0x2462('0x24')][_0x2462('0x24')],[_0x55c7f1,_0x176f43]);_0x280131(_0x168d5b);})['catch'](function(_0x218080){_0xe64854(_0x218080);});});}function getEndUser(_0x10d0bb,_0x4d8b23,_0x2c53cb){return function(_0x1fa169){return new Promise(function(_0xbed7ce,_0xe26bc){logger[_0x2462('0x14')](util[_0x2462('0x25')](_0x2462('0x26'),_0x1fa169['contactNumber']));searchContact(_0x2c53cb,_0x4d8b23,_0x2462('0x27'),_0x1fa169[_0x2462('0x28')])[_0x2462('0xf')](function(_0x29271c){if(_0x29271c){_0x1fa169[_0x2462('0x29')]=_0x29271c['id'];logger['info'](_0x2462('0x2a'),_0x1fa169[_0x2462('0x29')]);return _0xbed7ce(_0x1fa169);}searchContact(_0x2c53cb,_0x4d8b23,_0x2462('0x2b'),_0x1fa169[_0x2462('0x28')])[_0x2462('0xf')](function(_0x20c513){if(_0x20c513){_0x1fa169[_0x2462('0x29')]=_0x20c513['id'];logger[_0x2462('0x14')](_0x2462('0x2c'),_0x1fa169[_0x2462('0x29')]);return _0xbed7ce(_0x1fa169);}createEndUser(_0x1fa169,_0x10d0bb,_0x4d8b23,_0x2c53cb)['then'](function(_0x47b747){logger[_0x2462('0x14')](_0x2462('0x2d'),_0x47b747[_0x2462('0x29')]);return _0xbed7ce(_0x47b747);});});})[_0x2462('0x2e')](function(_0x49f820){_0xe26bc(_0x49f820);});});};}function createEndUser(_0x41feeb,_0x50bd0c,_0x3bd1e9,_0x4b9475){return new Promise(function(_0x24ab23,_0x46cace){var _0x2d9073=moment();var _0x55cab1={'method':'POST','uri':_0x4b9475+'/api/contacts','body':{'contact':{'last_name':_0x41feeb['contactNumber'],'work_number':_0x41feeb[_0x2462('0x28')],'mobile_number':_0x41feeb['contactNumber'],'owner_id':_0x41feeb[_0x2462('0x1d')],'created_at':_0x2d9073['format'](_0x2462('0x2f'))}},'json':!![]};_0x55cab1[_0x2462('0xd')]=_0x3bd1e9;logger[_0x2462('0x14')](_0x2462('0x30'));return rp(_0x55cab1)[_0x2462('0xf')](function(_0x2ca7ef){_0x41feeb[_0x2462('0x29')]=_0x2ca7ef[_0x2462('0x31')]['id'];_0x24ab23(_0x41feeb);})['catch'](function(_0x3d1b6b){logger['error']('['+[_0x50bd0c['toUpperCase']()]+']',_0x3d1b6b[_0x2462('0x1f')]);_0x46cace(_0x3d1b6b[_0x2462('0x1f')]);});});}function getTicket(_0x5df3ef,_0xc174aa,_0x930c2c,_0x4d6165,_0x5f07c){return function(_0x22db6b){logger[_0x2462('0x14')](_0x2462('0x32'));return new Promise(function(_0x35d02c,_0x4fe7de){var _0x4ed044=moment();var _0x2f771c={'method':_0x2462('0x33'),'uri':_0x930c2c+_0x2462('0x34'),'body':{'title':intUtil[_0x2462('0x35')](_0x4d6165[_0x2462('0x36')],_0x5f07c,'\x20'),'description':intUtil[_0x2462('0x35')](_0x4d6165[_0x2462('0x37')],_0x5f07c,'\x0a'),'owner_id':_0x22db6b[_0x2462('0x1d')],'creater_id':_0x22db6b[_0x2462('0x13')],'targetable_id':_0x22db6b[_0x2462('0x29')],'targetable_type':_0x2462('0x38'),'created_at':_0x4ed044[_0x2462('0x25')](_0x2462('0x2f')),'due_date':_0x4ed044[_0x2462('0x39')](0x1e,'m')[_0x2462('0x25')]('YYYY-MM-DDTHH:mm:ss')},'json':!![]};_0x2f771c[_0x2462('0xd')]=_0xc174aa;return rp(_0x2f771c)[_0x2462('0xf')](function(_0xfa0f76){_0x22db6b[_0x2462('0x3a')]=_0xfa0f76[_0x2462('0x3b')]['id'];logger[_0x2462('0x14')](_0x2462('0x3c'),_0x22db6b[_0x2462('0x3a')]);_0x35d02c(_0x22db6b);})[_0x2462('0x2e')](function(_0x24601d){logger[_0x2462('0x3d')]('['+[_0x5df3ef[_0x2462('0x3e')]()]+']',_0x24601d[_0x2462('0x1f')]);_0x4fe7de(_0x24601d[_0x2462('0x1f')]);});});};}function emit(_0x3e3bda,_0x103ac0,_0xf4bf51){var _0x57c99e={'uri':_0x3e3bda+_0x2462('0x3f')+_0xf4bf51};io['to'](util[_0x2462('0x25')](_0x2462('0x40'),_0x103ac0))[_0x2462('0x41')](_0x2462('0x42'),_0x57c99e);}exports['cs']=function(_0x598aa3,_0x2f1c23,_0x480944,_0x4a8a2e,_0x1d095c,_0x5eb977,_0x4c810b,_0x179891){var _0x355d06={};var _0x984f85={'Authorization':_0x2462('0x43')+_0x5eb977[_0x2462('0x44')]};_0x5eb977[_0x2462('0x45')]=intUtil[_0x2462('0x46')](_0x5eb977[_0x2462('0x45')]);_0x5eb977['serverUrl']=intUtil[_0x2462('0x46')](_0x5eb977[_0x2462('0x47')]);var _0x170e6b=_0x5eb977['remoteUri'];_0x355d06[_0x2462('0x12')]=_0x5eb977[_0x2462('0x48')];_0x355d06[_0x2462('0x28')]=_0x179891[_0x2462('0x49')]()===_0x2462('0x4a')?_0x2f1c23['destcalleridnum']:_0x2f1c23[_0x2462('0x4b')];_0x355d06[_0x2462('0x4c')]=_0x179891===_0x2462('0x4d')||_0x179891==='unmanaged'?_0x2462('0x4d'):_0x2462('0x4a');if(_0x4a8a2e){_0x355d06[_0x2462('0x19')]=_0x4a8a2e[_0x2462('0x11')];}var _0x438cca=util[_0x2462('0x25')](_0x2462('0x4e'),_0x5eb977[_0x2462('0x47')],_0x2f1c23[_0x2462('0x4f')],md5(_0x2f1c23[_0x2462('0x4f')]));if(_0x1d095c&&_0x1d095c[_0x2462('0x50')]){logger['info'](_0x2462('0x51'),_0x2462('0x52'));_0x2f1c23[_0x2462('0x53')]=_0x438cca;}else if(_0x4c810b&&_0x4c810b[_0x2462('0x54')]&&_0x4c810b[_0x2462('0x54')]!=='none'){logger[_0x2462('0x14')](_0x2462('0x55'),_0x2462('0x52'));_0x2f1c23[_0x2462('0x53')]=_0x438cca;}else{_0x2f1c23[_0x2462('0x53')]='';}return getAdminId(_0x355d06,_0x179891,_0x984f85,_0x170e6b)[_0x2462('0xf')](getUser(_0x179891,_0x984f85,_0x170e6b))['then'](getEndUser(_0x179891,_0x984f85,_0x170e6b))[_0x2462('0xf')](getTicket(_0x179891,_0x984f85,_0x170e6b,_0x480944,_0x2f1c23))['then'](function(_0xa48712){logger['info'](util['format'](_0x2462('0x56'),_0xa48712[_0x2462('0x3a')]));if(_0x179891!==_0x2462('0x57')){logger[_0x2462('0x14')]('['+[_0x179891[_0x2462('0x3e')]()]+']',_0x2462('0x58'));emit(_0x170e6b,_0x4a8a2e['name'],_0xa48712[_0x2462('0x29')]);}})[_0x2462('0x2e')](function(_0x134f9e){logger[_0x2462('0x3d')]('['+[_0x179891[_0x2462('0x3e')]()]+_0x2462('0x59'),util[_0x2462('0x5a')](_0x134f9e,{'showHidden':!![],'depth':null}));});};