Built motion from commit (unavailable).|2.5.19
[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 _0x4745=['bluebird','ioredis','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','localhost','GET','/api/selector/owners','headers','info','then','users','length','email','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','message','Getting\x20user\x20with\x20email','agentEmail','userEmail','userId','Admin\x20selected','toUpperCase','&entities=contact','contacts','catch','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','endUserId','work_number','Contact\x20found\x20work_number:','Contact\x20created:','format','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','error','Creating\x20new\x20task','POST','/api/tasks','Subjects','getString','Descriptions','Contact','ticketId','task','Task\x20created:','/contacts/','emit','trigger:browser:url','apiKey','remoteUri','stripTrailingSlash','serverUrl','username','toLowerCase','outbound','destcalleridnum','calleridnum','callDirection','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','The\x20ticket\x20ID\x20is:\x20%s','unmanaged','Displaying\x20task\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','md5','util','moment'];(function(_0x12e1fa,_0x44e981){var _0x1e743e=function(_0x56e0c1){while(--_0x56e0c1){_0x12e1fa['push'](_0x12e1fa['shift']());}};_0x1e743e(++_0x44e981);}(_0x4745,0x1e7));var _0x5474=function(_0x3899d1,_0x4aa04c){_0x3899d1=_0x3899d1-0x0;var _0xeb4a7d=_0x4745[_0x3899d1];return _0xeb4a7d;};'use strict';var _=require(_0x5474('0x0'));var rp=require(_0x5474('0x1'));var md5=require(_0x5474('0x2'));var util=require(_0x5474('0x3'));var moment=require(_0x5474('0x4'));var Promise=require(_0x5474('0x5'));var Redis=require(_0x5474('0x6'));var intUtil=require(_0x5474('0x7'));var config=require(_0x5474('0x8'));var logger=require(_0x5474('0x9'))(_0x5474('0xa'));config[_0x5474('0xb')]=_['defaults'](config[_0x5474('0xb')],{'host':_0x5474('0xc'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x5474('0xb')]));function getAdminId(_0x5d778b,_0x902ba8,_0x3c8860,_0x4fae2b){return new Promise(function(_0xf876f8,_0x11dcb2){var _0x46b4b3=![];var _0x26cceb={'method':_0x5474('0xd'),'uri':_0x4fae2b+_0x5474('0xe'),'json':!![]};_0x26cceb[_0x5474('0xf')]=_0x3c8860;logger[_0x5474('0x10')]('Getting\x20admin\x20information');return rp(_0x26cceb)[_0x5474('0x11')](function(_0x2bb3c1){if(_0x2bb3c1){var _0xdc4c23=_0x2bb3c1[_0x5474('0x12')];var _0x10eac7=null;for(_0x10eac7=0x0;_0x10eac7<_0xdc4c23[_0x5474('0x13')];_0x10eac7++){if(_0xdc4c23[_0x10eac7][_0x5474('0x14')]===_0x5d778b[_0x5474('0x15')]){_0x5d778b[_0x5474('0x16')]=_0xdc4c23[_0x10eac7]['id'];_0x46b4b3=!![];}}if(_0x46b4b3){logger['info'](_0x5474('0x17'),_0x5d778b[_0x5474('0x16')]);_0xf876f8(_0x5d778b);}else{_0x11dcb2({'statusCode':0x194,'message':_0x5474('0x18')});}}else{_0x11dcb2({'statusCode':0x194,'message':_0x5474('0x18')});}})['catch'](function(_0x540e31){logger['error']('['+[_0x902ba8['toUpperCase']()]+']',_0x540e31[_0x5474('0x19')]);_0x11dcb2(_0x540e31);});});}function getUser(_0x172bcb,_0x2da774,_0x532718){return function(_0x3da004){return new Promise(function(_0x2be746,_0x56dbfa){var _0x22b37d={'method':_0x5474('0xd'),'uri':_0x532718+_0x5474('0xe'),'json':!![]};_0x22b37d[_0x5474('0xf')]=_0x2da774;logger[_0x5474('0x10')]('Getting\x20user\x20list');return rp(_0x22b37d)[_0x5474('0x11')](function(_0x5f31a9){if(_0x5f31a9){var _0x3023cd=_0x5f31a9[_0x5474('0x12')];var _0x50d3a1=![];var _0x504826=null;if(_0x3da004['agentEmail']!==null){logger[_0x5474('0x10')](_0x5474('0x1a'),_0x3da004[_0x5474('0x1b')]);_0x3da004[_0x5474('0x1c')]=_0x3da004[_0x5474('0x1b')];for(_0x504826=0x0;_0x504826<_0x3023cd[_0x5474('0x13')];_0x504826++){if(_0x3023cd[_0x504826][_0x5474('0x14')]===_0x3da004[_0x5474('0x1b')]){_0x50d3a1=!![];_0x3da004[_0x5474('0x1d')]=_0x3023cd[_0x504826]['id'];logger[_0x5474('0x10')]('User\x20found:',_0x3da004['userId']);}}}if(!_0x50d3a1){logger[_0x5474('0x10')](_0x5474('0x1e'));_0x3da004[_0x5474('0x1c')]=_0x3da004['adminEmail'];_0x3da004[_0x5474('0x1d')]=_0x3da004['adminId'];_0x50d3a1=!![];}if(_0x50d3a1){_0x2be746(_0x3da004);}else{_0x56dbfa({'statusCode':0x194,'message':_0x5474('0x18')});}}else{_0x56dbfa({'statusCode':0x194,'message':_0x5474('0x18')});}})['catch'](function(_0x2a5f03){logger['error']('['+[_0x172bcb[_0x5474('0x1f')]()]+']',_0x2a5f03['message']);_0x56dbfa(_0x2a5f03);});});};}function searchContact(_0xe9dcbf,_0x1384e4,_0x2a8730,_0x5865fe){return new Promise(function(_0x574ed6,_0x42b99a){var _0x479e44={'method':'GET','headers':_0x1384e4,'uri':_0xe9dcbf+'/api/lookup?q='+_0x5865fe+'&f='+_0x2a8730+_0x5474('0x20'),'json':!![]};rp(_0x479e44)[_0x5474('0x11')](function(_0x54cd0c){var _0xdc7272=_['find'](_0x54cd0c[_0x5474('0x21')]['contacts'],[_0x2a8730,_0x5865fe]);_0x574ed6(_0xdc7272);})[_0x5474('0x22')](function(_0x530cdb){_0x42b99a(_0x530cdb);});});}function getEndUser(_0x24dd69,_0x596221,_0x1d5981){return function(_0x46418e){return new Promise(function(_0x3487ca,_0x45469c){logger['info'](util['format'](_0x5474('0x23'),_0x46418e[_0x5474('0x24')]));searchContact(_0x1d5981,_0x596221,_0x5474('0x25'),_0x46418e[_0x5474('0x24')])['then'](function(_0x5e001d){if(_0x5e001d){_0x46418e[_0x5474('0x26')]=_0x5e001d['id'];logger[_0x5474('0x10')]('Contact\x20found\x20mobile_number:',_0x46418e[_0x5474('0x26')]);return _0x3487ca(_0x46418e);}searchContact(_0x1d5981,_0x596221,_0x5474('0x27'),_0x46418e[_0x5474('0x24')])[_0x5474('0x11')](function(_0x4d32ce){if(_0x4d32ce){_0x46418e[_0x5474('0x26')]=_0x4d32ce['id'];logger[_0x5474('0x10')](_0x5474('0x28'),_0x46418e['endUserId']);return _0x3487ca(_0x46418e);}createEndUser(_0x46418e,_0x24dd69,_0x596221,_0x1d5981)[_0x5474('0x11')](function(_0x2b8d66){logger[_0x5474('0x10')](_0x5474('0x29'),_0x2b8d66['endUserId']);return _0x3487ca(_0x2b8d66);});});})['catch'](function(_0x30d4a2){_0x45469c(_0x30d4a2);});});};}function createEndUser(_0x3eccef,_0x190d9d,_0x8b46d0,_0x5cca16){return new Promise(function(_0x342e8c,_0x42a122){var _0x13b56b=moment();var _0x22009e={'method':'POST','uri':_0x5cca16+'/api/contacts','body':{'contact':{'last_name':_0x3eccef['contactNumber'],'work_number':_0x3eccef[_0x5474('0x24')],'mobile_number':_0x3eccef['contactNumber'],'owner_id':_0x3eccef[_0x5474('0x1d')],'created_at':_0x13b56b[_0x5474('0x2a')](_0x5474('0x2b'))}},'json':!![]};_0x22009e[_0x5474('0xf')]=_0x8b46d0;logger[_0x5474('0x10')](_0x5474('0x2c'));return rp(_0x22009e)[_0x5474('0x11')](function(_0x1adfa5){_0x3eccef[_0x5474('0x26')]=_0x1adfa5['contact']['id'];_0x342e8c(_0x3eccef);})[_0x5474('0x22')](function(_0x38b0a6){logger[_0x5474('0x2d')]('['+[_0x190d9d[_0x5474('0x1f')]()]+']',_0x38b0a6['message']);_0x42a122(_0x38b0a6[_0x5474('0x19')]);});});}function getTicket(_0x545ce4,_0x25aa0a,_0x428fda,_0x5cc875,_0x1f64fb){return function(_0x2df4e8){logger['info'](_0x5474('0x2e'));return new Promise(function(_0x222d07,_0x55a17f){var _0x24692d=moment();var _0x547c72={'method':_0x5474('0x2f'),'uri':_0x428fda+_0x5474('0x30'),'body':{'title':intUtil['getString'](_0x5cc875[_0x5474('0x31')],_0x1f64fb,'\x20'),'description':intUtil[_0x5474('0x32')](_0x5cc875[_0x5474('0x33')],_0x1f64fb,'\x0a'),'owner_id':_0x2df4e8['userId'],'creater_id':_0x2df4e8[_0x5474('0x16')],'targetable_id':_0x2df4e8[_0x5474('0x26')],'targetable_type':_0x5474('0x34'),'created_at':_0x24692d[_0x5474('0x2a')]('YYYY-MM-DDTHH:mm:ss'),'due_date':_0x24692d['add'](0x1e,'m')[_0x5474('0x2a')]('YYYY-MM-DDTHH:mm:ss')},'json':!![]};_0x547c72[_0x5474('0xf')]=_0x25aa0a;return rp(_0x547c72)[_0x5474('0x11')](function(_0x49ec60){_0x2df4e8[_0x5474('0x35')]=_0x49ec60[_0x5474('0x36')]['id'];logger['info'](_0x5474('0x37'),_0x2df4e8[_0x5474('0x35')]);_0x222d07(_0x2df4e8);})['catch'](function(_0x54e6cb){logger[_0x5474('0x2d')]('['+[_0x545ce4[_0x5474('0x1f')]()]+']',_0x54e6cb['message']);_0x55a17f(_0x54e6cb[_0x5474('0x19')]);});});};}function emit(_0x3eaf7f,_0x14f4d3,_0x46bde7){var _0x52863b={'uri':_0x3eaf7f+_0x5474('0x38')+_0x46bde7};io['to'](util[_0x5474('0x2a')]('user:%s',_0x14f4d3))[_0x5474('0x39')](_0x5474('0x3a'),_0x52863b);}exports['cs']=function(_0x3c59bb,_0x3a64de,_0xb35d82,_0x37e30a,_0x2c63a0,_0xf33e49,_0x4327d9,_0x21d29f){var _0x3c9cb2={};var _0x33a269={'Authorization':'Token\x20token='+_0xf33e49[_0x5474('0x3b')]};_0xf33e49[_0x5474('0x3c')]=intUtil[_0x5474('0x3d')](_0xf33e49[_0x5474('0x3c')]);_0xf33e49['serverUrl']=intUtil[_0x5474('0x3d')](_0xf33e49[_0x5474('0x3e')]);var _0x6e9737=_0xf33e49[_0x5474('0x3c')];_0x3c9cb2[_0x5474('0x15')]=_0xf33e49[_0x5474('0x3f')];_0x3c9cb2[_0x5474('0x24')]=_0x21d29f[_0x5474('0x40')]()===_0x5474('0x41')?_0x3a64de[_0x5474('0x42')]:_0x3a64de[_0x5474('0x43')];_0x3c9cb2[_0x5474('0x44')]=_0x21d29f===_0x5474('0x45')||_0x21d29f==='unmanaged'?'queue':'outbound';if(_0x37e30a){_0x3c9cb2[_0x5474('0x1b')]=_0x37e30a[_0x5474('0x14')];}var _0x43b276=util[_0x5474('0x2a')](_0x5474('0x46'),_0xf33e49[_0x5474('0x3e')],_0x3a64de[_0x5474('0x47')],md5(_0x3a64de[_0x5474('0x47')]));if(_0x2c63a0&&_0x2c63a0[_0x5474('0x48')]){logger[_0x5474('0x10')]('[QUEUE]',_0x5474('0x49'));_0x3a64de[_0x5474('0x4a')]=_0x43b276;}else if(_0x4327d9&&_0x4327d9[_0x5474('0x4b')]&&_0x4327d9[_0x5474('0x4b')]!==_0x5474('0x4c')){logger[_0x5474('0x10')]('[OUTBOUND]','Recording\x20is\x20enabled!');_0x3a64de[_0x5474('0x4a')]=_0x43b276;}else{_0x3a64de['recordingURL']='';}return getAdminId(_0x3c9cb2,_0x21d29f,_0x33a269,_0x6e9737)[_0x5474('0x11')](getUser(_0x21d29f,_0x33a269,_0x6e9737))[_0x5474('0x11')](getEndUser(_0x21d29f,_0x33a269,_0x6e9737))[_0x5474('0x11')](getTicket(_0x21d29f,_0x33a269,_0x6e9737,_0xb35d82,_0x3a64de))['then'](function(_0x3da4cd){logger['info'](util[_0x5474('0x2a')](_0x5474('0x4d'),_0x3da4cd[_0x5474('0x35')]));if(_0x21d29f!==_0x5474('0x4e')){logger[_0x5474('0x10')]('['+[_0x21d29f[_0x5474('0x1f')]()]+']',_0x5474('0x4f'));emit(_0x6e9737,_0x37e30a['name'],_0x3da4cd['endUserId']);}})[_0x5474('0x22')](function(_0x42d6ba){logger['error']('['+[_0x21d29f[_0x5474('0x1f')]()]+_0x5474('0x50'),util[_0x5474('0x51')](_0x42d6ba,{'showHidden':!![],'depth':null}));});};