Built motion from commit (unavailable).|2.5.22
[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 _0x49e5=['ticketId','task','Task\x20created:','/contacts/','emit','trigger:browser:url','Token\x20token=','apiKey','stripTrailingSlash','serverUrl','toLowerCase','outbound','destcalleridnum','calleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','Recording\x20is\x20enabled!','recordingURL','recordingFormat','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','md5','util','moment','ioredis','./util','../../../../config/environment','../../../../config/logger','freshsales','defaults','socket.io-emitter','redis','GET','/api/selector/owners','info','then','length','email','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','headers','Getting\x20user\x20list','users','agentEmail','Getting\x20user\x20with\x20email','User\x20found:','Admin\x20selected','userEmail','adminEmail','userId','/api/lookup?q=','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','mobile_number','endUserId','work_number','contactNumber','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','getString','Subjects','Descriptions','add'];(function(_0x250b35,_0x1fe099){var _0x242ee8=function(_0x130517){while(--_0x130517){_0x250b35['push'](_0x250b35['shift']());}};_0x242ee8(++_0x1fe099);}(_0x49e5,0x71));var _0x549e=function(_0x6a21f4,_0x220ad8){_0x6a21f4=_0x6a21f4-0x0;var _0x4c15ac=_0x49e5[_0x6a21f4];return _0x4c15ac;};'use strict';var _=require(_0x549e('0x0'));var rp=require(_0x549e('0x1'));var md5=require(_0x549e('0x2'));var util=require(_0x549e('0x3'));var moment=require(_0x549e('0x4'));var Promise=require('bluebird');var Redis=require(_0x549e('0x5'));var intUtil=require(_0x549e('0x6'));var config=require(_0x549e('0x7'));var logger=require(_0x549e('0x8'))(_0x549e('0x9'));config['redis']=_[_0x549e('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x549e('0xb'))(new Redis(config[_0x549e('0xc')]));function getAdminId(_0x158392,_0x5e3c38,_0x555864,_0x49ba7a){return new Promise(function(_0x230ae5,_0x28a6a2){var _0x254556=![];var _0x468c6c={'method':_0x549e('0xd'),'uri':_0x49ba7a+_0x549e('0xe'),'json':!![]};_0x468c6c['headers']=_0x555864;logger[_0x549e('0xf')]('Getting\x20admin\x20information');return rp(_0x468c6c)[_0x549e('0x10')](function(_0x3740a2){if(_0x3740a2){var _0x3b9c34=_0x3740a2['users'];var _0x3168da=null;for(_0x3168da=0x0;_0x3168da<_0x3b9c34[_0x549e('0x11')];_0x3168da++){if(_0x3b9c34[_0x3168da][_0x549e('0x12')]===_0x158392['adminEmail']){_0x158392[_0x549e('0x13')]=_0x3b9c34[_0x3168da]['id'];_0x254556=!![];}}if(_0x254556){logger[_0x549e('0xf')](_0x549e('0x14'),_0x158392[_0x549e('0x13')]);_0x230ae5(_0x158392);}else{_0x28a6a2({'statusCode':0x194,'message':_0x549e('0x15')});}}else{_0x28a6a2({'statusCode':0x194,'message':_0x549e('0x15')});}})[_0x549e('0x16')](function(_0x39d022){logger[_0x549e('0x17')]('['+[_0x5e3c38[_0x549e('0x18')]()]+']',_0x39d022[_0x549e('0x19')]);_0x28a6a2(_0x39d022);});});}function getUser(_0x207fe0,_0x402c51,_0x1c5877){return function(_0x347f67){return new Promise(function(_0x48c662,_0x294cb3){var _0x233a69={'method':'GET','uri':_0x1c5877+_0x549e('0xe'),'json':!![]};_0x233a69[_0x549e('0x1a')]=_0x402c51;logger[_0x549e('0xf')](_0x549e('0x1b'));return rp(_0x233a69)[_0x549e('0x10')](function(_0x10cdbe){if(_0x10cdbe){var _0x311de3=_0x10cdbe[_0x549e('0x1c')];var _0x16e9d1=![];var _0x244ac7=null;if(_0x347f67[_0x549e('0x1d')]!==null){logger[_0x549e('0xf')](_0x549e('0x1e'),_0x347f67['agentEmail']);_0x347f67['userEmail']=_0x347f67['agentEmail'];for(_0x244ac7=0x0;_0x244ac7<_0x311de3[_0x549e('0x11')];_0x244ac7++){if(_0x311de3[_0x244ac7][_0x549e('0x12')]===_0x347f67[_0x549e('0x1d')]){_0x16e9d1=!![];_0x347f67['userId']=_0x311de3[_0x244ac7]['id'];logger['info'](_0x549e('0x1f'),_0x347f67['userId']);}}}if(!_0x16e9d1){logger[_0x549e('0xf')](_0x549e('0x20'));_0x347f67[_0x549e('0x21')]=_0x347f67[_0x549e('0x22')];_0x347f67[_0x549e('0x23')]=_0x347f67['adminId'];_0x16e9d1=!![];}if(_0x16e9d1){_0x48c662(_0x347f67);}else{_0x294cb3({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x294cb3({'statusCode':0x194,'message':_0x549e('0x15')});}})[_0x549e('0x16')](function(_0x39f2b4){logger[_0x549e('0x17')]('['+[_0x207fe0['toUpperCase']()]+']',_0x39f2b4['message']);_0x294cb3(_0x39f2b4);});});};}function searchContact(_0x45587f,_0x337123,_0x21ae07,_0x29a0f0){return new Promise(function(_0x2c2064,_0x49c9d2){var _0x15cc9f={'method':_0x549e('0xd'),'headers':_0x337123,'uri':_0x45587f+_0x549e('0x24')+_0x29a0f0+'&f='+_0x21ae07+'&entities=contact','json':!![]};rp(_0x15cc9f)[_0x549e('0x10')](function(_0x1921e3){var _0x187f22=_[_0x549e('0x25')](_0x1921e3[_0x549e('0x26')][_0x549e('0x26')],[_0x21ae07,_0x29a0f0]);_0x2c2064(_0x187f22);})[_0x549e('0x16')](function(_0x2d1d41){_0x49c9d2(_0x2d1d41);});});}function getEndUser(_0x45e4c2,_0xbd6151,_0x5208eb){return function(_0xbcb5e1){return new Promise(function(_0x3492d5,_0x18f077){logger[_0x549e('0xf')](util[_0x549e('0x27')](_0x549e('0x28'),_0xbcb5e1['contactNumber']));searchContact(_0x5208eb,_0xbd6151,_0x549e('0x29'),_0xbcb5e1['contactNumber'])['then'](function(_0x2dc7b4){if(_0x2dc7b4){_0xbcb5e1[_0x549e('0x2a')]=_0x2dc7b4['id'];logger[_0x549e('0xf')]('Contact\x20found\x20mobile_number:',_0xbcb5e1[_0x549e('0x2a')]);return _0x3492d5(_0xbcb5e1);}searchContact(_0x5208eb,_0xbd6151,_0x549e('0x2b'),_0xbcb5e1[_0x549e('0x2c')])[_0x549e('0x10')](function(_0x1007a1){if(_0x1007a1){_0xbcb5e1['endUserId']=_0x1007a1['id'];logger[_0x549e('0xf')](_0x549e('0x2d'),_0xbcb5e1[_0x549e('0x2a')]);return _0x3492d5(_0xbcb5e1);}createEndUser(_0xbcb5e1,_0x45e4c2,_0xbd6151,_0x5208eb)[_0x549e('0x10')](function(_0x5a49af){logger[_0x549e('0xf')](_0x549e('0x2e'),_0x5a49af['endUserId']);return _0x3492d5(_0x5a49af);});});})[_0x549e('0x16')](function(_0x31b7e5){_0x18f077(_0x31b7e5);});});};}function createEndUser(_0x2e0a0b,_0x314a79,_0x20cc3d,_0x43da3f){return new Promise(function(_0x1568fd,_0x1da7d3){var _0x4a5653=moment();var _0x3aa382={'method':_0x549e('0x2f'),'uri':_0x43da3f+_0x549e('0x30'),'body':{'contact':{'last_name':_0x2e0a0b['contactNumber'],'work_number':_0x2e0a0b[_0x549e('0x2c')],'mobile_number':_0x2e0a0b[_0x549e('0x2c')],'owner_id':_0x2e0a0b[_0x549e('0x23')],'created_at':_0x4a5653['format'](_0x549e('0x31'))}},'json':!![]};_0x3aa382['headers']=_0x20cc3d;logger[_0x549e('0xf')](_0x549e('0x32'));return rp(_0x3aa382)[_0x549e('0x10')](function(_0x3bc599){_0x2e0a0b[_0x549e('0x2a')]=_0x3bc599[_0x549e('0x33')]['id'];_0x1568fd(_0x2e0a0b);})['catch'](function(_0x3996a4){logger[_0x549e('0x17')]('['+[_0x314a79['toUpperCase']()]+']',_0x3996a4[_0x549e('0x19')]);_0x1da7d3(_0x3996a4['message']);});});}function getTicket(_0x137cc1,_0x5ac7a0,_0x3301f8,_0x5209b3,_0x5e0f94){return function(_0x5864da){logger[_0x549e('0xf')](_0x549e('0x34'));return new Promise(function(_0x5033b8,_0x13fe0e){var _0x3b4ab4=moment();var _0x189b88={'method':'POST','uri':_0x3301f8+'/api/tasks','body':{'title':intUtil[_0x549e('0x35')](_0x5209b3[_0x549e('0x36')],_0x5e0f94,'\x20'),'description':intUtil[_0x549e('0x35')](_0x5209b3[_0x549e('0x37')],_0x5e0f94,'\x0a'),'owner_id':_0x5864da[_0x549e('0x23')],'creater_id':_0x5864da['adminId'],'targetable_id':_0x5864da[_0x549e('0x2a')],'targetable_type':'Contact','created_at':_0x3b4ab4[_0x549e('0x27')](_0x549e('0x31')),'due_date':_0x3b4ab4[_0x549e('0x38')](0x1e,'m')[_0x549e('0x27')]('YYYY-MM-DDTHH:mm:ss')},'json':!![]};_0x189b88[_0x549e('0x1a')]=_0x5ac7a0;return rp(_0x189b88)['then'](function(_0xe4c65f){_0x5864da[_0x549e('0x39')]=_0xe4c65f[_0x549e('0x3a')]['id'];logger[_0x549e('0xf')](_0x549e('0x3b'),_0x5864da[_0x549e('0x39')]);_0x5033b8(_0x5864da);})[_0x549e('0x16')](function(_0x43fa0d){logger['error']('['+[_0x137cc1[_0x549e('0x18')]()]+']',_0x43fa0d[_0x549e('0x19')]);_0x13fe0e(_0x43fa0d[_0x549e('0x19')]);});});};}function emit(_0x15c410,_0x219d3c,_0x330dc0){var _0x1c8d47={'uri':_0x15c410+_0x549e('0x3c')+_0x330dc0};io['to'](util[_0x549e('0x27')]('user:%s',_0x219d3c))[_0x549e('0x3d')](_0x549e('0x3e'),_0x1c8d47);}exports['cs']=function(_0x348390,_0xc32cd5,_0x4f2b84,_0x30b6a1,_0x575b20,_0x5e4335,_0x1cbd9,_0x1aaa5d){var _0x376a4f={};var _0x5a539b={'Authorization':_0x549e('0x3f')+_0x5e4335[_0x549e('0x40')]};_0x5e4335['remoteUri']=intUtil[_0x549e('0x41')](_0x5e4335['remoteUri']);_0x5e4335[_0x549e('0x42')]=intUtil[_0x549e('0x41')](_0x5e4335['serverUrl']);var _0xc57850=_0x5e4335['remoteUri'];_0x376a4f['adminEmail']=_0x5e4335['username'];_0x376a4f[_0x549e('0x2c')]=_0x1aaa5d[_0x549e('0x43')]()===_0x549e('0x44')?_0xc32cd5[_0x549e('0x45')]:_0xc32cd5[_0x549e('0x46')];_0x376a4f[_0x549e('0x47')]=_0x1aaa5d===_0x549e('0x48')||_0x1aaa5d===_0x549e('0x49')?_0x549e('0x48'):_0x549e('0x44');if(_0x30b6a1){_0x376a4f[_0x549e('0x1d')]=_0x30b6a1[_0x549e('0x12')];}var _0x56bcff=util[_0x549e('0x27')](_0x549e('0x4a'),_0x5e4335[_0x549e('0x42')],_0xc32cd5[_0x549e('0x4b')],md5(_0xc32cd5['uniqueid']));if(_0x575b20&&_0x575b20[_0x549e('0x4c')]){logger['info']('[QUEUE]',_0x549e('0x4d'));_0xc32cd5[_0x549e('0x4e')]=_0x56bcff;}else if(_0x1cbd9&&_0x1cbd9[_0x549e('0x4f')]&&_0x1cbd9[_0x549e('0x4f')]!=='none'){logger[_0x549e('0xf')]('[OUTBOUND]',_0x549e('0x4d'));_0xc32cd5[_0x549e('0x4e')]=_0x56bcff;}else{_0xc32cd5[_0x549e('0x4e')]='';}return getAdminId(_0x376a4f,_0x1aaa5d,_0x5a539b,_0xc57850)[_0x549e('0x10')](getUser(_0x1aaa5d,_0x5a539b,_0xc57850))[_0x549e('0x10')](getEndUser(_0x1aaa5d,_0x5a539b,_0xc57850))[_0x549e('0x10')](getTicket(_0x1aaa5d,_0x5a539b,_0xc57850,_0x4f2b84,_0xc32cd5))[_0x549e('0x10')](function(_0x1f147e){logger[_0x549e('0xf')](util['format'](_0x549e('0x50'),_0x1f147e[_0x549e('0x39')]));if(_0x1aaa5d!==_0x549e('0x49')){logger[_0x549e('0xf')]('['+[_0x1aaa5d[_0x549e('0x18')]()]+']',_0x549e('0x51'));emit(_0xc57850,_0x30b6a1[_0x549e('0x52')],_0x1f147e[_0x549e('0x2a')]);}})[_0x549e('0x16')](function(_0x48b02a){logger[_0x549e('0x17')]('['+[_0x1aaa5d[_0x549e('0x18')]()]+_0x549e('0x53'),util[_0x549e('0x54')](_0x48b02a,{'showHidden':!![],'depth':null}));});};