Built motion from commit 47436d59.|2.6.7
[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 _0x1e22=['Requested\x20Resource\x20not\x20Found','catch','message','GET','/api/selector/owners','Getting\x20user\x20list','users','Getting\x20user\x20with\x20email','agentEmail','email','User\x20found:','userId','Admin\x20selected','userEmail','toUpperCase','/api/lookup?q=','&entities=contact','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts','YYYY-MM-DDTHH:mm:ss','headers','contact','getString','Descriptions','Contact','add','ticketId','task','Task\x20created:','error','/contacts/','user:%s','emit','Token\x20token=','stripTrailingSlash','remoteUri','serverUrl','username','toLowerCase','outbound','destcalleridnum','calleridnum','unmanaged','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','Recording\x20is\x20enabled!','recordingFormat','[OUTBOUND]','recordingURL','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20Freshsales\x20integration','lodash','util','moment','bluebird','./util','../../../../config/logger','freshsales','redis','defaults','localhost','socket.io-emitter','info','Getting\x20admin\x20information','then','length','adminEmail','adminId','Admin\x20found:'];(function(_0x43eda7,_0x1e835a){var _0x55d00c=function(_0x585cf1){while(--_0x585cf1){_0x43eda7['push'](_0x43eda7['shift']());}};_0x55d00c(++_0x1e835a);}(_0x1e22,0x183));var _0x21e2=function(_0x288f5e,_0x205edd){_0x288f5e=_0x288f5e-0x0;var _0x476cc9=_0x1e22[_0x288f5e];return _0x476cc9;};'use strict';var _=require(_0x21e2('0x0'));var rp=require('request-promise');var md5=require('md5');var util=require(_0x21e2('0x1'));var moment=require(_0x21e2('0x2'));var Promise=require(_0x21e2('0x3'));var Redis=require('ioredis');var intUtil=require(_0x21e2('0x4'));var config=require('../../../../config/environment');var logger=require(_0x21e2('0x5'))(_0x21e2('0x6'));config[_0x21e2('0x7')]=_[_0x21e2('0x8')](config[_0x21e2('0x7')],{'host':_0x21e2('0x9'),'port':0x18eb});var io=require(_0x21e2('0xa'))(new Redis(config[_0x21e2('0x7')]));function getAdminId(_0x30c294,_0x1130a6,_0x5457fa,_0x58a59a){return new Promise(function(_0x242a11,_0x4ceabe){var _0x262370=![];var _0x178ddb={'method':'GET','uri':_0x58a59a+'/api/selector/owners','json':!![]};_0x178ddb['headers']=_0x5457fa;logger[_0x21e2('0xb')](_0x21e2('0xc'));return rp(_0x178ddb)[_0x21e2('0xd')](function(_0x4480af){if(_0x4480af){var _0x3ab06=_0x4480af['users'];var _0x2aa6de=null;for(_0x2aa6de=0x0;_0x2aa6de<_0x3ab06[_0x21e2('0xe')];_0x2aa6de++){if(_0x3ab06[_0x2aa6de]['email']===_0x30c294[_0x21e2('0xf')]){_0x30c294[_0x21e2('0x10')]=_0x3ab06[_0x2aa6de]['id'];_0x262370=!![];}}if(_0x262370){logger[_0x21e2('0xb')](_0x21e2('0x11'),_0x30c294[_0x21e2('0x10')]);_0x242a11(_0x30c294);}else{_0x4ceabe({'statusCode':0x194,'message':_0x21e2('0x12')});}}else{_0x4ceabe({'statusCode':0x194,'message':_0x21e2('0x12')});}})[_0x21e2('0x13')](function(_0x5c5959){logger['error']('['+[_0x1130a6['toUpperCase']()]+']',_0x5c5959[_0x21e2('0x14')]);_0x4ceabe(_0x5c5959);});});}function getUser(_0x477059,_0x5eeaf5,_0x66d437){return function(_0x55c837){return new Promise(function(_0xfc4689,_0x5661df){var _0x4cc149={'method':_0x21e2('0x15'),'uri':_0x66d437+_0x21e2('0x16'),'json':!![]};_0x4cc149['headers']=_0x5eeaf5;logger[_0x21e2('0xb')](_0x21e2('0x17'));return rp(_0x4cc149)[_0x21e2('0xd')](function(_0x31786b){if(_0x31786b){var _0x57c1dd=_0x31786b[_0x21e2('0x18')];var _0x44ca34=![];var _0xaace56=null;if(_0x55c837['agentEmail']!==null){logger[_0x21e2('0xb')](_0x21e2('0x19'),_0x55c837[_0x21e2('0x1a')]);_0x55c837['userEmail']=_0x55c837['agentEmail'];for(_0xaace56=0x0;_0xaace56<_0x57c1dd[_0x21e2('0xe')];_0xaace56++){if(_0x57c1dd[_0xaace56][_0x21e2('0x1b')]===_0x55c837[_0x21e2('0x1a')]){_0x44ca34=!![];_0x55c837['userId']=_0x57c1dd[_0xaace56]['id'];logger[_0x21e2('0xb')](_0x21e2('0x1c'),_0x55c837[_0x21e2('0x1d')]);}}}if(!_0x44ca34){logger[_0x21e2('0xb')](_0x21e2('0x1e'));_0x55c837[_0x21e2('0x1f')]=_0x55c837[_0x21e2('0xf')];_0x55c837['userId']=_0x55c837[_0x21e2('0x10')];_0x44ca34=!![];}if(_0x44ca34){_0xfc4689(_0x55c837);}else{_0x5661df({'statusCode':0x194,'message':_0x21e2('0x12')});}}else{_0x5661df({'statusCode':0x194,'message':_0x21e2('0x12')});}})[_0x21e2('0x13')](function(_0x4d1484){logger['error']('['+[_0x477059[_0x21e2('0x20')]()]+']',_0x4d1484[_0x21e2('0x14')]);_0x5661df(_0x4d1484);});});};}function searchContact(_0x5be09e,_0x2300eb,_0x701aa8,_0x7b8968){return new Promise(function(_0x1403ab,_0x1eb080){var _0x3a69d2={'method':_0x21e2('0x15'),'headers':_0x2300eb,'uri':_0x5be09e+_0x21e2('0x21')+_0x7b8968+'&f='+_0x701aa8+_0x21e2('0x22'),'json':!![]};rp(_0x3a69d2)[_0x21e2('0xd')](function(_0x44f062){var _0x2f6fdb=_['find'](_0x44f062[_0x21e2('0x23')]['contacts'],[_0x701aa8,_0x7b8968]);_0x1403ab(_0x2f6fdb);})[_0x21e2('0x13')](function(_0x4fc61a){_0x1eb080(_0x4fc61a);});});}function getEndUser(_0x3c983d,_0x53a002,_0xda741a){return function(_0x2b53ea){return new Promise(function(_0x43822d,_0x3129ad){logger[_0x21e2('0xb')](util[_0x21e2('0x24')](_0x21e2('0x25'),_0x2b53ea[_0x21e2('0x26')]));searchContact(_0xda741a,_0x53a002,'mobile_number',_0x2b53ea[_0x21e2('0x26')])[_0x21e2('0xd')](function(_0x5995e1){if(_0x5995e1){_0x2b53ea[_0x21e2('0x27')]=_0x5995e1['id'];logger[_0x21e2('0xb')](_0x21e2('0x28'),_0x2b53ea[_0x21e2('0x27')]);return _0x43822d(_0x2b53ea);}searchContact(_0xda741a,_0x53a002,_0x21e2('0x29'),_0x2b53ea[_0x21e2('0x26')])[_0x21e2('0xd')](function(_0xd3b47f){if(_0xd3b47f){_0x2b53ea[_0x21e2('0x27')]=_0xd3b47f['id'];logger[_0x21e2('0xb')](_0x21e2('0x2a'),_0x2b53ea[_0x21e2('0x27')]);return _0x43822d(_0x2b53ea);}createEndUser(_0x2b53ea,_0x3c983d,_0x53a002,_0xda741a)[_0x21e2('0xd')](function(_0x4616ee){logger[_0x21e2('0xb')](_0x21e2('0x2b'),_0x4616ee[_0x21e2('0x27')]);return _0x43822d(_0x4616ee);});});})[_0x21e2('0x13')](function(_0x17987d){_0x3129ad(_0x17987d);});});};}function createEndUser(_0x5c1aa7,_0x41096d,_0x4f32e5,_0x54d19f){return new Promise(function(_0xe1abde,_0x4bb73f){var _0x524aae=moment();var _0x3406cd={'method':_0x21e2('0x2c'),'uri':_0x54d19f+_0x21e2('0x2d'),'body':{'contact':{'last_name':_0x5c1aa7[_0x21e2('0x26')],'work_number':_0x5c1aa7[_0x21e2('0x26')],'mobile_number':_0x5c1aa7[_0x21e2('0x26')],'owner_id':_0x5c1aa7['userId'],'created_at':_0x524aae[_0x21e2('0x24')](_0x21e2('0x2e'))}},'json':!![]};_0x3406cd[_0x21e2('0x2f')]=_0x4f32e5;logger[_0x21e2('0xb')]('Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact');return rp(_0x3406cd)['then'](function(_0x85dc2){_0x5c1aa7[_0x21e2('0x27')]=_0x85dc2[_0x21e2('0x30')]['id'];_0xe1abde(_0x5c1aa7);})['catch'](function(_0x78a1de){logger['error']('['+[_0x41096d[_0x21e2('0x20')]()]+']',_0x78a1de[_0x21e2('0x14')]);_0x4bb73f(_0x78a1de[_0x21e2('0x14')]);});});}function getTicket(_0x4518a6,_0x31042f,_0x1ab295,_0x30cf69,_0x4a570){return function(_0x19c547){logger['info']('Creating\x20new\x20task');return new Promise(function(_0x4ffecb,_0x534f24){var _0x1b02a5=moment();var _0x5d4ca7={'method':'POST','uri':_0x1ab295+'/api/tasks','body':{'title':intUtil[_0x21e2('0x31')](_0x30cf69['Subjects'],_0x4a570,'\x20'),'description':intUtil[_0x21e2('0x31')](_0x30cf69[_0x21e2('0x32')],_0x4a570,'\x0a'),'owner_id':_0x19c547[_0x21e2('0x1d')],'creater_id':_0x19c547[_0x21e2('0x10')],'targetable_id':_0x19c547[_0x21e2('0x27')],'targetable_type':_0x21e2('0x33'),'created_at':_0x1b02a5['format'](_0x21e2('0x2e')),'due_date':_0x1b02a5[_0x21e2('0x34')](0x1e,'m')[_0x21e2('0x24')](_0x21e2('0x2e'))},'json':!![]};_0x5d4ca7[_0x21e2('0x2f')]=_0x31042f;return rp(_0x5d4ca7)[_0x21e2('0xd')](function(_0x37141b){_0x19c547[_0x21e2('0x35')]=_0x37141b[_0x21e2('0x36')]['id'];logger['info'](_0x21e2('0x37'),_0x19c547[_0x21e2('0x35')]);_0x4ffecb(_0x19c547);})[_0x21e2('0x13')](function(_0x2e3201){logger[_0x21e2('0x38')]('['+[_0x4518a6[_0x21e2('0x20')]()]+']',_0x2e3201[_0x21e2('0x14')]);_0x534f24(_0x2e3201[_0x21e2('0x14')]);});});};}function emit(_0x43aa66,_0x1a4108,_0x14f24b){var _0x3fcfd8={'uri':_0x43aa66+_0x21e2('0x39')+_0x14f24b};io['to'](util[_0x21e2('0x24')](_0x21e2('0x3a'),_0x1a4108))[_0x21e2('0x3b')]('trigger:browser:url',_0x3fcfd8);}exports['cs']=function(_0x3fbe3b,_0x7fefd8,_0x3ab53c,_0x1b6c45,_0xcc7c1f,_0x16738e,_0x538753,_0x298dcb){var _0x4e84d7={};var _0x1b0251={'Authorization':_0x21e2('0x3c')+_0x16738e['apiKey']};_0x16738e['remoteUri']=intUtil[_0x21e2('0x3d')](_0x16738e[_0x21e2('0x3e')]);_0x16738e[_0x21e2('0x3f')]=intUtil[_0x21e2('0x3d')](_0x16738e[_0x21e2('0x3f')]);var _0x4d5ab3=_0x16738e[_0x21e2('0x3e')];_0x4e84d7[_0x21e2('0xf')]=_0x16738e[_0x21e2('0x40')];_0x4e84d7[_0x21e2('0x26')]=_0x298dcb[_0x21e2('0x41')]()===_0x21e2('0x42')?_0x7fefd8[_0x21e2('0x43')]:_0x7fefd8[_0x21e2('0x44')];_0x4e84d7['callDirection']=_0x298dcb==='queue'||_0x298dcb===_0x21e2('0x45')?_0x21e2('0x46'):_0x21e2('0x42');if(_0x1b6c45){_0x4e84d7['agentEmail']=_0x1b6c45[_0x21e2('0x1b')];}var _0x165a00=util['format'](_0x21e2('0x47'),_0x16738e[_0x21e2('0x3f')],_0x7fefd8[_0x21e2('0x48')],md5(_0x7fefd8[_0x21e2('0x48')]));if(_0xcc7c1f&&_0xcc7c1f[_0x21e2('0x49')]){logger[_0x21e2('0xb')]('[QUEUE]',_0x21e2('0x4a'));_0x7fefd8['recordingURL']=_0x165a00;}else if(_0x538753&&_0x538753[_0x21e2('0x4b')]&&_0x538753[_0x21e2('0x4b')]!=='none'){logger['info'](_0x21e2('0x4c'),_0x21e2('0x4a'));_0x7fefd8[_0x21e2('0x4d')]=_0x165a00;}else{_0x7fefd8['recordingURL']='';}return getAdminId(_0x4e84d7,_0x298dcb,_0x1b0251,_0x4d5ab3)[_0x21e2('0xd')](getUser(_0x298dcb,_0x1b0251,_0x4d5ab3))[_0x21e2('0xd')](getEndUser(_0x298dcb,_0x1b0251,_0x4d5ab3))[_0x21e2('0xd')](getTicket(_0x298dcb,_0x1b0251,_0x4d5ab3,_0x3ab53c,_0x7fefd8))['then'](function(_0x154d6c){logger[_0x21e2('0xb')](util[_0x21e2('0x24')](_0x21e2('0x4e'),_0x154d6c[_0x21e2('0x35')]));if(_0x298dcb!==_0x21e2('0x45')){logger[_0x21e2('0xb')]('['+[_0x298dcb[_0x21e2('0x20')]()]+']',_0x21e2('0x4f'));emit(_0x4d5ab3,_0x1b6c45['name'],_0x154d6c[_0x21e2('0x27')]);}})[_0x21e2('0x13')](function(_0x11e7fe){logger[_0x21e2('0x38')]('['+[_0x298dcb[_0x21e2('0x20')]()]+_0x21e2('0x50'),util['inspect'](_0x11e7fe,{'showHidden':!![],'depth':null}));});};