Built motion from commit (unavailable).|2.6.0
[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 _0x07d7=['YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','/api/tasks','getString','Subjects','Descriptions','Contact','add','task','Task\x20created:','ticketId','/contacts/','user:%s','emit','trigger:browser:url','Token\x20token=','apiKey','stripTrailingSlash','remoteUri','serverUrl','adminEmail','outbound','destcalleridnum','calleridnum','callDirection','queue','unmanaged','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','md5','util','moment','bluebird','ioredis','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','defaults','localhost','socket.io-emitter','GET','/api/selector/owners','info','Getting\x20admin\x20information','then','length','email','adminId','Admin\x20found:','catch','error','toUpperCase','message','headers','Getting\x20user\x20list','users','agentEmail','Getting\x20user\x20with\x20email','userEmail','userId','User\x20found:','Admin\x20selected','Requested\x20Resource\x20not\x20Found','/api/lookup?q=','&entities=contact','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','mobile_number','contactNumber','endUserId','Contact\x20found\x20mobile_number:','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts'];(function(_0x432af8,_0x477b3d){var _0x228f4f=function(_0x2110c0){while(--_0x2110c0){_0x432af8['push'](_0x432af8['shift']());}};_0x228f4f(++_0x477b3d);}(_0x07d7,0x85));var _0x707d=function(_0x28f32c,_0x4cc342){_0x28f32c=_0x28f32c-0x0;var _0x355402=_0x07d7[_0x28f32c];return _0x355402;};'use strict';var _=require(_0x707d('0x0'));var rp=require(_0x707d('0x1'));var md5=require(_0x707d('0x2'));var util=require(_0x707d('0x3'));var moment=require(_0x707d('0x4'));var Promise=require(_0x707d('0x5'));var Redis=require(_0x707d('0x6'));var intUtil=require(_0x707d('0x7'));var config=require(_0x707d('0x8'));var logger=require(_0x707d('0x9'))(_0x707d('0xa'));config[_0x707d('0xb')]=_[_0x707d('0xc')](config[_0x707d('0xb')],{'host':_0x707d('0xd'),'port':0x18eb});var io=require(_0x707d('0xe'))(new Redis(config['redis']));function getAdminId(_0x4c9e57,_0x5fe2d4,_0x52e339,_0x375e87){return new Promise(function(_0x2cc0c1,_0x51750){var _0x5af425=![];var _0x3f45f5={'method':_0x707d('0xf'),'uri':_0x375e87+_0x707d('0x10'),'json':!![]};_0x3f45f5['headers']=_0x52e339;logger[_0x707d('0x11')](_0x707d('0x12'));return rp(_0x3f45f5)[_0x707d('0x13')](function(_0x4bd94b){if(_0x4bd94b){var _0x524f9e=_0x4bd94b['users'];var _0x252e8c=null;for(_0x252e8c=0x0;_0x252e8c<_0x524f9e[_0x707d('0x14')];_0x252e8c++){if(_0x524f9e[_0x252e8c][_0x707d('0x15')]===_0x4c9e57['adminEmail']){_0x4c9e57[_0x707d('0x16')]=_0x524f9e[_0x252e8c]['id'];_0x5af425=!![];}}if(_0x5af425){logger['info'](_0x707d('0x17'),_0x4c9e57[_0x707d('0x16')]);_0x2cc0c1(_0x4c9e57);}else{_0x51750({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x51750({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0x707d('0x18')](function(_0x5b4700){logger[_0x707d('0x19')]('['+[_0x5fe2d4[_0x707d('0x1a')]()]+']',_0x5b4700[_0x707d('0x1b')]);_0x51750(_0x5b4700);});});}function getUser(_0x1f4f0e,_0x148d08,_0x34c77c){return function(_0x318251){return new Promise(function(_0x50869d,_0x1d3fe6){var _0x275a7b={'method':_0x707d('0xf'),'uri':_0x34c77c+'/api/selector/owners','json':!![]};_0x275a7b[_0x707d('0x1c')]=_0x148d08;logger[_0x707d('0x11')](_0x707d('0x1d'));return rp(_0x275a7b)[_0x707d('0x13')](function(_0x81f93f){if(_0x81f93f){var _0x178be9=_0x81f93f[_0x707d('0x1e')];var _0x446629=![];var _0x33a726=null;if(_0x318251[_0x707d('0x1f')]!==null){logger[_0x707d('0x11')](_0x707d('0x20'),_0x318251[_0x707d('0x1f')]);_0x318251[_0x707d('0x21')]=_0x318251[_0x707d('0x1f')];for(_0x33a726=0x0;_0x33a726<_0x178be9[_0x707d('0x14')];_0x33a726++){if(_0x178be9[_0x33a726][_0x707d('0x15')]===_0x318251['agentEmail']){_0x446629=!![];_0x318251[_0x707d('0x22')]=_0x178be9[_0x33a726]['id'];logger['info'](_0x707d('0x23'),_0x318251[_0x707d('0x22')]);}}}if(!_0x446629){logger[_0x707d('0x11')](_0x707d('0x24'));_0x318251[_0x707d('0x21')]=_0x318251['adminEmail'];_0x318251[_0x707d('0x22')]=_0x318251[_0x707d('0x16')];_0x446629=!![];}if(_0x446629){_0x50869d(_0x318251);}else{_0x1d3fe6({'statusCode':0x194,'message':_0x707d('0x25')});}}else{_0x1d3fe6({'statusCode':0x194,'message':_0x707d('0x25')});}})[_0x707d('0x18')](function(_0x26d4ee){logger[_0x707d('0x19')]('['+[_0x1f4f0e[_0x707d('0x1a')]()]+']',_0x26d4ee[_0x707d('0x1b')]);_0x1d3fe6(_0x26d4ee);});});};}function searchContact(_0x2f03bc,_0x2c5ac4,_0x19bf0b,_0x2c5ace){return new Promise(function(_0x4274e9,_0x38b44b){var _0xeb85df={'method':_0x707d('0xf'),'headers':_0x2c5ac4,'uri':_0x2f03bc+_0x707d('0x26')+_0x2c5ace+'&f='+_0x19bf0b+_0x707d('0x27'),'json':!![]};rp(_0xeb85df)[_0x707d('0x13')](function(_0x1784ce){var _0x4a3d8e=_['find'](_0x1784ce['contacts'][_0x707d('0x28')],[_0x19bf0b,_0x2c5ace]);_0x4274e9(_0x4a3d8e);})[_0x707d('0x18')](function(_0x2e7272){_0x38b44b(_0x2e7272);});});}function getEndUser(_0x1f7e74,_0x177524,_0x327623){return function(_0x146658){return new Promise(function(_0x3734be,_0xd310cc){logger[_0x707d('0x11')](util[_0x707d('0x29')](_0x707d('0x2a'),_0x146658['contactNumber']));searchContact(_0x327623,_0x177524,_0x707d('0x2b'),_0x146658[_0x707d('0x2c')])[_0x707d('0x13')](function(_0xa323fb){if(_0xa323fb){_0x146658[_0x707d('0x2d')]=_0xa323fb['id'];logger['info'](_0x707d('0x2e'),_0x146658[_0x707d('0x2d')]);return _0x3734be(_0x146658);}searchContact(_0x327623,_0x177524,'work_number',_0x146658[_0x707d('0x2c')])[_0x707d('0x13')](function(_0x299460){if(_0x299460){_0x146658[_0x707d('0x2d')]=_0x299460['id'];logger[_0x707d('0x11')](_0x707d('0x2f'),_0x146658[_0x707d('0x2d')]);return _0x3734be(_0x146658);}createEndUser(_0x146658,_0x1f7e74,_0x177524,_0x327623)[_0x707d('0x13')](function(_0x19e6a7){logger['info'](_0x707d('0x30'),_0x19e6a7[_0x707d('0x2d')]);return _0x3734be(_0x19e6a7);});});})[_0x707d('0x18')](function(_0xe6031b){_0xd310cc(_0xe6031b);});});};}function createEndUser(_0x65b6d4,_0x5a6a77,_0x2759f0,_0x3f0343){return new Promise(function(_0x45bfe4,_0x4f3419){var _0x337bba=moment();var _0x583aad={'method':_0x707d('0x31'),'uri':_0x3f0343+_0x707d('0x32'),'body':{'contact':{'last_name':_0x65b6d4[_0x707d('0x2c')],'work_number':_0x65b6d4[_0x707d('0x2c')],'mobile_number':_0x65b6d4['contactNumber'],'owner_id':_0x65b6d4['userId'],'created_at':_0x337bba[_0x707d('0x29')](_0x707d('0x33'))}},'json':!![]};_0x583aad['headers']=_0x2759f0;logger['info'](_0x707d('0x34'));return rp(_0x583aad)['then'](function(_0x4c3a23){_0x65b6d4[_0x707d('0x2d')]=_0x4c3a23[_0x707d('0x35')]['id'];_0x45bfe4(_0x65b6d4);})[_0x707d('0x18')](function(_0x14772e){logger[_0x707d('0x19')]('['+[_0x5a6a77['toUpperCase']()]+']',_0x14772e[_0x707d('0x1b')]);_0x4f3419(_0x14772e[_0x707d('0x1b')]);});});}function getTicket(_0x2ea0f9,_0x411aa0,_0xe2f9ff,_0x14d855,_0x18fdfe){return function(_0x1041a7){logger[_0x707d('0x11')](_0x707d('0x36'));return new Promise(function(_0x30fb97,_0x50b876){var _0xb13ec=moment();var _0x1b5acb={'method':'POST','uri':_0xe2f9ff+_0x707d('0x37'),'body':{'title':intUtil[_0x707d('0x38')](_0x14d855[_0x707d('0x39')],_0x18fdfe,'\x20'),'description':intUtil[_0x707d('0x38')](_0x14d855[_0x707d('0x3a')],_0x18fdfe,'\x0a'),'owner_id':_0x1041a7['userId'],'creater_id':_0x1041a7[_0x707d('0x16')],'targetable_id':_0x1041a7[_0x707d('0x2d')],'targetable_type':_0x707d('0x3b'),'created_at':_0xb13ec[_0x707d('0x29')](_0x707d('0x33')),'due_date':_0xb13ec[_0x707d('0x3c')](0x1e,'m')[_0x707d('0x29')](_0x707d('0x33'))},'json':!![]};_0x1b5acb[_0x707d('0x1c')]=_0x411aa0;return rp(_0x1b5acb)['then'](function(_0xa3204){_0x1041a7['ticketId']=_0xa3204[_0x707d('0x3d')]['id'];logger[_0x707d('0x11')](_0x707d('0x3e'),_0x1041a7[_0x707d('0x3f')]);_0x30fb97(_0x1041a7);})[_0x707d('0x18')](function(_0x28b318){logger[_0x707d('0x19')]('['+[_0x2ea0f9[_0x707d('0x1a')]()]+']',_0x28b318['message']);_0x50b876(_0x28b318[_0x707d('0x1b')]);});});};}function emit(_0x443910,_0x39b291,_0x3f9c77){var _0xe5c80b={'uri':_0x443910+_0x707d('0x40')+_0x3f9c77};io['to'](util['format'](_0x707d('0x41'),_0x39b291))[_0x707d('0x42')](_0x707d('0x43'),_0xe5c80b);}exports['cs']=function(_0x3986d4,_0x3a8260,_0xc32325,_0x499d8b,_0x55e718,_0x25c254,_0x46636a,_0x5e1c34){var _0x31ac73={};var _0x45bde2={'Authorization':_0x707d('0x44')+_0x25c254[_0x707d('0x45')]};_0x25c254['remoteUri']=intUtil[_0x707d('0x46')](_0x25c254[_0x707d('0x47')]);_0x25c254[_0x707d('0x48')]=intUtil['stripTrailingSlash'](_0x25c254[_0x707d('0x48')]);var _0x253a52=_0x25c254['remoteUri'];_0x31ac73[_0x707d('0x49')]=_0x25c254['username'];_0x31ac73['contactNumber']=_0x5e1c34['toLowerCase']()===_0x707d('0x4a')?_0x3a8260[_0x707d('0x4b')]:_0x3a8260[_0x707d('0x4c')];_0x31ac73[_0x707d('0x4d')]=_0x5e1c34===_0x707d('0x4e')||_0x5e1c34===_0x707d('0x4f')?'queue':_0x707d('0x4a');if(_0x499d8b){_0x31ac73[_0x707d('0x1f')]=_0x499d8b['email'];}var _0x56abb9=util[_0x707d('0x29')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x25c254[_0x707d('0x48')],_0x3a8260[_0x707d('0x50')],md5(_0x3a8260['uniqueid']));if(_0x55e718&&_0x55e718[_0x707d('0x51')]){logger['info'](_0x707d('0x52'),_0x707d('0x53'));_0x3a8260[_0x707d('0x54')]=_0x56abb9;}else if(_0x46636a&&_0x46636a[_0x707d('0x55')]&&_0x46636a[_0x707d('0x55')]!=='none'){logger[_0x707d('0x11')](_0x707d('0x56'),_0x707d('0x53'));_0x3a8260['recordingURL']=_0x56abb9;}else{_0x3a8260[_0x707d('0x54')]='';}return getAdminId(_0x31ac73,_0x5e1c34,_0x45bde2,_0x253a52)['then'](getUser(_0x5e1c34,_0x45bde2,_0x253a52))[_0x707d('0x13')](getEndUser(_0x5e1c34,_0x45bde2,_0x253a52))[_0x707d('0x13')](getTicket(_0x5e1c34,_0x45bde2,_0x253a52,_0xc32325,_0x3a8260))[_0x707d('0x13')](function(_0x5b7427){logger['info'](util[_0x707d('0x29')](_0x707d('0x57'),_0x5b7427[_0x707d('0x3f')]));if(_0x5e1c34!==_0x707d('0x4f')){logger[_0x707d('0x11')]('['+[_0x5e1c34[_0x707d('0x1a')]()]+']',_0x707d('0x58'));emit(_0x253a52,_0x499d8b[_0x707d('0x59')],_0x5b7427['endUserId']);}})[_0x707d('0x18')](function(_0x145c60){logger[_0x707d('0x19')]('['+[_0x5e1c34[_0x707d('0x1a')]()]+_0x707d('0x5a'),util[_0x707d('0x5b')](_0x145c60,{'showHidden':!![],'depth':null}));});};