Built motion from commit e1760111.|2.6.18
[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 _0xfabd=['users','length','email','adminEmail','adminId','Admin\x20found:','catch','error','toUpperCase','message','then','agentEmail','Getting\x20user\x20with\x20email','userEmail','userId','Admin\x20selected','/api/lookup?q=','&f=','&entities=contact','find','contacts','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','work_number','endUserId','POST','format','YYYY-MM-DDTHH:mm:ss','/api/tasks','getString','Subjects','Descriptions','ticketId','task','Task\x20created:','/contacts/','user:%s','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','monitor_format','[QUEUE]','recordingURL','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','util','moment','bluebird','ioredis','./util','../../../../config/logger','freshsales','redis','defaults','socket.io-emitter','GET','/api/selector/owners','headers','info','Getting\x20admin\x20information'];(function(_0x59f375,_0x255df2){var _0x49a4e8=function(_0x14c9e){while(--_0x14c9e){_0x59f375['push'](_0x59f375['shift']());}};_0x49a4e8(++_0x255df2);}(_0xfabd,0xe5));var _0xdfab=function(_0x452e36,_0x5790be){_0x452e36=_0x452e36-0x0;var _0x52dacd=_0xfabd[_0x452e36];return _0x52dacd;};'use strict';var _=require(_0xdfab('0x0'));var rp=require(_0xdfab('0x1'));var md5=require('md5');var util=require(_0xdfab('0x2'));var moment=require(_0xdfab('0x3'));var Promise=require(_0xdfab('0x4'));var Redis=require(_0xdfab('0x5'));var intUtil=require(_0xdfab('0x6'));var config=require('../../../../config/environment');var logger=require(_0xdfab('0x7'))(_0xdfab('0x8'));config[_0xdfab('0x9')]=_[_0xdfab('0xa')](config[_0xdfab('0x9')],{'host':'localhost','port':0x18eb});var io=require(_0xdfab('0xb'))(new Redis(config['redis']));function getAdminId(_0x4d955e,_0x22113d,_0x2383b4,_0x5b7751){return new Promise(function(_0x3cf167,_0xb6d99c){var _0x20cd16=![];var _0x36b15d={'method':_0xdfab('0xc'),'uri':_0x5b7751+_0xdfab('0xd'),'json':!![]};_0x36b15d[_0xdfab('0xe')]=_0x2383b4;logger[_0xdfab('0xf')](_0xdfab('0x10'));return rp(_0x36b15d)['then'](function(_0x378ebd){if(_0x378ebd){var _0x5612b0=_0x378ebd[_0xdfab('0x11')];var _0x3a02dc=null;for(_0x3a02dc=0x0;_0x3a02dc<_0x5612b0[_0xdfab('0x12')];_0x3a02dc++){if(_0x5612b0[_0x3a02dc][_0xdfab('0x13')]===_0x4d955e[_0xdfab('0x14')]){_0x4d955e[_0xdfab('0x15')]=_0x5612b0[_0x3a02dc]['id'];_0x20cd16=!![];}}if(_0x20cd16){logger[_0xdfab('0xf')](_0xdfab('0x16'),_0x4d955e['adminId']);_0x3cf167(_0x4d955e);}else{_0xb6d99c({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0xb6d99c({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xdfab('0x17')](function(_0x4947f9){logger[_0xdfab('0x18')]('['+[_0x22113d[_0xdfab('0x19')]()]+']',_0x4947f9[_0xdfab('0x1a')]);_0xb6d99c(_0x4947f9);});});}function getUser(_0x29be40,_0x166350,_0x39f876){return function(_0x2d0a45){return new Promise(function(_0x12c232,_0x20ce21){var _0x4f5e1c={'method':_0xdfab('0xc'),'uri':_0x39f876+'/api/selector/owners','json':!![]};_0x4f5e1c['headers']=_0x166350;logger[_0xdfab('0xf')]('Getting\x20user\x20list');return rp(_0x4f5e1c)[_0xdfab('0x1b')](function(_0x4ba7cc){if(_0x4ba7cc){var _0x272780=_0x4ba7cc[_0xdfab('0x11')];var _0x584aa7=![];var _0x2d7d57=null;if(_0x2d0a45[_0xdfab('0x1c')]!==null){logger[_0xdfab('0xf')](_0xdfab('0x1d'),_0x2d0a45[_0xdfab('0x1c')]);_0x2d0a45[_0xdfab('0x1e')]=_0x2d0a45[_0xdfab('0x1c')];for(_0x2d7d57=0x0;_0x2d7d57<_0x272780[_0xdfab('0x12')];_0x2d7d57++){if(_0x272780[_0x2d7d57][_0xdfab('0x13')]===_0x2d0a45['agentEmail']){_0x584aa7=!![];_0x2d0a45[_0xdfab('0x1f')]=_0x272780[_0x2d7d57]['id'];logger['info']('User\x20found:',_0x2d0a45[_0xdfab('0x1f')]);}}}if(!_0x584aa7){logger['info'](_0xdfab('0x20'));_0x2d0a45[_0xdfab('0x1e')]=_0x2d0a45[_0xdfab('0x14')];_0x2d0a45['userId']=_0x2d0a45[_0xdfab('0x15')];_0x584aa7=!![];}if(_0x584aa7){_0x12c232(_0x2d0a45);}else{_0x20ce21({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x20ce21({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xdfab('0x17')](function(_0x127375){logger[_0xdfab('0x18')]('['+[_0x29be40[_0xdfab('0x19')]()]+']',_0x127375[_0xdfab('0x1a')]);_0x20ce21(_0x127375);});});};}function searchContact(_0x1273d4,_0x430e8b,_0x523d9c,_0x45dc89){return new Promise(function(_0x216856,_0x121f9d){var _0x3f21eb={'method':'GET','headers':_0x430e8b,'uri':_0x1273d4+_0xdfab('0x21')+_0x45dc89+_0xdfab('0x22')+_0x523d9c+_0xdfab('0x23'),'json':!![]};rp(_0x3f21eb)['then'](function(_0x2d20da){var _0x3be534=_[_0xdfab('0x24')](_0x2d20da[_0xdfab('0x25')][_0xdfab('0x25')],[_0x523d9c,_0x45dc89]);_0x216856(_0x3be534);})[_0xdfab('0x17')](function(_0x43877b){_0x121f9d(_0x43877b);});});}function getEndUser(_0xa70dc0,_0x4f021a,_0x55e019){return function(_0x4524ff){return new Promise(function(_0x3b3dcf,_0x1fce43){logger[_0xdfab('0xf')](util['format'](_0xdfab('0x26'),_0x4524ff[_0xdfab('0x27')]));searchContact(_0x55e019,_0x4f021a,_0xdfab('0x28'),_0x4524ff[_0xdfab('0x27')])[_0xdfab('0x1b')](function(_0x567bcd){if(_0x567bcd){_0x4524ff['endUserId']=_0x567bcd['id'];logger[_0xdfab('0xf')]('Contact\x20found\x20mobile_number:',_0x4524ff['endUserId']);return _0x3b3dcf(_0x4524ff);}searchContact(_0x55e019,_0x4f021a,_0xdfab('0x29'),_0x4524ff['contactNumber'])[_0xdfab('0x1b')](function(_0x3e9d50){if(_0x3e9d50){_0x4524ff[_0xdfab('0x2a')]=_0x3e9d50['id'];logger[_0xdfab('0xf')]('Contact\x20found\x20work_number:',_0x4524ff[_0xdfab('0x2a')]);return _0x3b3dcf(_0x4524ff);}createEndUser(_0x4524ff,_0xa70dc0,_0x4f021a,_0x55e019)['then'](function(_0x4af495){logger[_0xdfab('0xf')]('Contact\x20created:',_0x4af495[_0xdfab('0x2a')]);return _0x3b3dcf(_0x4af495);});});})[_0xdfab('0x17')](function(_0x16d454){_0x1fce43(_0x16d454);});});};}function createEndUser(_0x328992,_0xbb528f,_0x11d2a0,_0x4c419e){return new Promise(function(_0x41645f,_0x41ff7a){var _0x288c0e=moment();var _0x3b440c={'method':_0xdfab('0x2b'),'uri':_0x4c419e+'/api/contacts','body':{'contact':{'last_name':_0x328992[_0xdfab('0x27')],'work_number':_0x328992['contactNumber'],'mobile_number':_0x328992[_0xdfab('0x27')],'owner_id':_0x328992['userId'],'created_at':_0x288c0e[_0xdfab('0x2c')](_0xdfab('0x2d'))}},'json':!![]};_0x3b440c[_0xdfab('0xe')]=_0x11d2a0;logger[_0xdfab('0xf')]('Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact');return rp(_0x3b440c)[_0xdfab('0x1b')](function(_0x53b482){_0x328992[_0xdfab('0x2a')]=_0x53b482['contact']['id'];_0x41645f(_0x328992);})[_0xdfab('0x17')](function(_0x551fad){logger[_0xdfab('0x18')]('['+[_0xbb528f[_0xdfab('0x19')]()]+']',_0x551fad['message']);_0x41ff7a(_0x551fad[_0xdfab('0x1a')]);});});}function getTicket(_0x30dab4,_0x431406,_0x1418d3,_0x47b3fe,_0x34c78b){return function(_0x55a07f){logger[_0xdfab('0xf')]('Creating\x20new\x20task');return new Promise(function(_0x2d4c28,_0x732a73){var _0x38f143=moment();var _0x43819e={'method':_0xdfab('0x2b'),'uri':_0x1418d3+_0xdfab('0x2e'),'body':{'title':intUtil[_0xdfab('0x2f')](_0x47b3fe[_0xdfab('0x30')],_0x34c78b,'\x20'),'description':intUtil[_0xdfab('0x2f')](_0x47b3fe[_0xdfab('0x31')],_0x34c78b,'\x0a'),'owner_id':_0x55a07f[_0xdfab('0x1f')],'creater_id':_0x55a07f[_0xdfab('0x15')],'targetable_id':_0x55a07f[_0xdfab('0x2a')],'targetable_type':'Contact','created_at':_0x38f143[_0xdfab('0x2c')](_0xdfab('0x2d')),'due_date':_0x38f143['add'](0x1e,'m')[_0xdfab('0x2c')](_0xdfab('0x2d'))},'json':!![]};_0x43819e[_0xdfab('0xe')]=_0x431406;return rp(_0x43819e)['then'](function(_0x406676){_0x55a07f[_0xdfab('0x32')]=_0x406676[_0xdfab('0x33')]['id'];logger[_0xdfab('0xf')](_0xdfab('0x34'),_0x55a07f[_0xdfab('0x32')]);_0x2d4c28(_0x55a07f);})['catch'](function(_0x4d0c86){logger['error']('['+[_0x30dab4[_0xdfab('0x19')]()]+']',_0x4d0c86[_0xdfab('0x1a')]);_0x732a73(_0x4d0c86[_0xdfab('0x1a')]);});});};}function emit(_0x35dfb9,_0x36ebcd,_0x9ec8b5){var _0x35b823={'uri':_0x35dfb9+_0xdfab('0x35')+_0x9ec8b5};io['to'](util['format'](_0xdfab('0x36'),_0x36ebcd))[_0xdfab('0x37')]('trigger:browser:url',_0x35b823);}exports['cs']=function(_0x240668,_0x5bdfc2,_0x642498,_0x4aaac1,_0x53b294,_0x318c6b,_0x425c0a,_0x2cb5fe){var _0x52916c={};var _0x3b9b19={'Authorization':_0xdfab('0x38')+_0x318c6b['apiKey']};_0x318c6b[_0xdfab('0x39')]=intUtil[_0xdfab('0x3a')](_0x318c6b[_0xdfab('0x39')]);_0x318c6b[_0xdfab('0x3b')]=intUtil[_0xdfab('0x3a')](_0x318c6b[_0xdfab('0x3b')]);var _0x41db43=_0x318c6b[_0xdfab('0x39')];_0x52916c[_0xdfab('0x14')]=_0x318c6b[_0xdfab('0x3c')];_0x52916c[_0xdfab('0x27')]=_0x2cb5fe[_0xdfab('0x3d')]()===_0xdfab('0x3e')?_0x5bdfc2[_0xdfab('0x3f')]:_0x5bdfc2[_0xdfab('0x40')];_0x52916c[_0xdfab('0x41')]=_0x2cb5fe===_0xdfab('0x42')||_0x2cb5fe===_0xdfab('0x43')?_0xdfab('0x42'):_0xdfab('0x3e');if(_0x4aaac1){_0x52916c[_0xdfab('0x1c')]=_0x4aaac1[_0xdfab('0x13')];}var _0x2e5d1e=util[_0xdfab('0x2c')](_0xdfab('0x44'),_0x318c6b['serverUrl'],_0x5bdfc2[_0xdfab('0x45')],md5(_0x5bdfc2[_0xdfab('0x45')]));if(_0x53b294&&_0x53b294[_0xdfab('0x46')]){logger['info'](_0xdfab('0x47'),'Recording\x20is\x20enabled!');_0x5bdfc2[_0xdfab('0x48')]=_0x2e5d1e;}else if(_0x425c0a&&_0x425c0a['recordingFormat']&&_0x425c0a[_0xdfab('0x49')]!==_0xdfab('0x4a')){logger[_0xdfab('0xf')](_0xdfab('0x4b'),_0xdfab('0x4c'));_0x5bdfc2[_0xdfab('0x48')]=_0x2e5d1e;}else{_0x5bdfc2[_0xdfab('0x48')]='';}return getAdminId(_0x52916c,_0x2cb5fe,_0x3b9b19,_0x41db43)[_0xdfab('0x1b')](getUser(_0x2cb5fe,_0x3b9b19,_0x41db43))[_0xdfab('0x1b')](getEndUser(_0x2cb5fe,_0x3b9b19,_0x41db43))[_0xdfab('0x1b')](getTicket(_0x2cb5fe,_0x3b9b19,_0x41db43,_0x642498,_0x5bdfc2))[_0xdfab('0x1b')](function(_0x5aeb80){logger['info'](util['format'](_0xdfab('0x4d'),_0x5aeb80[_0xdfab('0x32')]));if(_0x2cb5fe!=='unmanaged'){logger[_0xdfab('0xf')]('['+[_0x2cb5fe[_0xdfab('0x19')]()]+']',_0xdfab('0x4e'));emit(_0x41db43,_0x4aaac1[_0xdfab('0x4f')],_0x5aeb80['endUserId']);}})[_0xdfab('0x17')](function(_0x322c37){logger[_0xdfab('0x18')]('['+[_0x2cb5fe[_0xdfab('0x19')]()]+_0xdfab('0x50'),util[_0xdfab('0x51')](_0x322c37,{'showHidden':!![],'depth':null}));});};