Built motion from commit (unavailable).|2.4.18
[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 _0x220c=['none','The\x20ticket\x20ID\x20is:\x20%s','ticketId','Displaying\x20task\x20in\x20a\x20new\x20tab...','inspect','lodash','request-promise','md5','util','moment','bluebird','ioredis','../../../../config/environment','freshsales','redis','defaults','localhost','GET','/api/selector/owners','headers','info','users','length','email','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','error','toUpperCase','message','Getting\x20user\x20list','agentEmail','Getting\x20user\x20with\x20email','userEmail','userId','User\x20found:','Admin\x20selected','catch','/api/contacts/filters','then','filters','forEach','name','All\x20Contacts','Getting\x20contact\x20list','/api/contacts/view/','Searching\x20contact\x20with\x20phone','contactNumber','contacts','find','mobile_number','Contact\x20found:','Contact\x20created:','endUserId','POST','/api/contacts','format','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','/api/tasks','getString','Descriptions','Contact','add','task','Task\x20created:','/contacts/','user:%s','emit','trigger:browser:url','Token\x20token=','apiKey','remoteUri','stripTrailingSlash','serverUrl','username','toLowerCase','destcalleridnum','calleridnum','queue','abandoned','outbound','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat'];(function(_0x3e50f0,_0x486447){var _0x15c1cf=function(_0x189103){while(--_0x189103){_0x3e50f0['push'](_0x3e50f0['shift']());}};_0x15c1cf(++_0x486447);}(_0x220c,0xbd));var _0xc220=function(_0x4f00c8,_0x5f0455){_0x4f00c8=_0x4f00c8-0x0;var _0x1e9153=_0x220c[_0x4f00c8];return _0x1e9153;};'use strict';var _=require(_0xc220('0x0'));var rp=require(_0xc220('0x1'));var md5=require(_0xc220('0x2'));var util=require(_0xc220('0x3'));var moment=require(_0xc220('0x4'));var Promise=require(_0xc220('0x5'));var Redis=require(_0xc220('0x6'));var intUtil=require('./util');var config=require(_0xc220('0x7'));var logger=require('../../../../config/logger')(_0xc220('0x8'));config[_0xc220('0x9')]=_[_0xc220('0xa')](config[_0xc220('0x9')],{'host':_0xc220('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function getAdminId(_0x2e1a32,_0x52120f,_0x2b6ae6,_0x19293c){return new Promise(function(_0x2486a3,_0x1f8702){var _0x92e985=![];var _0x49e40e={'method':_0xc220('0xc'),'uri':_0x19293c+_0xc220('0xd'),'json':!![]};_0x49e40e[_0xc220('0xe')]=_0x2b6ae6;logger[_0xc220('0xf')]('Getting\x20admin\x20information');return rp(_0x49e40e)['then'](function(_0x375538){if(_0x375538){var _0x262452=_0x375538[_0xc220('0x10')];var _0x887f9f=null;for(_0x887f9f=0x0;_0x887f9f<_0x262452[_0xc220('0x11')];_0x887f9f++){if(_0x262452[_0x887f9f][_0xc220('0x12')]===_0x2e1a32[_0xc220('0x13')]){_0x2e1a32[_0xc220('0x14')]=_0x262452[_0x887f9f]['id'];_0x92e985=!![];}}if(_0x92e985){logger['info'](_0xc220('0x15'),_0x2e1a32['adminId']);_0x2486a3(_0x2e1a32);}else{_0x1f8702({'statusCode':0x194,'message':_0xc220('0x16')});}}else{_0x1f8702({'statusCode':0x194,'message':_0xc220('0x16')});}})['catch'](function(_0x349ffd){logger[_0xc220('0x17')]('['+[_0x52120f[_0xc220('0x18')]()]+']',_0x349ffd[_0xc220('0x19')]);_0x1f8702(_0x349ffd);});});}function getUser(_0x43a8a9,_0x590663,_0x23b19f){return function(_0x5d3d5d){return new Promise(function(_0xb37e5e,_0x492d26){var _0x40fa47={'method':_0xc220('0xc'),'uri':_0x23b19f+_0xc220('0xd'),'json':!![]};_0x40fa47[_0xc220('0xe')]=_0x590663;logger[_0xc220('0xf')](_0xc220('0x1a'));return rp(_0x40fa47)['then'](function(_0x28240c){if(_0x28240c){var _0x53144e=_0x28240c[_0xc220('0x10')];var _0x35f6cc=![];var _0x18f6cc=null;if(_0x5d3d5d[_0xc220('0x1b')]!==null){logger[_0xc220('0xf')](_0xc220('0x1c'),_0x5d3d5d[_0xc220('0x1b')]);_0x5d3d5d[_0xc220('0x1d')]=_0x5d3d5d['agentEmail'];for(_0x18f6cc=0x0;_0x18f6cc<_0x53144e[_0xc220('0x11')];_0x18f6cc++){if(_0x53144e[_0x18f6cc][_0xc220('0x12')]===_0x5d3d5d[_0xc220('0x1b')]){_0x35f6cc=!![];_0x5d3d5d[_0xc220('0x1e')]=_0x53144e[_0x18f6cc]['id'];logger[_0xc220('0xf')](_0xc220('0x1f'),_0x5d3d5d['userId']);}}}if(!_0x35f6cc){logger[_0xc220('0xf')](_0xc220('0x20'));_0x5d3d5d[_0xc220('0x1d')]=_0x5d3d5d['adminEmail'];_0x5d3d5d[_0xc220('0x1e')]=_0x5d3d5d[_0xc220('0x14')];_0x35f6cc=!![];}if(_0x35f6cc){_0xb37e5e(_0x5d3d5d);}else{_0x492d26({'statusCode':0x194,'message':_0xc220('0x16')});}}else{_0x492d26({'statusCode':0x194,'message':_0xc220('0x16')});}})[_0xc220('0x21')](function(_0x258cdb){logger[_0xc220('0x17')]('['+[_0x43a8a9['toUpperCase']()]+']',_0x258cdb['message']);_0x492d26(_0x258cdb);});});};}function getEndUser(_0x278987,_0x148fc9,_0x3e4d56){return function(_0x557a47){return new Promise(function(_0x12a3f9,_0x36c558){var _0x3709b4=0x0;var _0x1ebf32={'method':_0xc220('0xc'),'uri':_0x3e4d56+_0xc220('0x22'),'json':!![]};_0x1ebf32['headers']=_0x148fc9;logger[_0xc220('0xf')]('Getting\x20contacts\x20filter');return rp(_0x1ebf32)[_0xc220('0x23')](function(_0x35d117){_0x35d117[_0xc220('0x24')][_0xc220('0x25')](function(_0x217cc4){if(_0x217cc4[_0xc220('0x26')]===_0xc220('0x27')){_0x3709b4=_0x217cc4['id'];}});})[_0xc220('0x23')](function(){logger[_0xc220('0xf')](_0xc220('0x28'));var _0x24fbe1={'method':_0xc220('0xc'),'uri':_0x3e4d56+_0xc220('0x29')+_0x3709b4,'json':!![]};_0x24fbe1['headers']=_0x148fc9;return rp(_0x24fbe1);})[_0xc220('0x23')](function(_0x48b625){logger['info'](_0xc220('0x2a'),_0x557a47[_0xc220('0x2b')]);if(_0x48b625[_0xc220('0x2c')][_0xc220('0x11')]>0x0){var _0x1ae8ed=_[_0xc220('0x2d')](_0x48b625[_0xc220('0x2c')],function(_0x3dc352){if(_0x3dc352['work_number']===_0x557a47[_0xc220('0x2b')]||_0x3dc352[_0xc220('0x2e')]===_0x557a47[_0xc220('0x2b')]){return _0x3dc352;}});if(_0x1ae8ed){_0x557a47['endUserId']=_0x1ae8ed['id'];logger['info'](_0xc220('0x2f'),_0x557a47['endUserId']);_0x12a3f9(_0x557a47);}else{return createEndUser(_0x557a47,_0x278987,_0x148fc9,_0x3e4d56)['then'](function(_0x1a8287){logger[_0xc220('0xf')](_0xc220('0x30'),_0x557a47['endUserId']);_0x12a3f9(_0x1a8287);});}}else{return createEndUser(_0x557a47,_0x278987,_0x148fc9,_0x3e4d56)[_0xc220('0x23')](function(_0x5011cf){logger['info'](_0xc220('0x30'),_0x557a47[_0xc220('0x31')]);_0x12a3f9(_0x5011cf);});}})['catch'](function(_0x10a866){throw new Error(_0x10a866[_0xc220('0x19')]);});});};}function createEndUser(_0x5cb6fe,_0x165d5a,_0x599c5b,_0x56fab0){return new Promise(function(_0xaa96e3,_0x437477){var _0x2d8a7a=moment();var _0x382792={'method':_0xc220('0x32'),'uri':_0x56fab0+_0xc220('0x33'),'body':{'contact':{'last_name':_0x5cb6fe['contactNumber'],'work_number':_0x5cb6fe[_0xc220('0x2b')],'mobile_number':_0x5cb6fe[_0xc220('0x2b')],'owner_id':_0x5cb6fe[_0xc220('0x1e')],'created_at':_0x2d8a7a[_0xc220('0x34')](_0xc220('0x35'))}},'json':!![]};_0x382792[_0xc220('0xe')]=_0x599c5b;logger[_0xc220('0xf')](_0xc220('0x36'));return rp(_0x382792)[_0xc220('0x23')](function(_0x610ed2){_0x5cb6fe[_0xc220('0x31')]=_0x610ed2[_0xc220('0x37')]['id'];_0xaa96e3(_0x5cb6fe);})[_0xc220('0x21')](function(_0x180d76){logger['error']('['+[_0x165d5a['toUpperCase']()]+']',_0x180d76['message']);_0x437477(_0x180d76[_0xc220('0x19')]);});});}function getTicket(_0x5818a5,_0x2fa3ab,_0x49f791,_0x1739b9,_0x178049){return function(_0x3287ed){logger[_0xc220('0xf')](_0xc220('0x38'));return new Promise(function(_0x42f8b1,_0x3865e4){var _0x4d848f=moment();var _0x5a121d={'method':_0xc220('0x32'),'uri':_0x49f791+_0xc220('0x39'),'body':{'title':intUtil['getString'](_0x1739b9['Subjects'],_0x178049,'\x20'),'description':intUtil[_0xc220('0x3a')](_0x1739b9[_0xc220('0x3b')],_0x178049,'\x0a'),'owner_id':_0x3287ed[_0xc220('0x1e')],'creater_id':_0x3287ed[_0xc220('0x14')],'targetable_id':_0x3287ed[_0xc220('0x31')],'targetable_type':_0xc220('0x3c'),'created_at':_0x4d848f[_0xc220('0x34')](_0xc220('0x35')),'due_date':_0x4d848f[_0xc220('0x3d')](0x1e,'m')[_0xc220('0x34')](_0xc220('0x35'))},'json':!![]};_0x5a121d[_0xc220('0xe')]=_0x2fa3ab;return rp(_0x5a121d)[_0xc220('0x23')](function(_0x5f0dc0){_0x3287ed['ticketId']=_0x5f0dc0[_0xc220('0x3e')]['id'];logger['info'](_0xc220('0x3f'),_0x3287ed['ticketId']);_0x42f8b1(_0x3287ed);})[_0xc220('0x21')](function(_0x44e361){logger[_0xc220('0x17')]('['+[_0x5818a5['toUpperCase']()]+']',_0x44e361[_0xc220('0x19')]);_0x3865e4(_0x44e361[_0xc220('0x19')]);});});};}function emit(_0x83999a,_0x5a90f9,_0x432229){var _0x2b8bae={'uri':_0x83999a+_0xc220('0x40')+_0x432229};io['to'](util[_0xc220('0x34')](_0xc220('0x41'),_0x5a90f9))[_0xc220('0x42')](_0xc220('0x43'),_0x2b8bae);}exports['cs']=function(_0x3261ea,_0x480412,_0x4b8097,_0x54ff09,_0x3b4b13,_0x3eceba,_0x184ba1,_0x186944){var _0x395822={};var _0x28ae56={'Authorization':_0xc220('0x44')+_0x3eceba[_0xc220('0x45')]};_0x3eceba[_0xc220('0x46')]=intUtil[_0xc220('0x47')](_0x3eceba['remoteUri']);_0x3eceba[_0xc220('0x48')]=intUtil[_0xc220('0x47')](_0x3eceba[_0xc220('0x48')]);var _0x160e1b=_0x3eceba[_0xc220('0x46')];_0x395822[_0xc220('0x13')]=_0x3eceba[_0xc220('0x49')];_0x395822[_0xc220('0x2b')]=_0x186944[_0xc220('0x4a')]()==='outbound'?_0x480412[_0xc220('0x4b')]:_0x480412[_0xc220('0x4c')];_0x395822['callDirection']=_0x186944===_0xc220('0x4d')||_0x186944===_0xc220('0x4e')?_0xc220('0x4d'):_0xc220('0x4f');if(_0x54ff09){_0x395822[_0xc220('0x1b')]=_0x54ff09[_0xc220('0x12')];}var _0x253f8c=util[_0xc220('0x34')](_0xc220('0x50'),_0x3eceba[_0xc220('0x48')],_0x480412['uniqueid'],md5(_0x480412[_0xc220('0x51')]));if(_0x3b4b13&&_0x3b4b13[_0xc220('0x52')]){logger[_0xc220('0xf')](_0xc220('0x53'),_0xc220('0x54'));_0x480412[_0xc220('0x55')]=_0x253f8c;}else if(_0x184ba1&&_0x184ba1[_0xc220('0x56')]&&_0x184ba1['recordingFormat']!==_0xc220('0x57')){logger['info']('[OUTBOUND]',_0xc220('0x54'));_0x480412[_0xc220('0x55')]=_0x253f8c;}else{_0x480412[_0xc220('0x55')]='';}return getAdminId(_0x395822,_0x186944,_0x28ae56,_0x160e1b)['then'](getUser(_0x186944,_0x28ae56,_0x160e1b))[_0xc220('0x23')](getEndUser(_0x186944,_0x28ae56,_0x160e1b))[_0xc220('0x23')](getTicket(_0x186944,_0x28ae56,_0x160e1b,_0x4b8097,_0x480412))[_0xc220('0x23')](function(_0x4ef2e3){logger[_0xc220('0xf')](util['format'](_0xc220('0x58'),_0x4ef2e3[_0xc220('0x59')]));if(_0x186944!=='abandoned'){logger[_0xc220('0xf')]('['+[_0x186944[_0xc220('0x18')]()]+']',_0xc220('0x5a'));emit(_0x160e1b,_0x54ff09['name'],_0x4ef2e3[_0xc220('0x31')]);}})[_0xc220('0x21')](function(_0x56d4ae){logger['error']('['+[_0x186944['toUpperCase']()]+']\x20Error\x20running\x20Freshsales\x20integration',util[_0xc220('0x5b')](_0x56d4ae,{'showHidden':!![],'depth':null}));});};