Built motion from commit 0900f080.|2.5.45
[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 _0x8018=['ioredis','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','localhost','socket.io-emitter','GET','/api/selector/owners','headers','info','then','users','length','email','adminEmail','Admin\x20found:','adminId','Requested\x20Resource\x20not\x20Found','catch','error','Getting\x20user\x20list','agentEmail','Getting\x20user\x20with\x20email','userEmail','userId','Admin\x20selected','toUpperCase','&f=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','Contact\x20found\x20mobile_number:','endUserId','work_number','Contact\x20created:','/api/contacts','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','message','Creating\x20new\x20task','POST','/api/tasks','getString','Descriptions','Contact','add','ticketId','task','Task\x20created:','/contacts/','emit','Token\x20token=','apiKey','remoteUri','stripTrailingSlash','serverUrl','username','outbound','destcalleridnum','calleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','inspect','lodash','request-promise','util','moment','bluebird'];(function(_0x310633,_0x34c478){var _0x16d9d0=function(_0x573d44){while(--_0x573d44){_0x310633['push'](_0x310633['shift']());}};_0x16d9d0(++_0x34c478);}(_0x8018,0xa5));var _0x8801=function(_0x462958,_0x5e3c79){_0x462958=_0x462958-0x0;var _0x1b35fd=_0x8018[_0x462958];return _0x1b35fd;};'use strict';var _=require(_0x8801('0x0'));var rp=require(_0x8801('0x1'));var md5=require('md5');var util=require(_0x8801('0x2'));var moment=require(_0x8801('0x3'));var Promise=require(_0x8801('0x4'));var Redis=require(_0x8801('0x5'));var intUtil=require(_0x8801('0x6'));var config=require(_0x8801('0x7'));var logger=require(_0x8801('0x8'))(_0x8801('0x9'));config[_0x8801('0xa')]=_['defaults'](config['redis'],{'host':_0x8801('0xb'),'port':0x18eb});var io=require(_0x8801('0xc'))(new Redis(config[_0x8801('0xa')]));function getAdminId(_0x32e808,_0x4d283f,_0x363973,_0x4e6a77){return new Promise(function(_0x49f4af,_0x210602){var _0x18871b=![];var _0x11f1c5={'method':_0x8801('0xd'),'uri':_0x4e6a77+_0x8801('0xe'),'json':!![]};_0x11f1c5[_0x8801('0xf')]=_0x363973;logger[_0x8801('0x10')]('Getting\x20admin\x20information');return rp(_0x11f1c5)[_0x8801('0x11')](function(_0xe16d91){if(_0xe16d91){var _0x5d2f74=_0xe16d91[_0x8801('0x12')];var _0x323e42=null;for(_0x323e42=0x0;_0x323e42<_0x5d2f74[_0x8801('0x13')];_0x323e42++){if(_0x5d2f74[_0x323e42][_0x8801('0x14')]===_0x32e808[_0x8801('0x15')]){_0x32e808['adminId']=_0x5d2f74[_0x323e42]['id'];_0x18871b=!![];}}if(_0x18871b){logger['info'](_0x8801('0x16'),_0x32e808[_0x8801('0x17')]);_0x49f4af(_0x32e808);}else{_0x210602({'statusCode':0x194,'message':_0x8801('0x18')});}}else{_0x210602({'statusCode':0x194,'message':_0x8801('0x18')});}})[_0x8801('0x19')](function(_0x4f7de7){logger[_0x8801('0x1a')]('['+[_0x4d283f['toUpperCase']()]+']',_0x4f7de7['message']);_0x210602(_0x4f7de7);});});}function getUser(_0x12d40c,_0x4fc9c2,_0x1151d1){return function(_0xdc3007){return new Promise(function(_0x2e4047,_0x519e7a){var _0x34e0b2={'method':_0x8801('0xd'),'uri':_0x1151d1+_0x8801('0xe'),'json':!![]};_0x34e0b2[_0x8801('0xf')]=_0x4fc9c2;logger[_0x8801('0x10')](_0x8801('0x1b'));return rp(_0x34e0b2)['then'](function(_0x1c2228){if(_0x1c2228){var _0x1a2661=_0x1c2228[_0x8801('0x12')];var _0x236c93=![];var _0xac66c7=null;if(_0xdc3007[_0x8801('0x1c')]!==null){logger[_0x8801('0x10')](_0x8801('0x1d'),_0xdc3007['agentEmail']);_0xdc3007[_0x8801('0x1e')]=_0xdc3007[_0x8801('0x1c')];for(_0xac66c7=0x0;_0xac66c7<_0x1a2661[_0x8801('0x13')];_0xac66c7++){if(_0x1a2661[_0xac66c7][_0x8801('0x14')]===_0xdc3007[_0x8801('0x1c')]){_0x236c93=!![];_0xdc3007[_0x8801('0x1f')]=_0x1a2661[_0xac66c7]['id'];logger[_0x8801('0x10')]('User\x20found:',_0xdc3007['userId']);}}}if(!_0x236c93){logger[_0x8801('0x10')](_0x8801('0x20'));_0xdc3007[_0x8801('0x1e')]=_0xdc3007[_0x8801('0x15')];_0xdc3007[_0x8801('0x1f')]=_0xdc3007[_0x8801('0x17')];_0x236c93=!![];}if(_0x236c93){_0x2e4047(_0xdc3007);}else{_0x519e7a({'statusCode':0x194,'message':_0x8801('0x18')});}}else{_0x519e7a({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0x8801('0x19')](function(_0x260f04){logger[_0x8801('0x1a')]('['+[_0x12d40c[_0x8801('0x21')]()]+']',_0x260f04['message']);_0x519e7a(_0x260f04);});});};}function searchContact(_0x469a74,_0xe0caee,_0x2b1027,_0x34cf3f){return new Promise(function(_0x566c33,_0x27810a){var _0x3ad94a={'method':_0x8801('0xd'),'headers':_0xe0caee,'uri':_0x469a74+'/api/lookup?q='+_0x34cf3f+_0x8801('0x22')+_0x2b1027+_0x8801('0x23'),'json':!![]};rp(_0x3ad94a)[_0x8801('0x11')](function(_0xaadcd2){var _0x51f7c1=_[_0x8801('0x24')](_0xaadcd2[_0x8801('0x25')][_0x8801('0x25')],[_0x2b1027,_0x34cf3f]);_0x566c33(_0x51f7c1);})[_0x8801('0x19')](function(_0x2331bc){_0x27810a(_0x2331bc);});});}function getEndUser(_0x4100c5,_0xb491f,_0x8c31c4){return function(_0x3d8624){return new Promise(function(_0x53d082,_0x2cc5be){logger['info'](util[_0x8801('0x26')](_0x8801('0x27'),_0x3d8624[_0x8801('0x28')]));searchContact(_0x8c31c4,_0xb491f,_0x8801('0x29'),_0x3d8624[_0x8801('0x28')])[_0x8801('0x11')](function(_0x1cd464){if(_0x1cd464){_0x3d8624['endUserId']=_0x1cd464['id'];logger[_0x8801('0x10')](_0x8801('0x2a'),_0x3d8624[_0x8801('0x2b')]);return _0x53d082(_0x3d8624);}searchContact(_0x8c31c4,_0xb491f,_0x8801('0x2c'),_0x3d8624[_0x8801('0x28')])[_0x8801('0x11')](function(_0x2245d8){if(_0x2245d8){_0x3d8624['endUserId']=_0x2245d8['id'];logger['info']('Contact\x20found\x20work_number:',_0x3d8624[_0x8801('0x2b')]);return _0x53d082(_0x3d8624);}createEndUser(_0x3d8624,_0x4100c5,_0xb491f,_0x8c31c4)[_0x8801('0x11')](function(_0x369dce){logger[_0x8801('0x10')](_0x8801('0x2d'),_0x369dce[_0x8801('0x2b')]);return _0x53d082(_0x369dce);});});})[_0x8801('0x19')](function(_0x4871a5){_0x2cc5be(_0x4871a5);});});};}function createEndUser(_0x1ea9c8,_0x1b91bb,_0x92985c,_0x5a99f8){return new Promise(function(_0xb0e770,_0x16cd3a){var _0x4b35d1=moment();var _0xd1f80f={'method':'POST','uri':_0x5a99f8+_0x8801('0x2e'),'body':{'contact':{'last_name':_0x1ea9c8[_0x8801('0x28')],'work_number':_0x1ea9c8[_0x8801('0x28')],'mobile_number':_0x1ea9c8[_0x8801('0x28')],'owner_id':_0x1ea9c8[_0x8801('0x1f')],'created_at':_0x4b35d1[_0x8801('0x26')](_0x8801('0x2f'))}},'json':!![]};_0xd1f80f['headers']=_0x92985c;logger[_0x8801('0x10')](_0x8801('0x30'));return rp(_0xd1f80f)[_0x8801('0x11')](function(_0x26b2f7){_0x1ea9c8[_0x8801('0x2b')]=_0x26b2f7[_0x8801('0x31')]['id'];_0xb0e770(_0x1ea9c8);})[_0x8801('0x19')](function(_0x268012){logger[_0x8801('0x1a')]('['+[_0x1b91bb[_0x8801('0x21')]()]+']',_0x268012['message']);_0x16cd3a(_0x268012[_0x8801('0x32')]);});});}function getTicket(_0x84d9ba,_0x590bb7,_0x59bbf2,_0x127217,_0x3ad862){return function(_0x9f6b9e){logger[_0x8801('0x10')](_0x8801('0x33'));return new Promise(function(_0x391347,_0x510235){var _0x229301=moment();var _0xdb494a={'method':_0x8801('0x34'),'uri':_0x59bbf2+_0x8801('0x35'),'body':{'title':intUtil[_0x8801('0x36')](_0x127217['Subjects'],_0x3ad862,'\x20'),'description':intUtil[_0x8801('0x36')](_0x127217[_0x8801('0x37')],_0x3ad862,'\x0a'),'owner_id':_0x9f6b9e[_0x8801('0x1f')],'creater_id':_0x9f6b9e[_0x8801('0x17')],'targetable_id':_0x9f6b9e[_0x8801('0x2b')],'targetable_type':_0x8801('0x38'),'created_at':_0x229301[_0x8801('0x26')]('YYYY-MM-DDTHH:mm:ss'),'due_date':_0x229301[_0x8801('0x39')](0x1e,'m')[_0x8801('0x26')](_0x8801('0x2f'))},'json':!![]};_0xdb494a[_0x8801('0xf')]=_0x590bb7;return rp(_0xdb494a)[_0x8801('0x11')](function(_0x3e9529){_0x9f6b9e[_0x8801('0x3a')]=_0x3e9529[_0x8801('0x3b')]['id'];logger[_0x8801('0x10')](_0x8801('0x3c'),_0x9f6b9e[_0x8801('0x3a')]);_0x391347(_0x9f6b9e);})[_0x8801('0x19')](function(_0x1cb1dd){logger[_0x8801('0x1a')]('['+[_0x84d9ba[_0x8801('0x21')]()]+']',_0x1cb1dd[_0x8801('0x32')]);_0x510235(_0x1cb1dd[_0x8801('0x32')]);});});};}function emit(_0x521685,_0x4509a9,_0x2c40ef){var _0x2ce26e={'uri':_0x521685+_0x8801('0x3d')+_0x2c40ef};io['to'](util[_0x8801('0x26')]('user:%s',_0x4509a9))[_0x8801('0x3e')]('trigger:browser:url',_0x2ce26e);}exports['cs']=function(_0x1287a8,_0x5cf34a,_0x342cf5,_0x569a3b,_0x141f8f,_0xe60b64,_0x20b026,_0x1a62e6){var _0x3bf9e8={};var _0x335aa0={'Authorization':_0x8801('0x3f')+_0xe60b64[_0x8801('0x40')]};_0xe60b64[_0x8801('0x41')]=intUtil[_0x8801('0x42')](_0xe60b64[_0x8801('0x41')]);_0xe60b64[_0x8801('0x43')]=intUtil['stripTrailingSlash'](_0xe60b64[_0x8801('0x43')]);var _0x51512f=_0xe60b64[_0x8801('0x41')];_0x3bf9e8[_0x8801('0x15')]=_0xe60b64[_0x8801('0x44')];_0x3bf9e8[_0x8801('0x28')]=_0x1a62e6['toLowerCase']()===_0x8801('0x45')?_0x5cf34a[_0x8801('0x46')]:_0x5cf34a[_0x8801('0x47')];_0x3bf9e8[_0x8801('0x48')]=_0x1a62e6===_0x8801('0x49')||_0x1a62e6===_0x8801('0x4a')?_0x8801('0x49'):_0x8801('0x45');if(_0x569a3b){_0x3bf9e8[_0x8801('0x1c')]=_0x569a3b[_0x8801('0x14')];}var _0x2a8295=util[_0x8801('0x26')](_0x8801('0x4b'),_0xe60b64[_0x8801('0x43')],_0x5cf34a['uniqueid'],md5(_0x5cf34a[_0x8801('0x4c')]));if(_0x141f8f&&_0x141f8f['monitor_format']){logger[_0x8801('0x10')](_0x8801('0x4d'),_0x8801('0x4e'));_0x5cf34a[_0x8801('0x4f')]=_0x2a8295;}else if(_0x20b026&&_0x20b026[_0x8801('0x50')]&&_0x20b026[_0x8801('0x50')]!==_0x8801('0x51')){logger[_0x8801('0x10')]('[OUTBOUND]',_0x8801('0x4e'));_0x5cf34a[_0x8801('0x4f')]=_0x2a8295;}else{_0x5cf34a[_0x8801('0x4f')]='';}return getAdminId(_0x3bf9e8,_0x1a62e6,_0x335aa0,_0x51512f)[_0x8801('0x11')](getUser(_0x1a62e6,_0x335aa0,_0x51512f))[_0x8801('0x11')](getEndUser(_0x1a62e6,_0x335aa0,_0x51512f))['then'](getTicket(_0x1a62e6,_0x335aa0,_0x51512f,_0x342cf5,_0x5cf34a))[_0x8801('0x11')](function(_0x48a181){logger[_0x8801('0x10')](util['format'](_0x8801('0x52'),_0x48a181['ticketId']));if(_0x1a62e6!==_0x8801('0x4a')){logger[_0x8801('0x10')]('['+[_0x1a62e6[_0x8801('0x21')]()]+']',_0x8801('0x53'));emit(_0x51512f,_0x569a3b['name'],_0x48a181[_0x8801('0x2b')]);}})[_0x8801('0x19')](function(_0xd4741e){logger[_0x8801('0x1a')]('['+[_0x1a62e6[_0x8801('0x21')]()]+']\x20Error\x20running\x20Freshsales\x20integration',util[_0x8801('0x54')](_0xd4741e,{'showHidden':!![],'depth':null}));});};