Built motion from commit (unavailable).|2.5.30
[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 _0x5e0c=['Getting\x20user\x20list','then','Getting\x20user\x20with\x20email','userEmail','agentEmail','email','userId','Admin\x20selected','Requested\x20Resource\x20not\x20Found','/api/lookup?q=','&f=','&entities=contact','find','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','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','/api/tasks','getString','Subjects','Descriptions','add','YYYY-MM-DDTHH:mm:ss','ticketId','task','Task\x20created:','/contacts/','user:%s','emit','trigger:browser:url','Token\x20token=','apiKey','remoteUri','stripTrailingSlash','serverUrl','username','destcalleridnum','calleridnum','callDirection','queue','outbound','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingFormat','none','[OUTBOUND]','recordingURL','The\x20ticket\x20ID\x20is:\x20%s','unmanaged','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','request-promise','md5','util','moment','bluebird','ioredis','../../../../config/environment','../../../../config/logger','freshsales','redis','defaults','socket.io-emitter','GET','/api/selector/owners','headers','info','Getting\x20admin\x20information','users','length','adminEmail','adminId','catch','error','toUpperCase','message'];(function(_0x12a57d,_0x738bd1){var _0x4b26f6=function(_0x3c54b5){while(--_0x3c54b5){_0x12a57d['push'](_0x12a57d['shift']());}};_0x4b26f6(++_0x738bd1);}(_0x5e0c,0x19f));var _0xc5e0=function(_0x3ab08b,_0x163eea){_0x3ab08b=_0x3ab08b-0x0;var _0x1d3cbb=_0x5e0c[_0x3ab08b];return _0x1d3cbb;};'use strict';var _=require('lodash');var rp=require(_0xc5e0('0x0'));var md5=require(_0xc5e0('0x1'));var util=require(_0xc5e0('0x2'));var moment=require(_0xc5e0('0x3'));var Promise=require(_0xc5e0('0x4'));var Redis=require(_0xc5e0('0x5'));var intUtil=require('./util');var config=require(_0xc5e0('0x6'));var logger=require(_0xc5e0('0x7'))(_0xc5e0('0x8'));config[_0xc5e0('0x9')]=_[_0xc5e0('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xc5e0('0xb'))(new Redis(config['redis']));function getAdminId(_0x33ee0b,_0x398b67,_0x2cd57a,_0xc7c777){return new Promise(function(_0x5ce913,_0x2c12b8){var _0x558bbd=![];var _0x37627e={'method':_0xc5e0('0xc'),'uri':_0xc7c777+_0xc5e0('0xd'),'json':!![]};_0x37627e[_0xc5e0('0xe')]=_0x2cd57a;logger[_0xc5e0('0xf')](_0xc5e0('0x10'));return rp(_0x37627e)['then'](function(_0x43969b){if(_0x43969b){var _0x239620=_0x43969b[_0xc5e0('0x11')];var _0x207bb7=null;for(_0x207bb7=0x0;_0x207bb7<_0x239620[_0xc5e0('0x12')];_0x207bb7++){if(_0x239620[_0x207bb7]['email']===_0x33ee0b[_0xc5e0('0x13')]){_0x33ee0b[_0xc5e0('0x14')]=_0x239620[_0x207bb7]['id'];_0x558bbd=!![];}}if(_0x558bbd){logger['info']('Admin\x20found:',_0x33ee0b[_0xc5e0('0x14')]);_0x5ce913(_0x33ee0b);}else{_0x2c12b8({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x2c12b8({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xc5e0('0x15')](function(_0x163bf2){logger[_0xc5e0('0x16')]('['+[_0x398b67[_0xc5e0('0x17')]()]+']',_0x163bf2[_0xc5e0('0x18')]);_0x2c12b8(_0x163bf2);});});}function getUser(_0x247138,_0x1667b9,_0x27106a){return function(_0x21bb3e){return new Promise(function(_0x1baf22,_0x217c62){var _0x21cf18={'method':_0xc5e0('0xc'),'uri':_0x27106a+_0xc5e0('0xd'),'json':!![]};_0x21cf18['headers']=_0x1667b9;logger['info'](_0xc5e0('0x19'));return rp(_0x21cf18)[_0xc5e0('0x1a')](function(_0x3d7981){if(_0x3d7981){var _0x2dba3d=_0x3d7981[_0xc5e0('0x11')];var _0x106819=![];var _0x4a07e8=null;if(_0x21bb3e['agentEmail']!==null){logger['info'](_0xc5e0('0x1b'),_0x21bb3e['agentEmail']);_0x21bb3e[_0xc5e0('0x1c')]=_0x21bb3e[_0xc5e0('0x1d')];for(_0x4a07e8=0x0;_0x4a07e8<_0x2dba3d[_0xc5e0('0x12')];_0x4a07e8++){if(_0x2dba3d[_0x4a07e8][_0xc5e0('0x1e')]===_0x21bb3e[_0xc5e0('0x1d')]){_0x106819=!![];_0x21bb3e[_0xc5e0('0x1f')]=_0x2dba3d[_0x4a07e8]['id'];logger[_0xc5e0('0xf')]('User\x20found:',_0x21bb3e[_0xc5e0('0x1f')]);}}}if(!_0x106819){logger['info'](_0xc5e0('0x20'));_0x21bb3e[_0xc5e0('0x1c')]=_0x21bb3e['adminEmail'];_0x21bb3e['userId']=_0x21bb3e['adminId'];_0x106819=!![];}if(_0x106819){_0x1baf22(_0x21bb3e);}else{_0x217c62({'statusCode':0x194,'message':_0xc5e0('0x21')});}}else{_0x217c62({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xc5e0('0x15')](function(_0x3e960f){logger['error']('['+[_0x247138[_0xc5e0('0x17')]()]+']',_0x3e960f[_0xc5e0('0x18')]);_0x217c62(_0x3e960f);});});};}function searchContact(_0x326479,_0x31b8bd,_0x59061e,_0x4a1321){return new Promise(function(_0x4b22dd,_0x4b30d9){var _0x4461ae={'method':'GET','headers':_0x31b8bd,'uri':_0x326479+_0xc5e0('0x22')+_0x4a1321+_0xc5e0('0x23')+_0x59061e+_0xc5e0('0x24'),'json':!![]};rp(_0x4461ae)[_0xc5e0('0x1a')](function(_0x57b520){var _0x1d3932=_[_0xc5e0('0x25')](_0x57b520['contacts'][_0xc5e0('0x26')],[_0x59061e,_0x4a1321]);_0x4b22dd(_0x1d3932);})[_0xc5e0('0x15')](function(_0x7f510b){_0x4b30d9(_0x7f510b);});});}function getEndUser(_0xd32ce9,_0x2b5f75,_0xec225c){return function(_0x31a921){return new Promise(function(_0x3069a6,_0x23b00a){logger[_0xc5e0('0xf')](util[_0xc5e0('0x27')](_0xc5e0('0x28'),_0x31a921['contactNumber']));searchContact(_0xec225c,_0x2b5f75,'mobile_number',_0x31a921[_0xc5e0('0x29')])['then'](function(_0x3e2ded){if(_0x3e2ded){_0x31a921[_0xc5e0('0x2a')]=_0x3e2ded['id'];logger[_0xc5e0('0xf')](_0xc5e0('0x2b'),_0x31a921[_0xc5e0('0x2a')]);return _0x3069a6(_0x31a921);}searchContact(_0xec225c,_0x2b5f75,_0xc5e0('0x2c'),_0x31a921['contactNumber'])[_0xc5e0('0x1a')](function(_0x2ea2b9){if(_0x2ea2b9){_0x31a921[_0xc5e0('0x2a')]=_0x2ea2b9['id'];logger[_0xc5e0('0xf')](_0xc5e0('0x2d'),_0x31a921['endUserId']);return _0x3069a6(_0x31a921);}createEndUser(_0x31a921,_0xd32ce9,_0x2b5f75,_0xec225c)[_0xc5e0('0x1a')](function(_0x41b585){logger['info'](_0xc5e0('0x2e'),_0x41b585[_0xc5e0('0x2a')]);return _0x3069a6(_0x41b585);});});})[_0xc5e0('0x15')](function(_0x30127e){_0x23b00a(_0x30127e);});});};}function createEndUser(_0x12a94f,_0x1f18ed,_0x3d1145,_0x2302ec){return new Promise(function(_0x1f2fb2,_0x2a722c){var _0x3a734d=moment();var _0x3e838b={'method':_0xc5e0('0x2f'),'uri':_0x2302ec+_0xc5e0('0x30'),'body':{'contact':{'last_name':_0x12a94f[_0xc5e0('0x29')],'work_number':_0x12a94f[_0xc5e0('0x29')],'mobile_number':_0x12a94f[_0xc5e0('0x29')],'owner_id':_0x12a94f[_0xc5e0('0x1f')],'created_at':_0x3a734d[_0xc5e0('0x27')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x3e838b[_0xc5e0('0xe')]=_0x3d1145;logger[_0xc5e0('0xf')](_0xc5e0('0x31'));return rp(_0x3e838b)[_0xc5e0('0x1a')](function(_0x1df06b){_0x12a94f['endUserId']=_0x1df06b[_0xc5e0('0x32')]['id'];_0x1f2fb2(_0x12a94f);})[_0xc5e0('0x15')](function(_0x4739cd){logger[_0xc5e0('0x16')]('['+[_0x1f18ed[_0xc5e0('0x17')]()]+']',_0x4739cd[_0xc5e0('0x18')]);_0x2a722c(_0x4739cd['message']);});});}function getTicket(_0x33283e,_0x51b666,_0x180543,_0x484d3b,_0x28686c){return function(_0x363ab9){logger['info']('Creating\x20new\x20task');return new Promise(function(_0x708ee0,_0x106997){var _0x516078=moment();var _0x4d95fd={'method':_0xc5e0('0x2f'),'uri':_0x180543+_0xc5e0('0x33'),'body':{'title':intUtil[_0xc5e0('0x34')](_0x484d3b[_0xc5e0('0x35')],_0x28686c,'\x20'),'description':intUtil[_0xc5e0('0x34')](_0x484d3b[_0xc5e0('0x36')],_0x28686c,'\x0a'),'owner_id':_0x363ab9['userId'],'creater_id':_0x363ab9['adminId'],'targetable_id':_0x363ab9[_0xc5e0('0x2a')],'targetable_type':'Contact','created_at':_0x516078[_0xc5e0('0x27')]('YYYY-MM-DDTHH:mm:ss'),'due_date':_0x516078[_0xc5e0('0x37')](0x1e,'m')[_0xc5e0('0x27')](_0xc5e0('0x38'))},'json':!![]};_0x4d95fd[_0xc5e0('0xe')]=_0x51b666;return rp(_0x4d95fd)[_0xc5e0('0x1a')](function(_0x58ddfe){_0x363ab9[_0xc5e0('0x39')]=_0x58ddfe[_0xc5e0('0x3a')]['id'];logger[_0xc5e0('0xf')](_0xc5e0('0x3b'),_0x363ab9['ticketId']);_0x708ee0(_0x363ab9);})[_0xc5e0('0x15')](function(_0x183416){logger['error']('['+[_0x33283e[_0xc5e0('0x17')]()]+']',_0x183416[_0xc5e0('0x18')]);_0x106997(_0x183416[_0xc5e0('0x18')]);});});};}function emit(_0x49d42f,_0x3c0a9b,_0x499780){var _0x985229={'uri':_0x49d42f+_0xc5e0('0x3c')+_0x499780};io['to'](util[_0xc5e0('0x27')](_0xc5e0('0x3d'),_0x3c0a9b))[_0xc5e0('0x3e')](_0xc5e0('0x3f'),_0x985229);}exports['cs']=function(_0x913f8a,_0x3cf9b4,_0x2cb7ac,_0x4a5f32,_0x15fa6b,_0x5c1197,_0x17ba0c,_0x10e08e){var _0xbe17c8={};var _0x4fe592={'Authorization':_0xc5e0('0x40')+_0x5c1197[_0xc5e0('0x41')]};_0x5c1197[_0xc5e0('0x42')]=intUtil[_0xc5e0('0x43')](_0x5c1197[_0xc5e0('0x42')]);_0x5c1197[_0xc5e0('0x44')]=intUtil['stripTrailingSlash'](_0x5c1197[_0xc5e0('0x44')]);var _0x2b744f=_0x5c1197[_0xc5e0('0x42')];_0xbe17c8[_0xc5e0('0x13')]=_0x5c1197[_0xc5e0('0x45')];_0xbe17c8[_0xc5e0('0x29')]=_0x10e08e['toLowerCase']()==='outbound'?_0x3cf9b4[_0xc5e0('0x46')]:_0x3cf9b4[_0xc5e0('0x47')];_0xbe17c8[_0xc5e0('0x48')]=_0x10e08e==='queue'||_0x10e08e==='unmanaged'?_0xc5e0('0x49'):_0xc5e0('0x4a');if(_0x4a5f32){_0xbe17c8[_0xc5e0('0x1d')]=_0x4a5f32['email'];}var _0x57c8f8=util[_0xc5e0('0x27')](_0xc5e0('0x4b'),_0x5c1197[_0xc5e0('0x44')],_0x3cf9b4[_0xc5e0('0x4c')],md5(_0x3cf9b4[_0xc5e0('0x4c')]));if(_0x15fa6b&&_0x15fa6b['monitor_format']){logger[_0xc5e0('0xf')](_0xc5e0('0x4d'),_0xc5e0('0x4e'));_0x3cf9b4['recordingURL']=_0x57c8f8;}else if(_0x17ba0c&&_0x17ba0c[_0xc5e0('0x4f')]&&_0x17ba0c['recordingFormat']!==_0xc5e0('0x50')){logger[_0xc5e0('0xf')](_0xc5e0('0x51'),_0xc5e0('0x4e'));_0x3cf9b4[_0xc5e0('0x52')]=_0x57c8f8;}else{_0x3cf9b4[_0xc5e0('0x52')]='';}return getAdminId(_0xbe17c8,_0x10e08e,_0x4fe592,_0x2b744f)[_0xc5e0('0x1a')](getUser(_0x10e08e,_0x4fe592,_0x2b744f))[_0xc5e0('0x1a')](getEndUser(_0x10e08e,_0x4fe592,_0x2b744f))[_0xc5e0('0x1a')](getTicket(_0x10e08e,_0x4fe592,_0x2b744f,_0x2cb7ac,_0x3cf9b4))[_0xc5e0('0x1a')](function(_0xf635d9){logger[_0xc5e0('0xf')](util[_0xc5e0('0x27')](_0xc5e0('0x53'),_0xf635d9[_0xc5e0('0x39')]));if(_0x10e08e!==_0xc5e0('0x54')){logger[_0xc5e0('0xf')]('['+[_0x10e08e['toUpperCase']()]+']','Displaying\x20task\x20in\x20a\x20new\x20tab...');emit(_0x2b744f,_0x4a5f32[_0xc5e0('0x55')],_0xf635d9[_0xc5e0('0x2a')]);}})['catch'](function(_0x188494){logger['error']('['+[_0x10e08e['toUpperCase']()]+_0xc5e0('0x56'),util[_0xc5e0('0x57')](_0x188494,{'showHidden':!![],'depth':null}));});};