Built motion from commit (unavailable).|2.5.31
[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 _0xdbb1=['apiKey','remoteUri','serverUrl','stripTrailingSlash','outbound','destcalleridnum','calleridnum','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','moment','./util','../../../../config/logger','freshsales','redis','localhost','socket.io-emitter','GET','/api/selector/owners','headers','info','Getting\x20admin\x20information','then','users','length','email','Admin\x20found:','adminId','Requested\x20Resource\x20not\x20Found','error','toUpperCase','agentEmail','Getting\x20user\x20with\x20email','userEmail','userId','User\x20found:','Admin\x20selected','adminEmail','catch','message','&f=','find','contacts','contactNumber','mobile_number','endUserId','work_number','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','Contact','format','add','ticketId','task','Task\x20created:','user:%s','emit','trigger:browser:url','Token\x20token='];(function(_0x1a1910,_0x47eeb0){var _0x4f2449=function(_0x266857){while(--_0x266857){_0x1a1910['push'](_0x1a1910['shift']());}};_0x4f2449(++_0x47eeb0);}(_0xdbb1,0x105));var _0x1dbb=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0xdbb1[_0x397e5f];return _0x5302b8;};'use strict';var _=require(_0x1dbb('0x0'));var rp=require('request-promise');var md5=require('md5');var util=require('util');var moment=require(_0x1dbb('0x1'));var Promise=require('bluebird');var Redis=require('ioredis');var intUtil=require(_0x1dbb('0x2'));var config=require('../../../../config/environment');var logger=require(_0x1dbb('0x3'))(_0x1dbb('0x4'));config['redis']=_['defaults'](config[_0x1dbb('0x5')],{'host':_0x1dbb('0x6'),'port':0x18eb});var io=require(_0x1dbb('0x7'))(new Redis(config[_0x1dbb('0x5')]));function getAdminId(_0x5e622c,_0x3ffb54,_0xf42424,_0x5d2d5c){return new Promise(function(_0x208220,_0x232c1c){var _0x1e7ac5=![];var _0x3ce7e9={'method':_0x1dbb('0x8'),'uri':_0x5d2d5c+_0x1dbb('0x9'),'json':!![]};_0x3ce7e9[_0x1dbb('0xa')]=_0xf42424;logger[_0x1dbb('0xb')](_0x1dbb('0xc'));return rp(_0x3ce7e9)[_0x1dbb('0xd')](function(_0x1d3f8b){if(_0x1d3f8b){var _0x5bf42d=_0x1d3f8b[_0x1dbb('0xe')];var _0x28c292=null;for(_0x28c292=0x0;_0x28c292<_0x5bf42d[_0x1dbb('0xf')];_0x28c292++){if(_0x5bf42d[_0x28c292][_0x1dbb('0x10')]===_0x5e622c['adminEmail']){_0x5e622c['adminId']=_0x5bf42d[_0x28c292]['id'];_0x1e7ac5=!![];}}if(_0x1e7ac5){logger[_0x1dbb('0xb')](_0x1dbb('0x11'),_0x5e622c[_0x1dbb('0x12')]);_0x208220(_0x5e622c);}else{_0x232c1c({'statusCode':0x194,'message':_0x1dbb('0x13')});}}else{_0x232c1c({'statusCode':0x194,'message':_0x1dbb('0x13')});}})['catch'](function(_0x15dc51){logger[_0x1dbb('0x14')]('['+[_0x3ffb54[_0x1dbb('0x15')]()]+']',_0x15dc51['message']);_0x232c1c(_0x15dc51);});});}function getUser(_0x5b6e42,_0x363224,_0x5e78bd){return function(_0x2c2aa8){return new Promise(function(_0x376daa,_0x98b8d2){var _0x440c9f={'method':_0x1dbb('0x8'),'uri':_0x5e78bd+_0x1dbb('0x9'),'json':!![]};_0x440c9f[_0x1dbb('0xa')]=_0x363224;logger[_0x1dbb('0xb')]('Getting\x20user\x20list');return rp(_0x440c9f)['then'](function(_0x4802ba){if(_0x4802ba){var _0x4248d7=_0x4802ba[_0x1dbb('0xe')];var _0x570896=![];var _0x21e48c=null;if(_0x2c2aa8[_0x1dbb('0x16')]!==null){logger[_0x1dbb('0xb')](_0x1dbb('0x17'),_0x2c2aa8[_0x1dbb('0x16')]);_0x2c2aa8[_0x1dbb('0x18')]=_0x2c2aa8[_0x1dbb('0x16')];for(_0x21e48c=0x0;_0x21e48c<_0x4248d7[_0x1dbb('0xf')];_0x21e48c++){if(_0x4248d7[_0x21e48c][_0x1dbb('0x10')]===_0x2c2aa8[_0x1dbb('0x16')]){_0x570896=!![];_0x2c2aa8[_0x1dbb('0x19')]=_0x4248d7[_0x21e48c]['id'];logger[_0x1dbb('0xb')](_0x1dbb('0x1a'),_0x2c2aa8[_0x1dbb('0x19')]);}}}if(!_0x570896){logger[_0x1dbb('0xb')](_0x1dbb('0x1b'));_0x2c2aa8[_0x1dbb('0x18')]=_0x2c2aa8[_0x1dbb('0x1c')];_0x2c2aa8[_0x1dbb('0x19')]=_0x2c2aa8['adminId'];_0x570896=!![];}if(_0x570896){_0x376daa(_0x2c2aa8);}else{_0x98b8d2({'statusCode':0x194,'message':_0x1dbb('0x13')});}}else{_0x98b8d2({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0x1dbb('0x1d')](function(_0x4cd836){logger[_0x1dbb('0x14')]('['+[_0x5b6e42[_0x1dbb('0x15')]()]+']',_0x4cd836[_0x1dbb('0x1e')]);_0x98b8d2(_0x4cd836);});});};}function searchContact(_0x3ece10,_0x271ee5,_0x47057d,_0x5e5059){return new Promise(function(_0x14fca1,_0x410979){var _0x2c2b99={'method':'GET','headers':_0x271ee5,'uri':_0x3ece10+'/api/lookup?q='+_0x5e5059+_0x1dbb('0x1f')+_0x47057d+'&entities=contact','json':!![]};rp(_0x2c2b99)['then'](function(_0x89a61b){var _0x27c844=_[_0x1dbb('0x20')](_0x89a61b[_0x1dbb('0x21')][_0x1dbb('0x21')],[_0x47057d,_0x5e5059]);_0x14fca1(_0x27c844);})[_0x1dbb('0x1d')](function(_0x15cc71){_0x410979(_0x15cc71);});});}function getEndUser(_0x10d999,_0x172398,_0x5126a3){return function(_0x4d70fc){return new Promise(function(_0x15672c,_0x110b7a){logger[_0x1dbb('0xb')](util['format']('Searching\x20contact\x20with\x20phone\x20%s',_0x4d70fc[_0x1dbb('0x22')]));searchContact(_0x5126a3,_0x172398,_0x1dbb('0x23'),_0x4d70fc[_0x1dbb('0x22')])['then'](function(_0x4adc0c){if(_0x4adc0c){_0x4d70fc[_0x1dbb('0x24')]=_0x4adc0c['id'];logger[_0x1dbb('0xb')]('Contact\x20found\x20mobile_number:',_0x4d70fc[_0x1dbb('0x24')]);return _0x15672c(_0x4d70fc);}searchContact(_0x5126a3,_0x172398,_0x1dbb('0x25'),_0x4d70fc[_0x1dbb('0x22')])[_0x1dbb('0xd')](function(_0x57408e){if(_0x57408e){_0x4d70fc[_0x1dbb('0x24')]=_0x57408e['id'];logger[_0x1dbb('0xb')](_0x1dbb('0x26'),_0x4d70fc[_0x1dbb('0x24')]);return _0x15672c(_0x4d70fc);}createEndUser(_0x4d70fc,_0x10d999,_0x172398,_0x5126a3)[_0x1dbb('0xd')](function(_0x23c6c9){logger['info'](_0x1dbb('0x27'),_0x23c6c9[_0x1dbb('0x24')]);return _0x15672c(_0x23c6c9);});});})['catch'](function(_0x982054){_0x110b7a(_0x982054);});});};}function createEndUser(_0x3436b9,_0x22d9d6,_0xde3241,_0x55f69b){return new Promise(function(_0x562cd4,_0x394299){var _0x28db37=moment();var _0x58536e={'method':_0x1dbb('0x28'),'uri':_0x55f69b+_0x1dbb('0x29'),'body':{'contact':{'last_name':_0x3436b9[_0x1dbb('0x22')],'work_number':_0x3436b9['contactNumber'],'mobile_number':_0x3436b9[_0x1dbb('0x22')],'owner_id':_0x3436b9[_0x1dbb('0x19')],'created_at':_0x28db37['format'](_0x1dbb('0x2a'))}},'json':!![]};_0x58536e[_0x1dbb('0xa')]=_0xde3241;logger[_0x1dbb('0xb')](_0x1dbb('0x2b'));return rp(_0x58536e)[_0x1dbb('0xd')](function(_0x3bbf81){_0x3436b9[_0x1dbb('0x24')]=_0x3bbf81[_0x1dbb('0x2c')]['id'];_0x562cd4(_0x3436b9);})[_0x1dbb('0x1d')](function(_0x476fc7){logger[_0x1dbb('0x14')]('['+[_0x22d9d6[_0x1dbb('0x15')]()]+']',_0x476fc7[_0x1dbb('0x1e')]);_0x394299(_0x476fc7['message']);});});}function getTicket(_0x1b94ab,_0x142c74,_0x114ae4,_0x2af34d,_0x124452){return function(_0x2cad14){logger[_0x1dbb('0xb')](_0x1dbb('0x2d'));return new Promise(function(_0x3f331f,_0x3821c7){var _0x356c69=moment();var _0x23b7d0={'method':_0x1dbb('0x28'),'uri':_0x114ae4+'/api/tasks','body':{'title':intUtil[_0x1dbb('0x2e')](_0x2af34d[_0x1dbb('0x2f')],_0x124452,'\x20'),'description':intUtil[_0x1dbb('0x2e')](_0x2af34d[_0x1dbb('0x30')],_0x124452,'\x0a'),'owner_id':_0x2cad14['userId'],'creater_id':_0x2cad14[_0x1dbb('0x12')],'targetable_id':_0x2cad14[_0x1dbb('0x24')],'targetable_type':_0x1dbb('0x31'),'created_at':_0x356c69[_0x1dbb('0x32')](_0x1dbb('0x2a')),'due_date':_0x356c69[_0x1dbb('0x33')](0x1e,'m')[_0x1dbb('0x32')](_0x1dbb('0x2a'))},'json':!![]};_0x23b7d0['headers']=_0x142c74;return rp(_0x23b7d0)[_0x1dbb('0xd')](function(_0x426c8c){_0x2cad14[_0x1dbb('0x34')]=_0x426c8c[_0x1dbb('0x35')]['id'];logger[_0x1dbb('0xb')](_0x1dbb('0x36'),_0x2cad14['ticketId']);_0x3f331f(_0x2cad14);})[_0x1dbb('0x1d')](function(_0x4a8507){logger[_0x1dbb('0x14')]('['+[_0x1b94ab[_0x1dbb('0x15')]()]+']',_0x4a8507['message']);_0x3821c7(_0x4a8507[_0x1dbb('0x1e')]);});});};}function emit(_0x4349a6,_0x10d694,_0x13972d){var _0x3c76b5={'uri':_0x4349a6+'/contacts/'+_0x13972d};io['to'](util[_0x1dbb('0x32')](_0x1dbb('0x37'),_0x10d694))[_0x1dbb('0x38')](_0x1dbb('0x39'),_0x3c76b5);}exports['cs']=function(_0x19700d,_0x4a9295,_0x17e8e0,_0x520fe4,_0x5bad3f,_0x1273a0,_0x5dd627,_0x33969b){var _0xb47fb7={};var _0x23e527={'Authorization':_0x1dbb('0x3a')+_0x1273a0[_0x1dbb('0x3b')]};_0x1273a0[_0x1dbb('0x3c')]=intUtil['stripTrailingSlash'](_0x1273a0[_0x1dbb('0x3c')]);_0x1273a0[_0x1dbb('0x3d')]=intUtil[_0x1dbb('0x3e')](_0x1273a0[_0x1dbb('0x3d')]);var _0x98cd04=_0x1273a0[_0x1dbb('0x3c')];_0xb47fb7['adminEmail']=_0x1273a0['username'];_0xb47fb7[_0x1dbb('0x22')]=_0x33969b['toLowerCase']()===_0x1dbb('0x3f')?_0x4a9295[_0x1dbb('0x40')]:_0x4a9295[_0x1dbb('0x41')];_0xb47fb7['callDirection']=_0x33969b===_0x1dbb('0x42')||_0x33969b===_0x1dbb('0x43')?_0x1dbb('0x42'):_0x1dbb('0x3f');if(_0x520fe4){_0xb47fb7['agentEmail']=_0x520fe4[_0x1dbb('0x10')];}var _0x46bf50=util[_0x1dbb('0x32')](_0x1dbb('0x44'),_0x1273a0[_0x1dbb('0x3d')],_0x4a9295[_0x1dbb('0x45')],md5(_0x4a9295[_0x1dbb('0x45')]));if(_0x5bad3f&&_0x5bad3f[_0x1dbb('0x46')]){logger[_0x1dbb('0xb')](_0x1dbb('0x47'),_0x1dbb('0x48'));_0x4a9295[_0x1dbb('0x49')]=_0x46bf50;}else if(_0x5dd627&&_0x5dd627[_0x1dbb('0x4a')]&&_0x5dd627[_0x1dbb('0x4a')]!=='none'){logger['info'](_0x1dbb('0x4b'),'Recording\x20is\x20enabled!');_0x4a9295[_0x1dbb('0x49')]=_0x46bf50;}else{_0x4a9295[_0x1dbb('0x49')]='';}return getAdminId(_0xb47fb7,_0x33969b,_0x23e527,_0x98cd04)[_0x1dbb('0xd')](getUser(_0x33969b,_0x23e527,_0x98cd04))[_0x1dbb('0xd')](getEndUser(_0x33969b,_0x23e527,_0x98cd04))[_0x1dbb('0xd')](getTicket(_0x33969b,_0x23e527,_0x98cd04,_0x17e8e0,_0x4a9295))[_0x1dbb('0xd')](function(_0x3525f2){logger[_0x1dbb('0xb')](util[_0x1dbb('0x32')](_0x1dbb('0x4c'),_0x3525f2[_0x1dbb('0x34')]));if(_0x33969b!=='unmanaged'){logger[_0x1dbb('0xb')]('['+[_0x33969b[_0x1dbb('0x15')]()]+']','Displaying\x20task\x20in\x20a\x20new\x20tab...');emit(_0x98cd04,_0x520fe4[_0x1dbb('0x4d')],_0x3525f2[_0x1dbb('0x24')]);}})[_0x1dbb('0x1d')](function(_0x51f5b6){logger[_0x1dbb('0x14')]('['+[_0x33969b[_0x1dbb('0x15')]()]+_0x1dbb('0x4e'),util[_0x1dbb('0x4f')](_0x51f5b6,{'showHidden':!![],'depth':null}));});};