556131370b69960596da5b6072639dc23c0fa3f1
[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 _0x6e7e=['freshsales','redis','defaults','localhost','GET','/api/selector/owners','headers','info','Getting\x20admin\x20information','users','length','email','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','message','Getting\x20user\x20list','agentEmail','Getting\x20user\x20with\x20email','userEmail','userId','User\x20found:','Admin\x20selected','toUpperCase','/api/contacts/filters','Getting\x20contacts\x20filter','then','filters','name','All\x20Contacts','Getting\x20contact\x20list','/api/contacts/view/','Searching\x20contact\x20with\x20phone','contacts','find','work_number','contactNumber','mobile_number','endUserId','Contact\x20found:','Contact\x20created:','/api/contacts','format','YYYY-MM-DDTHH:mm:ss','contact','Creating\x20new\x20task','POST','/api/tasks','Subjects','Descriptions','add','ticketId','task','Task\x20created:','/contacts/','emit','trigger:browser:url','Token\x20token=','apiKey','stripTrailingSlash','remoteUri','serverUrl','username','toLowerCase','outbound','destcalleridnum','calleridnum','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','recordingURL','unmanaged','Displaying\x20task\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','md5','moment','bluebird','./util','../../../../config/environment','../../../../config/logger'];(function(_0x17f145,_0x3422bb){var _0x2d5420=function(_0x3eb38b){while(--_0x3eb38b){_0x17f145['push'](_0x17f145['shift']());}};_0x2d5420(++_0x3422bb);}(_0x6e7e,0x10c));var _0xe6e7=function(_0x480843,_0x8121e6){_0x480843=_0x480843-0x0;var _0x1d5cd9=_0x6e7e[_0x480843];return _0x1d5cd9;};'use strict';var _=require(_0xe6e7('0x0'));var rp=require(_0xe6e7('0x1'));var md5=require(_0xe6e7('0x2'));var util=require('util');var moment=require(_0xe6e7('0x3'));var Promise=require(_0xe6e7('0x4'));var Redis=require('ioredis');var intUtil=require(_0xe6e7('0x5'));var config=require(_0xe6e7('0x6'));var logger=require(_0xe6e7('0x7'))(_0xe6e7('0x8'));config[_0xe6e7('0x9')]=_[_0xe6e7('0xa')](config[_0xe6e7('0x9')],{'host':_0xe6e7('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xe6e7('0x9')]));function getAdminId(_0x4f2f6d,_0x3cefcf,_0x44a46e,_0x1df7da){return new Promise(function(_0x576965,_0x411a81){var _0x38ff5d=![];var _0x2019f8={'method':_0xe6e7('0xc'),'uri':_0x1df7da+_0xe6e7('0xd'),'json':!![]};_0x2019f8[_0xe6e7('0xe')]=_0x44a46e;logger[_0xe6e7('0xf')](_0xe6e7('0x10'));return rp(_0x2019f8)['then'](function(_0x2b349d){if(_0x2b349d){var _0x3b8537=_0x2b349d[_0xe6e7('0x11')];var _0x59f040=null;for(_0x59f040=0x0;_0x59f040<_0x3b8537[_0xe6e7('0x12')];_0x59f040++){if(_0x3b8537[_0x59f040][_0xe6e7('0x13')]===_0x4f2f6d[_0xe6e7('0x14')]){_0x4f2f6d[_0xe6e7('0x15')]=_0x3b8537[_0x59f040]['id'];_0x38ff5d=!![];}}if(_0x38ff5d){logger[_0xe6e7('0xf')](_0xe6e7('0x16'),_0x4f2f6d['adminId']);_0x576965(_0x4f2f6d);}else{_0x411a81({'statusCode':0x194,'message':_0xe6e7('0x17')});}}else{_0x411a81({'statusCode':0x194,'message':_0xe6e7('0x17')});}})[_0xe6e7('0x18')](function(_0x2ec264){logger[_0xe6e7('0x19')]('['+[_0x3cefcf['toUpperCase']()]+']',_0x2ec264[_0xe6e7('0x1a')]);_0x411a81(_0x2ec264);});});}function getUser(_0x1d651d,_0x47c51c,_0x465e50){return function(_0x2c6a99){return new Promise(function(_0x1da3a7,_0x512a5b){var _0x49f0da={'method':_0xe6e7('0xc'),'uri':_0x465e50+_0xe6e7('0xd'),'json':!![]};_0x49f0da[_0xe6e7('0xe')]=_0x47c51c;logger[_0xe6e7('0xf')](_0xe6e7('0x1b'));return rp(_0x49f0da)['then'](function(_0xa4f712){if(_0xa4f712){var _0x567563=_0xa4f712[_0xe6e7('0x11')];var _0x207195=![];var _0x21c294=null;if(_0x2c6a99[_0xe6e7('0x1c')]!==null){logger[_0xe6e7('0xf')](_0xe6e7('0x1d'),_0x2c6a99[_0xe6e7('0x1c')]);_0x2c6a99[_0xe6e7('0x1e')]=_0x2c6a99[_0xe6e7('0x1c')];for(_0x21c294=0x0;_0x21c294<_0x567563[_0xe6e7('0x12')];_0x21c294++){if(_0x567563[_0x21c294][_0xe6e7('0x13')]===_0x2c6a99['agentEmail']){_0x207195=!![];_0x2c6a99[_0xe6e7('0x1f')]=_0x567563[_0x21c294]['id'];logger[_0xe6e7('0xf')](_0xe6e7('0x20'),_0x2c6a99[_0xe6e7('0x1f')]);}}}if(!_0x207195){logger[_0xe6e7('0xf')](_0xe6e7('0x21'));_0x2c6a99[_0xe6e7('0x1e')]=_0x2c6a99[_0xe6e7('0x14')];_0x2c6a99[_0xe6e7('0x1f')]=_0x2c6a99[_0xe6e7('0x15')];_0x207195=!![];}if(_0x207195){_0x1da3a7(_0x2c6a99);}else{_0x512a5b({'statusCode':0x194,'message':_0xe6e7('0x17')});}}else{_0x512a5b({'statusCode':0x194,'message':_0xe6e7('0x17')});}})[_0xe6e7('0x18')](function(_0x20584d){logger['error']('['+[_0x1d651d[_0xe6e7('0x22')]()]+']',_0x20584d[_0xe6e7('0x1a')]);_0x512a5b(_0x20584d);});});};}function getEndUser(_0x3a3ae2,_0xc9036,_0x54e910){return function(_0x90fd8f){return new Promise(function(_0x4700ce,_0x39457b){var _0x4c5ef2=0x0;var _0x2462cc={'method':'GET','uri':_0x54e910+_0xe6e7('0x23'),'json':!![]};_0x2462cc[_0xe6e7('0xe')]=_0xc9036;logger[_0xe6e7('0xf')](_0xe6e7('0x24'));return rp(_0x2462cc)[_0xe6e7('0x25')](function(_0x50f8ed){_0x50f8ed[_0xe6e7('0x26')]['forEach'](function(_0x51435e){if(_0x51435e[_0xe6e7('0x27')]===_0xe6e7('0x28')){_0x4c5ef2=_0x51435e['id'];}});})['then'](function(){logger[_0xe6e7('0xf')](_0xe6e7('0x29'));var _0x14900a={'method':_0xe6e7('0xc'),'uri':_0x54e910+_0xe6e7('0x2a')+_0x4c5ef2,'json':!![]};_0x14900a[_0xe6e7('0xe')]=_0xc9036;return rp(_0x14900a);})['then'](function(_0x3f84db){logger[_0xe6e7('0xf')](_0xe6e7('0x2b'),_0x90fd8f['contactNumber']);if(_0x3f84db[_0xe6e7('0x2c')][_0xe6e7('0x12')]>0x0){var _0x2f72c0=_[_0xe6e7('0x2d')](_0x3f84db[_0xe6e7('0x2c')],function(_0x3bd3b1){if(_0x3bd3b1[_0xe6e7('0x2e')]===_0x90fd8f[_0xe6e7('0x2f')]||_0x3bd3b1[_0xe6e7('0x30')]===_0x90fd8f[_0xe6e7('0x2f')]){return _0x3bd3b1;}});if(_0x2f72c0){_0x90fd8f[_0xe6e7('0x31')]=_0x2f72c0['id'];logger[_0xe6e7('0xf')](_0xe6e7('0x32'),_0x90fd8f[_0xe6e7('0x31')]);_0x4700ce(_0x90fd8f);}else{return createEndUser(_0x90fd8f,_0x3a3ae2,_0xc9036,_0x54e910)[_0xe6e7('0x25')](function(_0x38e08e){logger[_0xe6e7('0xf')](_0xe6e7('0x33'),_0x90fd8f['endUserId']);_0x4700ce(_0x38e08e);});}}else{return createEndUser(_0x90fd8f,_0x3a3ae2,_0xc9036,_0x54e910)[_0xe6e7('0x25')](function(_0x59e785){logger['info']('Contact\x20created:',_0x90fd8f[_0xe6e7('0x31')]);_0x4700ce(_0x59e785);});}})[_0xe6e7('0x18')](function(_0x2fd484){throw new Error(_0x2fd484['message']);});});};}function createEndUser(_0x3c7e7e,_0x43178f,_0x500405,_0x37e49e){return new Promise(function(_0x2f7568,_0x389e66){var _0x3d6f30=moment();var _0x35f374={'method':'POST','uri':_0x37e49e+_0xe6e7('0x34'),'body':{'contact':{'last_name':_0x3c7e7e[_0xe6e7('0x2f')],'work_number':_0x3c7e7e[_0xe6e7('0x2f')],'mobile_number':_0x3c7e7e[_0xe6e7('0x2f')],'owner_id':_0x3c7e7e[_0xe6e7('0x1f')],'created_at':_0x3d6f30[_0xe6e7('0x35')](_0xe6e7('0x36'))}},'json':!![]};_0x35f374[_0xe6e7('0xe')]=_0x500405;logger[_0xe6e7('0xf')]('Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact');return rp(_0x35f374)[_0xe6e7('0x25')](function(_0x5f2b01){_0x3c7e7e[_0xe6e7('0x31')]=_0x5f2b01[_0xe6e7('0x37')]['id'];_0x2f7568(_0x3c7e7e);})['catch'](function(_0x293082){logger[_0xe6e7('0x19')]('['+[_0x43178f[_0xe6e7('0x22')]()]+']',_0x293082[_0xe6e7('0x1a')]);_0x389e66(_0x293082[_0xe6e7('0x1a')]);});});}function getTicket(_0x1fdb4c,_0x3c93c9,_0x2960fd,_0x121961,_0x304103){return function(_0xda56ad){logger[_0xe6e7('0xf')](_0xe6e7('0x38'));return new Promise(function(_0x4b88aa,_0x1b233c){var _0x5af3b3=moment();var _0x539671={'method':_0xe6e7('0x39'),'uri':_0x2960fd+_0xe6e7('0x3a'),'body':{'title':intUtil['getString'](_0x121961[_0xe6e7('0x3b')],_0x304103,'\x20'),'description':intUtil['getString'](_0x121961[_0xe6e7('0x3c')],_0x304103,'\x0a'),'owner_id':_0xda56ad['userId'],'creater_id':_0xda56ad['adminId'],'targetable_id':_0xda56ad[_0xe6e7('0x31')],'targetable_type':'Contact','created_at':_0x5af3b3[_0xe6e7('0x35')](_0xe6e7('0x36')),'due_date':_0x5af3b3[_0xe6e7('0x3d')](0x1e,'m')[_0xe6e7('0x35')]('YYYY-MM-DDTHH:mm:ss')},'json':!![]};_0x539671[_0xe6e7('0xe')]=_0x3c93c9;return rp(_0x539671)[_0xe6e7('0x25')](function(_0xe6500d){_0xda56ad[_0xe6e7('0x3e')]=_0xe6500d[_0xe6e7('0x3f')]['id'];logger['info'](_0xe6e7('0x40'),_0xda56ad['ticketId']);_0x4b88aa(_0xda56ad);})['catch'](function(_0x54aef0){logger[_0xe6e7('0x19')]('['+[_0x1fdb4c[_0xe6e7('0x22')]()]+']',_0x54aef0['message']);_0x1b233c(_0x54aef0[_0xe6e7('0x1a')]);});});};}function emit(_0x2487a7,_0x329ff7,_0x579746){var _0x589803={'uri':_0x2487a7+_0xe6e7('0x41')+_0x579746};io['to'](util[_0xe6e7('0x35')]('user:%s',_0x329ff7))[_0xe6e7('0x42')](_0xe6e7('0x43'),_0x589803);}exports['cs']=function(_0xc5d79f,_0x4ab12e,_0x3e05b4,_0x45a9a0,_0x55a71b,_0x2f498f,_0xac5814,_0x3653e6){var _0x1a9735={};var _0x17d9a6={'Authorization':_0xe6e7('0x44')+_0x2f498f[_0xe6e7('0x45')]};_0x2f498f['remoteUri']=intUtil[_0xe6e7('0x46')](_0x2f498f[_0xe6e7('0x47')]);_0x2f498f[_0xe6e7('0x48')]=intUtil[_0xe6e7('0x46')](_0x2f498f[_0xe6e7('0x48')]);var _0x551a5c=_0x2f498f['remoteUri'];_0x1a9735['adminEmail']=_0x2f498f[_0xe6e7('0x49')];_0x1a9735[_0xe6e7('0x2f')]=_0x3653e6[_0xe6e7('0x4a')]()===_0xe6e7('0x4b')?_0x4ab12e[_0xe6e7('0x4c')]:_0x4ab12e[_0xe6e7('0x4d')];_0x1a9735['callDirection']=_0x3653e6===_0xe6e7('0x4e')||_0x3653e6==='unmanaged'?_0xe6e7('0x4e'):_0xe6e7('0x4b');if(_0x45a9a0){_0x1a9735[_0xe6e7('0x1c')]=_0x45a9a0[_0xe6e7('0x13')];}var _0x87d0f0=util[_0xe6e7('0x35')](_0xe6e7('0x4f'),_0x2f498f[_0xe6e7('0x48')],_0x4ab12e[_0xe6e7('0x50')],md5(_0x4ab12e[_0xe6e7('0x50')]));if(_0x55a71b&&_0x55a71b[_0xe6e7('0x51')]){logger[_0xe6e7('0xf')](_0xe6e7('0x52'),'Recording\x20is\x20enabled!');_0x4ab12e['recordingURL']=_0x87d0f0;}else if(_0xac5814&&_0xac5814[_0xe6e7('0x53')]&&_0xac5814['recordingFormat']!==_0xe6e7('0x54')){logger[_0xe6e7('0xf')](_0xe6e7('0x55'),_0xe6e7('0x56'));_0x4ab12e[_0xe6e7('0x57')]=_0x87d0f0;}else{_0x4ab12e['recordingURL']='';}return getAdminId(_0x1a9735,_0x3653e6,_0x17d9a6,_0x551a5c)['then'](getUser(_0x3653e6,_0x17d9a6,_0x551a5c))[_0xe6e7('0x25')](getEndUser(_0x3653e6,_0x17d9a6,_0x551a5c))[_0xe6e7('0x25')](getTicket(_0x3653e6,_0x17d9a6,_0x551a5c,_0x3e05b4,_0x4ab12e))[_0xe6e7('0x25')](function(_0x1549fd){logger[_0xe6e7('0xf')](util[_0xe6e7('0x35')]('The\x20ticket\x20ID\x20is:\x20%s',_0x1549fd[_0xe6e7('0x3e')]));if(_0x3653e6!==_0xe6e7('0x58')){logger['info']('['+[_0x3653e6[_0xe6e7('0x22')]()]+']',_0xe6e7('0x59'));emit(_0x551a5c,_0x45a9a0[_0xe6e7('0x27')],_0x1549fd[_0xe6e7('0x31')]);}})[_0xe6e7('0x18')](function(_0x41124e){logger['error']('['+[_0x3653e6['toUpperCase']()]+_0xe6e7('0x5a'),util[_0xe6e7('0x5b')](_0x41124e,{'showHidden':!![],'depth':null}));});};