Built motion from commit (unavailable).|2.5.16
[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 _0x455d=['none','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','md5','util','moment','ioredis','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','defaults','localhost','GET','headers','info','Getting\x20admin\x20information','then','length','email','adminEmail','Admin\x20found:','adminId','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','/api/selector/owners','Getting\x20user\x20list','agentEmail','userEmail','userId','User\x20found:','message','&f=','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','endUserId','Contact\x20found\x20mobile_number:','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','/api/tasks','getString','Subjects','Descriptions','add','ticketId','task','Task\x20created:','user:%s','trigger:browser:url','apiKey','remoteUri','stripTrailingSlash','serverUrl','username','outbound','calleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat'];(function(_0x3f467f,_0x389c73){var _0x2d0956=function(_0x1e9e5a){while(--_0x1e9e5a){_0x3f467f['push'](_0x3f467f['shift']());}};_0x2d0956(++_0x389c73);}(_0x455d,0x190));var _0xd455=function(_0x40e4d8,_0x5dde41){_0x40e4d8=_0x40e4d8-0x0;var _0x532097=_0x455d[_0x40e4d8];return _0x532097;};'use strict';var _=require('lodash');var rp=require('request-promise');var md5=require(_0xd455('0x0'));var util=require(_0xd455('0x1'));var moment=require(_0xd455('0x2'));var Promise=require('bluebird');var Redis=require(_0xd455('0x3'));var intUtil=require(_0xd455('0x4'));var config=require(_0xd455('0x5'));var logger=require(_0xd455('0x6'))(_0xd455('0x7'));config[_0xd455('0x8')]=_[_0xd455('0x9')](config[_0xd455('0x8')],{'host':_0xd455('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xd455('0x8')]));function getAdminId(_0x2e530a,_0x4ef696,_0x301f53,_0x1ac9e1){return new Promise(function(_0xed6c5f,_0x30c54b){var _0x5cdf73=![];var _0x298c16={'method':_0xd455('0xb'),'uri':_0x1ac9e1+'/api/selector/owners','json':!![]};_0x298c16[_0xd455('0xc')]=_0x301f53;logger[_0xd455('0xd')](_0xd455('0xe'));return rp(_0x298c16)[_0xd455('0xf')](function(_0xa03670){if(_0xa03670){var _0xa5d58f=_0xa03670['users'];var _0x488c4b=null;for(_0x488c4b=0x0;_0x488c4b<_0xa5d58f[_0xd455('0x10')];_0x488c4b++){if(_0xa5d58f[_0x488c4b][_0xd455('0x11')]===_0x2e530a[_0xd455('0x12')]){_0x2e530a['adminId']=_0xa5d58f[_0x488c4b]['id'];_0x5cdf73=!![];}}if(_0x5cdf73){logger[_0xd455('0xd')](_0xd455('0x13'),_0x2e530a[_0xd455('0x14')]);_0xed6c5f(_0x2e530a);}else{_0x30c54b({'statusCode':0x194,'message':_0xd455('0x15')});}}else{_0x30c54b({'statusCode':0x194,'message':_0xd455('0x15')});}})[_0xd455('0x16')](function(_0xbcde64){logger[_0xd455('0x17')]('['+[_0x4ef696[_0xd455('0x18')]()]+']',_0xbcde64['message']);_0x30c54b(_0xbcde64);});});}function getUser(_0xb312dd,_0x35a9fc,_0x6e3de8){return function(_0x33e2ad){return new Promise(function(_0x22658c,_0x1408a3){var _0x35d879={'method':'GET','uri':_0x6e3de8+_0xd455('0x19'),'json':!![]};_0x35d879['headers']=_0x35a9fc;logger[_0xd455('0xd')](_0xd455('0x1a'));return rp(_0x35d879)[_0xd455('0xf')](function(_0x1247c1){if(_0x1247c1){var _0x5926bd=_0x1247c1['users'];var _0x636ec3=![];var _0xfb071c=null;if(_0x33e2ad[_0xd455('0x1b')]!==null){logger[_0xd455('0xd')]('Getting\x20user\x20with\x20email',_0x33e2ad[_0xd455('0x1b')]);_0x33e2ad[_0xd455('0x1c')]=_0x33e2ad[_0xd455('0x1b')];for(_0xfb071c=0x0;_0xfb071c<_0x5926bd[_0xd455('0x10')];_0xfb071c++){if(_0x5926bd[_0xfb071c][_0xd455('0x11')]===_0x33e2ad[_0xd455('0x1b')]){_0x636ec3=!![];_0x33e2ad[_0xd455('0x1d')]=_0x5926bd[_0xfb071c]['id'];logger['info'](_0xd455('0x1e'),_0x33e2ad['userId']);}}}if(!_0x636ec3){logger['info']('Admin\x20selected');_0x33e2ad[_0xd455('0x1c')]=_0x33e2ad[_0xd455('0x12')];_0x33e2ad['userId']=_0x33e2ad[_0xd455('0x14')];_0x636ec3=!![];}if(_0x636ec3){_0x22658c(_0x33e2ad);}else{_0x1408a3({'statusCode':0x194,'message':_0xd455('0x15')});}}else{_0x1408a3({'statusCode':0x194,'message':_0xd455('0x15')});}})[_0xd455('0x16')](function(_0x26a9f4){logger[_0xd455('0x17')]('['+[_0xb312dd['toUpperCase']()]+']',_0x26a9f4[_0xd455('0x1f')]);_0x1408a3(_0x26a9f4);});});};}function searchContact(_0x1b3c06,_0x3837ef,_0x1e5b52,_0x465892){return new Promise(function(_0x219be3,_0x30eff6){var _0x1cc374={'method':_0xd455('0xb'),'headers':_0x3837ef,'uri':_0x1b3c06+'/api/lookup?q='+_0x465892+_0xd455('0x20')+_0x1e5b52+'&entities=contact','json':!![]};rp(_0x1cc374)[_0xd455('0xf')](function(_0x5ebe00){var _0xad6a6a=_[_0xd455('0x21')](_0x5ebe00[_0xd455('0x22')]['contacts'],[_0x1e5b52,_0x465892]);_0x219be3(_0xad6a6a);})[_0xd455('0x16')](function(_0x1cdfe4){_0x30eff6(_0x1cdfe4);});});}function getEndUser(_0x33983e,_0x5e3d85,_0x5abe24){return function(_0x20d4ad){return new Promise(function(_0x5c90fe,_0x4b8679){logger[_0xd455('0xd')](util[_0xd455('0x23')](_0xd455('0x24'),_0x20d4ad[_0xd455('0x25')]));searchContact(_0x5abe24,_0x5e3d85,_0xd455('0x26'),_0x20d4ad[_0xd455('0x25')])[_0xd455('0xf')](function(_0x9e90f1){if(_0x9e90f1){_0x20d4ad[_0xd455('0x27')]=_0x9e90f1['id'];logger[_0xd455('0xd')](_0xd455('0x28'),_0x20d4ad[_0xd455('0x27')]);return _0x5c90fe(_0x20d4ad);}searchContact(_0x5abe24,_0x5e3d85,'work_number',_0x20d4ad[_0xd455('0x25')])[_0xd455('0xf')](function(_0x352722){if(_0x352722){_0x20d4ad[_0xd455('0x27')]=_0x352722['id'];logger[_0xd455('0xd')](_0xd455('0x29'),_0x20d4ad[_0xd455('0x27')]);return _0x5c90fe(_0x20d4ad);}createEndUser(_0x20d4ad,_0x33983e,_0x5e3d85,_0x5abe24)[_0xd455('0xf')](function(_0x37fc13){logger[_0xd455('0xd')](_0xd455('0x2a'),_0x37fc13[_0xd455('0x27')]);return _0x5c90fe(_0x37fc13);});});})[_0xd455('0x16')](function(_0xd7d621){_0x4b8679(_0xd7d621);});});};}function createEndUser(_0x44e8c0,_0x38dd86,_0x2a4fbe,_0x28f076){return new Promise(function(_0x43ee61,_0x2c8fb7){var _0x21c2ff=moment();var _0x3b2c19={'method':_0xd455('0x2b'),'uri':_0x28f076+_0xd455('0x2c'),'body':{'contact':{'last_name':_0x44e8c0[_0xd455('0x25')],'work_number':_0x44e8c0[_0xd455('0x25')],'mobile_number':_0x44e8c0[_0xd455('0x25')],'owner_id':_0x44e8c0[_0xd455('0x1d')],'created_at':_0x21c2ff[_0xd455('0x23')](_0xd455('0x2d'))}},'json':!![]};_0x3b2c19[_0xd455('0xc')]=_0x2a4fbe;logger[_0xd455('0xd')](_0xd455('0x2e'));return rp(_0x3b2c19)['then'](function(_0x5b6006){_0x44e8c0['endUserId']=_0x5b6006[_0xd455('0x2f')]['id'];_0x43ee61(_0x44e8c0);})[_0xd455('0x16')](function(_0x4bde0f){logger[_0xd455('0x17')]('['+[_0x38dd86[_0xd455('0x18')]()]+']',_0x4bde0f[_0xd455('0x1f')]);_0x2c8fb7(_0x4bde0f[_0xd455('0x1f')]);});});}function getTicket(_0x3630a0,_0x358645,_0x5e1de5,_0x8ba1c4,_0x5db84f){return function(_0x339b00){logger[_0xd455('0xd')]('Creating\x20new\x20task');return new Promise(function(_0x277109,_0x144718){var _0x47f309=moment();var _0x274ccd={'method':_0xd455('0x2b'),'uri':_0x5e1de5+_0xd455('0x30'),'body':{'title':intUtil[_0xd455('0x31')](_0x8ba1c4[_0xd455('0x32')],_0x5db84f,'\x20'),'description':intUtil[_0xd455('0x31')](_0x8ba1c4[_0xd455('0x33')],_0x5db84f,'\x0a'),'owner_id':_0x339b00[_0xd455('0x1d')],'creater_id':_0x339b00[_0xd455('0x14')],'targetable_id':_0x339b00['endUserId'],'targetable_type':'Contact','created_at':_0x47f309['format']('YYYY-MM-DDTHH:mm:ss'),'due_date':_0x47f309[_0xd455('0x34')](0x1e,'m')[_0xd455('0x23')](_0xd455('0x2d'))},'json':!![]};_0x274ccd['headers']=_0x358645;return rp(_0x274ccd)[_0xd455('0xf')](function(_0x555d08){_0x339b00[_0xd455('0x35')]=_0x555d08[_0xd455('0x36')]['id'];logger[_0xd455('0xd')](_0xd455('0x37'),_0x339b00['ticketId']);_0x277109(_0x339b00);})['catch'](function(_0x28c43b){logger[_0xd455('0x17')]('['+[_0x3630a0[_0xd455('0x18')]()]+']',_0x28c43b[_0xd455('0x1f')]);_0x144718(_0x28c43b[_0xd455('0x1f')]);});});};}function emit(_0x4347c9,_0x44ea82,_0x70c89b){var _0x1f1e5d={'uri':_0x4347c9+'/contacts/'+_0x70c89b};io['to'](util[_0xd455('0x23')](_0xd455('0x38'),_0x44ea82))['emit'](_0xd455('0x39'),_0x1f1e5d);}exports['cs']=function(_0x3a2393,_0x2ea764,_0x805ed2,_0x4a2c4a,_0x540739,_0x1719f7,_0x1dd769,_0xd8a17b){var _0x3844db={};var _0x586947={'Authorization':'Token\x20token='+_0x1719f7[_0xd455('0x3a')]};_0x1719f7[_0xd455('0x3b')]=intUtil[_0xd455('0x3c')](_0x1719f7['remoteUri']);_0x1719f7[_0xd455('0x3d')]=intUtil[_0xd455('0x3c')](_0x1719f7['serverUrl']);var _0x34b73b=_0x1719f7['remoteUri'];_0x3844db[_0xd455('0x12')]=_0x1719f7[_0xd455('0x3e')];_0x3844db[_0xd455('0x25')]=_0xd8a17b['toLowerCase']()===_0xd455('0x3f')?_0x2ea764['destcalleridnum']:_0x2ea764[_0xd455('0x40')];_0x3844db[_0xd455('0x41')]=_0xd8a17b===_0xd455('0x42')||_0xd8a17b===_0xd455('0x43')?'queue':_0xd455('0x3f');if(_0x4a2c4a){_0x3844db[_0xd455('0x1b')]=_0x4a2c4a[_0xd455('0x11')];}var _0xd805e2=util[_0xd455('0x23')](_0xd455('0x44'),_0x1719f7[_0xd455('0x3d')],_0x2ea764[_0xd455('0x45')],md5(_0x2ea764[_0xd455('0x45')]));if(_0x540739&&_0x540739['monitor_format']){logger['info'](_0xd455('0x46'),_0xd455('0x47'));_0x2ea764[_0xd455('0x48')]=_0xd805e2;}else if(_0x1dd769&&_0x1dd769[_0xd455('0x49')]&&_0x1dd769[_0xd455('0x49')]!==_0xd455('0x4a')){logger[_0xd455('0xd')]('[OUTBOUND]',_0xd455('0x47'));_0x2ea764['recordingURL']=_0xd805e2;}else{_0x2ea764['recordingURL']='';}return getAdminId(_0x3844db,_0xd8a17b,_0x586947,_0x34b73b)[_0xd455('0xf')](getUser(_0xd8a17b,_0x586947,_0x34b73b))[_0xd455('0xf')](getEndUser(_0xd8a17b,_0x586947,_0x34b73b))['then'](getTicket(_0xd8a17b,_0x586947,_0x34b73b,_0x805ed2,_0x2ea764))['then'](function(_0x2ae06e){logger[_0xd455('0xd')](util[_0xd455('0x23')](_0xd455('0x4b'),_0x2ae06e[_0xd455('0x35')]));if(_0xd8a17b!==_0xd455('0x43')){logger[_0xd455('0xd')]('['+[_0xd8a17b[_0xd455('0x18')]()]+']',_0xd455('0x4c'));emit(_0x34b73b,_0x4a2c4a[_0xd455('0x4d')],_0x2ae06e[_0xd455('0x27')]);}})[_0xd455('0x16')](function(_0x56fb6d){logger['error']('['+[_0xd8a17b[_0xd455('0x18')]()]+_0xd455('0x4e'),util['inspect'](_0x56fb6d,{'showHidden':!![],'depth':null}));});};