Built motion from commit (unavailable).|2.5.23
[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 _0x5334=['Getting\x20user\x20list','agentEmail','Getting\x20user\x20with\x20email','email','User\x20found:','Admin\x20selected','userEmail','catch','toUpperCase','/api/lookup?q=','&f=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','endUserId','work_number','Contact\x20found\x20work_number:','POST','/api/contacts','userId','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','Descriptions','add','ticketId','Task\x20created:','emit','Token\x20token=','remoteUri','stripTrailingSlash','serverUrl','username','toLowerCase','outbound','destcalleridnum','calleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','name',']\x20Error\x20running\x20Freshsales\x20integration','lodash','request-promise','md5','util','moment','ioredis','../../../../config/environment','../../../../config/logger','redis','GET','/api/selector/owners','headers','info','then','users','length','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','error','message'];(function(_0x3510c2,_0x396bf6){var _0x191fb0=function(_0x1e3f44){while(--_0x1e3f44){_0x3510c2['push'](_0x3510c2['shift']());}};_0x191fb0(++_0x396bf6);}(_0x5334,0x84));var _0x4533=function(_0x11d7e6,_0x577241){_0x11d7e6=_0x11d7e6-0x0;var _0x49600e=_0x5334[_0x11d7e6];return _0x49600e;};'use strict';var _=require(_0x4533('0x0'));var rp=require(_0x4533('0x1'));var md5=require(_0x4533('0x2'));var util=require(_0x4533('0x3'));var moment=require(_0x4533('0x4'));var Promise=require('bluebird');var Redis=require(_0x4533('0x5'));var intUtil=require('./util');var config=require(_0x4533('0x6'));var logger=require(_0x4533('0x7'))('freshsales');config['redis']=_['defaults'](config[_0x4533('0x8')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function getAdminId(_0x3fbdc3,_0x42f94b,_0x300877,_0x2489b6){return new Promise(function(_0x31018b,_0x21b22f){var _0xd417=![];var _0x4fdbda={'method':_0x4533('0x9'),'uri':_0x2489b6+_0x4533('0xa'),'json':!![]};_0x4fdbda[_0x4533('0xb')]=_0x300877;logger[_0x4533('0xc')]('Getting\x20admin\x20information');return rp(_0x4fdbda)[_0x4533('0xd')](function(_0x5a7e8f){if(_0x5a7e8f){var _0xc63e3=_0x5a7e8f[_0x4533('0xe')];var _0x45ba67=null;for(_0x45ba67=0x0;_0x45ba67<_0xc63e3[_0x4533('0xf')];_0x45ba67++){if(_0xc63e3[_0x45ba67]['email']===_0x3fbdc3[_0x4533('0x10')]){_0x3fbdc3[_0x4533('0x11')]=_0xc63e3[_0x45ba67]['id'];_0xd417=!![];}}if(_0xd417){logger[_0x4533('0xc')](_0x4533('0x12'),_0x3fbdc3['adminId']);_0x31018b(_0x3fbdc3);}else{_0x21b22f({'statusCode':0x194,'message':_0x4533('0x13')});}}else{_0x21b22f({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})['catch'](function(_0x466545){logger[_0x4533('0x14')]('['+[_0x42f94b['toUpperCase']()]+']',_0x466545[_0x4533('0x15')]);_0x21b22f(_0x466545);});});}function getUser(_0x1e6a1a,_0x2a9877,_0x551b0d){return function(_0x3ed873){return new Promise(function(_0x4f732e,_0x3ddb36){var _0x3d16a2={'method':'GET','uri':_0x551b0d+_0x4533('0xa'),'json':!![]};_0x3d16a2['headers']=_0x2a9877;logger['info'](_0x4533('0x16'));return rp(_0x3d16a2)[_0x4533('0xd')](function(_0x49fb91){if(_0x49fb91){var _0x53fe43=_0x49fb91[_0x4533('0xe')];var _0x3b18c1=![];var _0x3467ba=null;if(_0x3ed873[_0x4533('0x17')]!==null){logger[_0x4533('0xc')](_0x4533('0x18'),_0x3ed873[_0x4533('0x17')]);_0x3ed873['userEmail']=_0x3ed873[_0x4533('0x17')];for(_0x3467ba=0x0;_0x3467ba<_0x53fe43[_0x4533('0xf')];_0x3467ba++){if(_0x53fe43[_0x3467ba][_0x4533('0x19')]===_0x3ed873['agentEmail']){_0x3b18c1=!![];_0x3ed873['userId']=_0x53fe43[_0x3467ba]['id'];logger[_0x4533('0xc')](_0x4533('0x1a'),_0x3ed873['userId']);}}}if(!_0x3b18c1){logger['info'](_0x4533('0x1b'));_0x3ed873[_0x4533('0x1c')]=_0x3ed873[_0x4533('0x10')];_0x3ed873['userId']=_0x3ed873[_0x4533('0x11')];_0x3b18c1=!![];}if(_0x3b18c1){_0x4f732e(_0x3ed873);}else{_0x3ddb36({'statusCode':0x194,'message':_0x4533('0x13')});}}else{_0x3ddb36({'statusCode':0x194,'message':_0x4533('0x13')});}})[_0x4533('0x1d')](function(_0x19ab4d){logger[_0x4533('0x14')]('['+[_0x1e6a1a[_0x4533('0x1e')]()]+']',_0x19ab4d[_0x4533('0x15')]);_0x3ddb36(_0x19ab4d);});});};}function searchContact(_0x45ad98,_0x5f16bb,_0x5c1e24,_0xa2e602){return new Promise(function(_0x5aaf2d,_0x3fd76a){var _0x4e2b80={'method':_0x4533('0x9'),'headers':_0x5f16bb,'uri':_0x45ad98+_0x4533('0x1f')+_0xa2e602+_0x4533('0x20')+_0x5c1e24+_0x4533('0x21'),'json':!![]};rp(_0x4e2b80)[_0x4533('0xd')](function(_0x1ac882){var _0xe584a2=_[_0x4533('0x22')](_0x1ac882[_0x4533('0x23')][_0x4533('0x23')],[_0x5c1e24,_0xa2e602]);_0x5aaf2d(_0xe584a2);})[_0x4533('0x1d')](function(_0x165df0){_0x3fd76a(_0x165df0);});});}function getEndUser(_0x7fc887,_0x5bea54,_0x2489ce){return function(_0x50e1b8){return new Promise(function(_0x420998,_0x3f7720){logger[_0x4533('0xc')](util[_0x4533('0x24')](_0x4533('0x25'),_0x50e1b8[_0x4533('0x26')]));searchContact(_0x2489ce,_0x5bea54,_0x4533('0x27'),_0x50e1b8[_0x4533('0x26')])[_0x4533('0xd')](function(_0x24b806){if(_0x24b806){_0x50e1b8[_0x4533('0x28')]=_0x24b806['id'];logger[_0x4533('0xc')]('Contact\x20found\x20mobile_number:',_0x50e1b8[_0x4533('0x28')]);return _0x420998(_0x50e1b8);}searchContact(_0x2489ce,_0x5bea54,_0x4533('0x29'),_0x50e1b8[_0x4533('0x26')])[_0x4533('0xd')](function(_0x42bc08){if(_0x42bc08){_0x50e1b8['endUserId']=_0x42bc08['id'];logger[_0x4533('0xc')](_0x4533('0x2a'),_0x50e1b8[_0x4533('0x28')]);return _0x420998(_0x50e1b8);}createEndUser(_0x50e1b8,_0x7fc887,_0x5bea54,_0x2489ce)[_0x4533('0xd')](function(_0x466136){logger[_0x4533('0xc')]('Contact\x20created:',_0x466136[_0x4533('0x28')]);return _0x420998(_0x466136);});});})[_0x4533('0x1d')](function(_0x5d21f2){_0x3f7720(_0x5d21f2);});});};}function createEndUser(_0x3b6f10,_0x1e028a,_0x42807e,_0x2f4943){return new Promise(function(_0x39a2a2,_0x41fb9b){var _0x424924=moment();var _0x603753={'method':_0x4533('0x2b'),'uri':_0x2f4943+_0x4533('0x2c'),'body':{'contact':{'last_name':_0x3b6f10['contactNumber'],'work_number':_0x3b6f10[_0x4533('0x26')],'mobile_number':_0x3b6f10[_0x4533('0x26')],'owner_id':_0x3b6f10[_0x4533('0x2d')],'created_at':_0x424924[_0x4533('0x24')](_0x4533('0x2e'))}},'json':!![]};_0x603753[_0x4533('0xb')]=_0x42807e;logger[_0x4533('0xc')](_0x4533('0x2f'));return rp(_0x603753)[_0x4533('0xd')](function(_0x3179b4){_0x3b6f10[_0x4533('0x28')]=_0x3179b4[_0x4533('0x30')]['id'];_0x39a2a2(_0x3b6f10);})['catch'](function(_0x4d4e03){logger[_0x4533('0x14')]('['+[_0x1e028a['toUpperCase']()]+']',_0x4d4e03[_0x4533('0x15')]);_0x41fb9b(_0x4d4e03[_0x4533('0x15')]);});});}function getTicket(_0x18ac32,_0x3562de,_0x6c6cfb,_0x3e3f72,_0x2df795){return function(_0x2686f4){logger[_0x4533('0xc')](_0x4533('0x31'));return new Promise(function(_0x44013d,_0xfc09fc){var _0x10c03f=moment();var _0x5c4a04={'method':_0x4533('0x2b'),'uri':_0x6c6cfb+'/api/tasks','body':{'title':intUtil['getString'](_0x3e3f72['Subjects'],_0x2df795,'\x20'),'description':intUtil['getString'](_0x3e3f72[_0x4533('0x32')],_0x2df795,'\x0a'),'owner_id':_0x2686f4[_0x4533('0x2d')],'creater_id':_0x2686f4[_0x4533('0x11')],'targetable_id':_0x2686f4[_0x4533('0x28')],'targetable_type':'Contact','created_at':_0x10c03f[_0x4533('0x24')](_0x4533('0x2e')),'due_date':_0x10c03f[_0x4533('0x33')](0x1e,'m')[_0x4533('0x24')](_0x4533('0x2e'))},'json':!![]};_0x5c4a04[_0x4533('0xb')]=_0x3562de;return rp(_0x5c4a04)[_0x4533('0xd')](function(_0x5661be){_0x2686f4[_0x4533('0x34')]=_0x5661be['task']['id'];logger['info'](_0x4533('0x35'),_0x2686f4[_0x4533('0x34')]);_0x44013d(_0x2686f4);})[_0x4533('0x1d')](function(_0x40d54d){logger['error']('['+[_0x18ac32['toUpperCase']()]+']',_0x40d54d[_0x4533('0x15')]);_0xfc09fc(_0x40d54d['message']);});});};}function emit(_0x1c01ee,_0x45b729,_0x4e46c5){var _0x55eabc={'uri':_0x1c01ee+'/contacts/'+_0x4e46c5};io['to'](util['format']('user:%s',_0x45b729))[_0x4533('0x36')]('trigger:browser:url',_0x55eabc);}exports['cs']=function(_0x429447,_0x52b36c,_0x2e70b7,_0x5bfdd5,_0x4b3302,_0xb46cca,_0x503eb4,_0x1394cb){var _0x59e358={};var _0x696728={'Authorization':_0x4533('0x37')+_0xb46cca['apiKey']};_0xb46cca[_0x4533('0x38')]=intUtil[_0x4533('0x39')](_0xb46cca[_0x4533('0x38')]);_0xb46cca[_0x4533('0x3a')]=intUtil[_0x4533('0x39')](_0xb46cca['serverUrl']);var _0x2f439d=_0xb46cca[_0x4533('0x38')];_0x59e358['adminEmail']=_0xb46cca[_0x4533('0x3b')];_0x59e358[_0x4533('0x26')]=_0x1394cb[_0x4533('0x3c')]()===_0x4533('0x3d')?_0x52b36c[_0x4533('0x3e')]:_0x52b36c[_0x4533('0x3f')];_0x59e358[_0x4533('0x40')]=_0x1394cb===_0x4533('0x41')||_0x1394cb===_0x4533('0x42')?_0x4533('0x41'):_0x4533('0x3d');if(_0x5bfdd5){_0x59e358[_0x4533('0x17')]=_0x5bfdd5[_0x4533('0x19')];}var _0x36297a=util[_0x4533('0x24')](_0x4533('0x43'),_0xb46cca['serverUrl'],_0x52b36c[_0x4533('0x44')],md5(_0x52b36c['uniqueid']));if(_0x4b3302&&_0x4b3302['monitor_format']){logger[_0x4533('0xc')](_0x4533('0x45'),_0x4533('0x46'));_0x52b36c[_0x4533('0x47')]=_0x36297a;}else if(_0x503eb4&&_0x503eb4['recordingFormat']&&_0x503eb4[_0x4533('0x48')]!=='none'){logger['info'](_0x4533('0x49'),'Recording\x20is\x20enabled!');_0x52b36c[_0x4533('0x47')]=_0x36297a;}else{_0x52b36c['recordingURL']='';}return getAdminId(_0x59e358,_0x1394cb,_0x696728,_0x2f439d)[_0x4533('0xd')](getUser(_0x1394cb,_0x696728,_0x2f439d))[_0x4533('0xd')](getEndUser(_0x1394cb,_0x696728,_0x2f439d))[_0x4533('0xd')](getTicket(_0x1394cb,_0x696728,_0x2f439d,_0x2e70b7,_0x52b36c))[_0x4533('0xd')](function(_0x28a27f){logger['info'](util[_0x4533('0x24')](_0x4533('0x4a'),_0x28a27f[_0x4533('0x34')]));if(_0x1394cb!=='unmanaged'){logger[_0x4533('0xc')]('['+[_0x1394cb[_0x4533('0x1e')]()]+']','Displaying\x20task\x20in\x20a\x20new\x20tab...');emit(_0x2f439d,_0x5bfdd5[_0x4533('0x4b')],_0x28a27f[_0x4533('0x28')]);}})[_0x4533('0x1d')](function(_0x38da7b){logger[_0x4533('0x14')]('['+[_0x1394cb['toUpperCase']()]+_0x4533('0x4c'),util['inspect'](_0x38da7b,{'showHidden':!![],'depth':null}));});};