Built motion from commit (unavailable).|2.5.2
[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 _0x23cd=['headers','Getting\x20user\x20list','then','users','agentEmail','Getting\x20user\x20with\x20email','length','userId','User\x20found:','message','/api/contacts/filters','Getting\x20contacts\x20filter','filters','forEach','name','All\x20Contacts','/api/contacts/view/','Searching\x20contact\x20with\x20phone','contactNumber','find','contacts','work_number','mobile_number','endUserId','Contact\x20found:','/api/contacts','format','YYYY-MM-DDTHH:mm:ss','contact','/api/tasks','getString','Subjects','Contact','task','Task\x20created:','ticketId','user:%s','emit','trigger:browser:url','apiKey','remoteUri','stripTrailingSlash','serverUrl','toLowerCase','outbound','destcalleridnum','calleridnum','callDirection','queue','unmanaged','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','Displaying\x20task\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','md5','util','bluebird','./util','../../../../config/logger','freshsales','defaults','redis','localhost','socket.io-emitter','GET','/api/selector/owners','info','Getting\x20admin\x20information','email','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase'];(function(_0x1d1c44,_0x27720b){var _0x518b07=function(_0x3d797d){while(--_0x3d797d){_0x1d1c44['push'](_0x1d1c44['shift']());}};_0x518b07(++_0x27720b);}(_0x23cd,0x8c));var _0xd23c=function(_0x5d8c92,_0x158662){_0x5d8c92=_0x5d8c92-0x0;var _0x56ad1f=_0x23cd[_0x5d8c92];return _0x56ad1f;};'use strict';var _=require(_0xd23c('0x0'));var rp=require(_0xd23c('0x1'));var md5=require(_0xd23c('0x2'));var util=require(_0xd23c('0x3'));var moment=require('moment');var Promise=require(_0xd23c('0x4'));var Redis=require('ioredis');var intUtil=require(_0xd23c('0x5'));var config=require('../../../../config/environment');var logger=require(_0xd23c('0x6'))(_0xd23c('0x7'));config['redis']=_[_0xd23c('0x8')](config[_0xd23c('0x9')],{'host':_0xd23c('0xa'),'port':0x18eb});var io=require(_0xd23c('0xb'))(new Redis(config[_0xd23c('0x9')]));function getAdminId(_0x222d4c,_0x1ee58c,_0x2ab17e,_0x17e871){return new Promise(function(_0x220e5d,_0x4aeddb){var _0x5cb820=![];var _0x3d4388={'method':_0xd23c('0xc'),'uri':_0x17e871+_0xd23c('0xd'),'json':!![]};_0x3d4388['headers']=_0x2ab17e;logger[_0xd23c('0xe')](_0xd23c('0xf'));return rp(_0x3d4388)['then'](function(_0x14aa7c){if(_0x14aa7c){var _0x5c9e5f=_0x14aa7c['users'];var _0x3f3604=null;for(_0x3f3604=0x0;_0x3f3604<_0x5c9e5f['length'];_0x3f3604++){if(_0x5c9e5f[_0x3f3604][_0xd23c('0x10')]===_0x222d4c[_0xd23c('0x11')]){_0x222d4c[_0xd23c('0x12')]=_0x5c9e5f[_0x3f3604]['id'];_0x5cb820=!![];}}if(_0x5cb820){logger[_0xd23c('0xe')](_0xd23c('0x13'),_0x222d4c[_0xd23c('0x12')]);_0x220e5d(_0x222d4c);}else{_0x4aeddb({'statusCode':0x194,'message':_0xd23c('0x14')});}}else{_0x4aeddb({'statusCode':0x194,'message':_0xd23c('0x14')});}})[_0xd23c('0x15')](function(_0x890e2){logger[_0xd23c('0x16')]('['+[_0x1ee58c[_0xd23c('0x17')]()]+']',_0x890e2['message']);_0x4aeddb(_0x890e2);});});}function getUser(_0x1d610d,_0xfb1f15,_0x555329){return function(_0x545ddf){return new Promise(function(_0x42ff93,_0x52e615){var _0x561c00={'method':_0xd23c('0xc'),'uri':_0x555329+_0xd23c('0xd'),'json':!![]};_0x561c00[_0xd23c('0x18')]=_0xfb1f15;logger[_0xd23c('0xe')](_0xd23c('0x19'));return rp(_0x561c00)[_0xd23c('0x1a')](function(_0x10e0ec){if(_0x10e0ec){var _0x216b68=_0x10e0ec[_0xd23c('0x1b')];var _0xd61ef0=![];var _0xf76faa=null;if(_0x545ddf[_0xd23c('0x1c')]!==null){logger[_0xd23c('0xe')](_0xd23c('0x1d'),_0x545ddf[_0xd23c('0x1c')]);_0x545ddf['userEmail']=_0x545ddf[_0xd23c('0x1c')];for(_0xf76faa=0x0;_0xf76faa<_0x216b68[_0xd23c('0x1e')];_0xf76faa++){if(_0x216b68[_0xf76faa][_0xd23c('0x10')]===_0x545ddf[_0xd23c('0x1c')]){_0xd61ef0=!![];_0x545ddf[_0xd23c('0x1f')]=_0x216b68[_0xf76faa]['id'];logger[_0xd23c('0xe')](_0xd23c('0x20'),_0x545ddf[_0xd23c('0x1f')]);}}}if(!_0xd61ef0){logger[_0xd23c('0xe')]('Admin\x20selected');_0x545ddf['userEmail']=_0x545ddf[_0xd23c('0x11')];_0x545ddf[_0xd23c('0x1f')]=_0x545ddf[_0xd23c('0x12')];_0xd61ef0=!![];}if(_0xd61ef0){_0x42ff93(_0x545ddf);}else{_0x52e615({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x52e615({'statusCode':0x194,'message':_0xd23c('0x14')});}})['catch'](function(_0x2f5e2a){logger[_0xd23c('0x16')]('['+[_0x1d610d[_0xd23c('0x17')]()]+']',_0x2f5e2a[_0xd23c('0x21')]);_0x52e615(_0x2f5e2a);});});};}function getEndUser(_0x493e70,_0x5b0301,_0xe60172){return function(_0x3af00b){return new Promise(function(_0x30f8d6,_0x37272e){var _0x3a64b6=0x0;var _0x55d1e4={'method':'GET','uri':_0xe60172+_0xd23c('0x22'),'json':!![]};_0x55d1e4[_0xd23c('0x18')]=_0x5b0301;logger[_0xd23c('0xe')](_0xd23c('0x23'));return rp(_0x55d1e4)[_0xd23c('0x1a')](function(_0x119242){_0x119242[_0xd23c('0x24')][_0xd23c('0x25')](function(_0x594205){if(_0x594205[_0xd23c('0x26')]===_0xd23c('0x27')){_0x3a64b6=_0x594205['id'];}});})['then'](function(){logger[_0xd23c('0xe')]('Getting\x20contact\x20list');var _0x295118={'method':_0xd23c('0xc'),'uri':_0xe60172+_0xd23c('0x28')+_0x3a64b6,'json':!![]};_0x295118[_0xd23c('0x18')]=_0x5b0301;return rp(_0x295118);})[_0xd23c('0x1a')](function(_0x3562ac){logger[_0xd23c('0xe')](_0xd23c('0x29'),_0x3af00b[_0xd23c('0x2a')]);if(_0x3562ac['contacts'][_0xd23c('0x1e')]>0x0){var _0x561498=_[_0xd23c('0x2b')](_0x3562ac[_0xd23c('0x2c')],function(_0x2c1e6c){if(_0x2c1e6c[_0xd23c('0x2d')]===_0x3af00b[_0xd23c('0x2a')]||_0x2c1e6c[_0xd23c('0x2e')]===_0x3af00b[_0xd23c('0x2a')]){return _0x2c1e6c;}});if(_0x561498){_0x3af00b[_0xd23c('0x2f')]=_0x561498['id'];logger['info'](_0xd23c('0x30'),_0x3af00b[_0xd23c('0x2f')]);_0x30f8d6(_0x3af00b);}else{return createEndUser(_0x3af00b,_0x493e70,_0x5b0301,_0xe60172)[_0xd23c('0x1a')](function(_0x213cba){logger[_0xd23c('0xe')]('Contact\x20created:',_0x3af00b['endUserId']);_0x30f8d6(_0x213cba);});}}else{return createEndUser(_0x3af00b,_0x493e70,_0x5b0301,_0xe60172)[_0xd23c('0x1a')](function(_0x9cc782){logger[_0xd23c('0xe')]('Contact\x20created:',_0x3af00b[_0xd23c('0x2f')]);_0x30f8d6(_0x9cc782);});}})[_0xd23c('0x15')](function(_0x1f0707){throw new Error(_0x1f0707[_0xd23c('0x21')]);});});};}function createEndUser(_0x1ed797,_0x30eedd,_0x5065d3,_0x3f2612){return new Promise(function(_0x15377d,_0x577c52){var _0x2e374f=moment();var _0x513922={'method':'POST','uri':_0x3f2612+_0xd23c('0x31'),'body':{'contact':{'last_name':_0x1ed797[_0xd23c('0x2a')],'work_number':_0x1ed797[_0xd23c('0x2a')],'mobile_number':_0x1ed797[_0xd23c('0x2a')],'owner_id':_0x1ed797[_0xd23c('0x1f')],'created_at':_0x2e374f[_0xd23c('0x32')](_0xd23c('0x33'))}},'json':!![]};_0x513922[_0xd23c('0x18')]=_0x5065d3;logger[_0xd23c('0xe')]('Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact');return rp(_0x513922)[_0xd23c('0x1a')](function(_0x273ac){_0x1ed797[_0xd23c('0x2f')]=_0x273ac[_0xd23c('0x34')]['id'];_0x15377d(_0x1ed797);})[_0xd23c('0x15')](function(_0x21328f){logger['error']('['+[_0x30eedd['toUpperCase']()]+']',_0x21328f[_0xd23c('0x21')]);_0x577c52(_0x21328f[_0xd23c('0x21')]);});});}function getTicket(_0x4e777a,_0x1f66c3,_0x179a76,_0x3ea249,_0x2ef326){return function(_0x44c320){logger[_0xd23c('0xe')]('Creating\x20new\x20task');return new Promise(function(_0x1370f0,_0x1437aa){var _0x1587eb=moment();var _0x40cf91={'method':'POST','uri':_0x179a76+_0xd23c('0x35'),'body':{'title':intUtil[_0xd23c('0x36')](_0x3ea249[_0xd23c('0x37')],_0x2ef326,'\x20'),'description':intUtil[_0xd23c('0x36')](_0x3ea249['Descriptions'],_0x2ef326,'\x0a'),'owner_id':_0x44c320[_0xd23c('0x1f')],'creater_id':_0x44c320[_0xd23c('0x12')],'targetable_id':_0x44c320['endUserId'],'targetable_type':_0xd23c('0x38'),'created_at':_0x1587eb[_0xd23c('0x32')](_0xd23c('0x33')),'due_date':_0x1587eb['add'](0x1e,'m')['format'](_0xd23c('0x33'))},'json':!![]};_0x40cf91['headers']=_0x1f66c3;return rp(_0x40cf91)[_0xd23c('0x1a')](function(_0x478693){_0x44c320['ticketId']=_0x478693[_0xd23c('0x39')]['id'];logger[_0xd23c('0xe')](_0xd23c('0x3a'),_0x44c320[_0xd23c('0x3b')]);_0x1370f0(_0x44c320);})[_0xd23c('0x15')](function(_0x1da1cf){logger[_0xd23c('0x16')]('['+[_0x4e777a[_0xd23c('0x17')]()]+']',_0x1da1cf['message']);_0x1437aa(_0x1da1cf[_0xd23c('0x21')]);});});};}function emit(_0x4e1a08,_0x40d773,_0x2b0d23){var _0x390590={'uri':_0x4e1a08+'/contacts/'+_0x2b0d23};io['to'](util['format'](_0xd23c('0x3c'),_0x40d773))[_0xd23c('0x3d')](_0xd23c('0x3e'),_0x390590);}exports['cs']=function(_0x23d162,_0x56a99b,_0x10b213,_0x32fcd1,_0x5a1c55,_0x5c4cd5,_0x4152ee,_0x525969){var _0x1c9a13={};var _0x24bf02={'Authorization':'Token\x20token='+_0x5c4cd5[_0xd23c('0x3f')]};_0x5c4cd5[_0xd23c('0x40')]=intUtil[_0xd23c('0x41')](_0x5c4cd5[_0xd23c('0x40')]);_0x5c4cd5[_0xd23c('0x42')]=intUtil['stripTrailingSlash'](_0x5c4cd5[_0xd23c('0x42')]);var _0x40bd03=_0x5c4cd5[_0xd23c('0x40')];_0x1c9a13[_0xd23c('0x11')]=_0x5c4cd5['username'];_0x1c9a13[_0xd23c('0x2a')]=_0x525969[_0xd23c('0x43')]()===_0xd23c('0x44')?_0x56a99b[_0xd23c('0x45')]:_0x56a99b[_0xd23c('0x46')];_0x1c9a13[_0xd23c('0x47')]=_0x525969===_0xd23c('0x48')||_0x525969===_0xd23c('0x49')?_0xd23c('0x48'):_0xd23c('0x44');if(_0x32fcd1){_0x1c9a13[_0xd23c('0x1c')]=_0x32fcd1[_0xd23c('0x10')];}var _0x3068ae=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x5c4cd5[_0xd23c('0x42')],_0x56a99b['uniqueid'],md5(_0x56a99b['uniqueid']));if(_0x5a1c55&&_0x5a1c55[_0xd23c('0x4a')]){logger[_0xd23c('0xe')](_0xd23c('0x4b'),_0xd23c('0x4c'));_0x56a99b[_0xd23c('0x4d')]=_0x3068ae;}else if(_0x4152ee&&_0x4152ee[_0xd23c('0x4e')]&&_0x4152ee[_0xd23c('0x4e')]!=='none'){logger['info']('[OUTBOUND]',_0xd23c('0x4c'));_0x56a99b[_0xd23c('0x4d')]=_0x3068ae;}else{_0x56a99b[_0xd23c('0x4d')]='';}return getAdminId(_0x1c9a13,_0x525969,_0x24bf02,_0x40bd03)[_0xd23c('0x1a')](getUser(_0x525969,_0x24bf02,_0x40bd03))[_0xd23c('0x1a')](getEndUser(_0x525969,_0x24bf02,_0x40bd03))[_0xd23c('0x1a')](getTicket(_0x525969,_0x24bf02,_0x40bd03,_0x10b213,_0x56a99b))[_0xd23c('0x1a')](function(_0x2920ec){logger[_0xd23c('0xe')](util[_0xd23c('0x32')]('The\x20ticket\x20ID\x20is:\x20%s',_0x2920ec[_0xd23c('0x3b')]));if(_0x525969!==_0xd23c('0x49')){logger[_0xd23c('0xe')]('['+[_0x525969[_0xd23c('0x17')]()]+']',_0xd23c('0x4f'));emit(_0x40bd03,_0x32fcd1['name'],_0x2920ec['endUserId']);}})[_0xd23c('0x15')](function(_0x3754a2){logger['error']('['+[_0x525969[_0xd23c('0x17')]()]+_0xd23c('0x50'),util[_0xd23c('0x51')](_0x3754a2,{'showHidden':!![],'depth':null}));});};