Built motion from commit (unavailable).|2.4.17
[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 _0x5307=['../../../../config/logger','defaults','redis','socket.io-emitter','/api/selector/owners','info','Getting\x20admin\x20information','then','length','email','Admin\x20found:','adminId','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','GET','Getting\x20user\x20with\x20email','agentEmail','userEmail','User\x20found:','userId','Admin\x20selected','adminEmail','/api/contacts/filters','Getting\x20contacts\x20filter','forEach','name','Getting\x20contact\x20list','/api/contacts/view/','headers','Searching\x20contact\x20with\x20phone','contactNumber','contacts','find','work_number','endUserId','Contact\x20found:','Contact\x20created:','POST','/api/contacts','format','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','/api/tasks','getString','Contact','YYYY-MM-DDTHH:mm:ss','add','ticketId','task','Task\x20created:','/contacts/','user:%s','emit','trigger:browser:url','Token\x20token=','apiKey','stripTrailingSlash','remoteUri','username','toLowerCase','outbound','destcalleridnum','callDirection','queue','abandoned','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','recordingURL','recordingFormat','none','Recording\x20is\x20enabled!','Displaying\x20task\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','md5','util','moment','bluebird','ioredis','../../../../config/environment'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x5307,0xfd));var _0x7530=function(_0x4d6d28,_0x593803){_0x4d6d28=_0x4d6d28-0x0;var _0x27e62f=_0x5307[_0x4d6d28];return _0x27e62f;};'use strict';var _=require(_0x7530('0x0'));var rp=require(_0x7530('0x1'));var md5=require(_0x7530('0x2'));var util=require(_0x7530('0x3'));var moment=require(_0x7530('0x4'));var Promise=require(_0x7530('0x5'));var Redis=require(_0x7530('0x6'));var intUtil=require('./util');var config=require(_0x7530('0x7'));var logger=require(_0x7530('0x8'))('freshsales');config['redis']=_[_0x7530('0x9')](config[_0x7530('0xa')],{'host':'localhost','port':0x18eb});var io=require(_0x7530('0xb'))(new Redis(config[_0x7530('0xa')]));function getAdminId(_0x343132,_0x2c7c98,_0x1b881e,_0x2c77ab){return new Promise(function(_0x5bc2f8,_0x221b42){var _0xae40d=![];var _0x5547ac={'method':'GET','uri':_0x2c77ab+_0x7530('0xc'),'json':!![]};_0x5547ac['headers']=_0x1b881e;logger[_0x7530('0xd')](_0x7530('0xe'));return rp(_0x5547ac)[_0x7530('0xf')](function(_0x6cc210){if(_0x6cc210){var _0x2fa575=_0x6cc210['users'];var _0x3a89f7=null;for(_0x3a89f7=0x0;_0x3a89f7<_0x2fa575[_0x7530('0x10')];_0x3a89f7++){if(_0x2fa575[_0x3a89f7][_0x7530('0x11')]===_0x343132['adminEmail']){_0x343132['adminId']=_0x2fa575[_0x3a89f7]['id'];_0xae40d=!![];}}if(_0xae40d){logger[_0x7530('0xd')](_0x7530('0x12'),_0x343132[_0x7530('0x13')]);_0x5bc2f8(_0x343132);}else{_0x221b42({'statusCode':0x194,'message':_0x7530('0x14')});}}else{_0x221b42({'statusCode':0x194,'message':_0x7530('0x14')});}})[_0x7530('0x15')](function(_0x1611fb){logger[_0x7530('0x16')]('['+[_0x2c7c98[_0x7530('0x17')]()]+']',_0x1611fb[_0x7530('0x18')]);_0x221b42(_0x1611fb);});});}function getUser(_0x3f2bf3,_0x585c28,_0x3aa5c6){return function(_0x4b169b){return new Promise(function(_0x54b7dc,_0x536c85){var _0x5724e4={'method':_0x7530('0x19'),'uri':_0x3aa5c6+'/api/selector/owners','json':!![]};_0x5724e4['headers']=_0x585c28;logger['info']('Getting\x20user\x20list');return rp(_0x5724e4)['then'](function(_0x4dd77d){if(_0x4dd77d){var _0x454e7b=_0x4dd77d['users'];var _0x2d2cd0=![];var _0x42188c=null;if(_0x4b169b['agentEmail']!==null){logger[_0x7530('0xd')](_0x7530('0x1a'),_0x4b169b[_0x7530('0x1b')]);_0x4b169b[_0x7530('0x1c')]=_0x4b169b[_0x7530('0x1b')];for(_0x42188c=0x0;_0x42188c<_0x454e7b[_0x7530('0x10')];_0x42188c++){if(_0x454e7b[_0x42188c][_0x7530('0x11')]===_0x4b169b[_0x7530('0x1b')]){_0x2d2cd0=!![];_0x4b169b['userId']=_0x454e7b[_0x42188c]['id'];logger[_0x7530('0xd')](_0x7530('0x1d'),_0x4b169b[_0x7530('0x1e')]);}}}if(!_0x2d2cd0){logger[_0x7530('0xd')](_0x7530('0x1f'));_0x4b169b[_0x7530('0x1c')]=_0x4b169b[_0x7530('0x20')];_0x4b169b['userId']=_0x4b169b[_0x7530('0x13')];_0x2d2cd0=!![];}if(_0x2d2cd0){_0x54b7dc(_0x4b169b);}else{_0x536c85({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x536c85({'statusCode':0x194,'message':_0x7530('0x14')});}})['catch'](function(_0x35b226){logger[_0x7530('0x16')]('['+[_0x3f2bf3[_0x7530('0x17')]()]+']',_0x35b226[_0x7530('0x18')]);_0x536c85(_0x35b226);});});};}function getEndUser(_0x357895,_0x20351d,_0x17bbec){return function(_0x3863b7){return new Promise(function(_0x15e7f8,_0x189123){var _0x436189=0x0;var _0x58b134={'method':_0x7530('0x19'),'uri':_0x17bbec+_0x7530('0x21'),'json':!![]};_0x58b134['headers']=_0x20351d;logger[_0x7530('0xd')](_0x7530('0x22'));return rp(_0x58b134)['then'](function(_0x55075b){_0x55075b['filters'][_0x7530('0x23')](function(_0x417f69){if(_0x417f69[_0x7530('0x24')]==='All\x20Contacts'){_0x436189=_0x417f69['id'];}});})[_0x7530('0xf')](function(){logger['info'](_0x7530('0x25'));var _0x5f04a6={'method':_0x7530('0x19'),'uri':_0x17bbec+_0x7530('0x26')+_0x436189,'json':!![]};_0x5f04a6[_0x7530('0x27')]=_0x20351d;return rp(_0x5f04a6);})['then'](function(_0xdfa43){logger[_0x7530('0xd')](_0x7530('0x28'),_0x3863b7[_0x7530('0x29')]);if(_0xdfa43[_0x7530('0x2a')]['length']>0x0){var _0x543448=_[_0x7530('0x2b')](_0xdfa43[_0x7530('0x2a')],function(_0x3064e4){if(_0x3064e4[_0x7530('0x2c')]===_0x3863b7['contactNumber']||_0x3064e4['mobile_number']===_0x3863b7[_0x7530('0x29')]){return _0x3064e4;}});if(_0x543448){_0x3863b7[_0x7530('0x2d')]=_0x543448['id'];logger[_0x7530('0xd')](_0x7530('0x2e'),_0x3863b7['endUserId']);_0x15e7f8(_0x3863b7);}else{return createEndUser(_0x3863b7,_0x357895,_0x20351d,_0x17bbec)[_0x7530('0xf')](function(_0xdb48b3){logger[_0x7530('0xd')](_0x7530('0x2f'),_0x3863b7[_0x7530('0x2d')]);_0x15e7f8(_0xdb48b3);});}}else{return createEndUser(_0x3863b7,_0x357895,_0x20351d,_0x17bbec)[_0x7530('0xf')](function(_0x462fe3){logger[_0x7530('0xd')]('Contact\x20created:',_0x3863b7['endUserId']);_0x15e7f8(_0x462fe3);});}})[_0x7530('0x15')](function(_0x99710c){throw new Error(_0x99710c[_0x7530('0x18')]);});});};}function createEndUser(_0x1a1c80,_0x1aaff3,_0x2bf62e,_0x3b8baa){return new Promise(function(_0x292d5e,_0x2f3f07){var _0x31dec1=moment();var _0x467fe3={'method':_0x7530('0x30'),'uri':_0x3b8baa+_0x7530('0x31'),'body':{'contact':{'last_name':_0x1a1c80['contactNumber'],'work_number':_0x1a1c80[_0x7530('0x29')],'mobile_number':_0x1a1c80[_0x7530('0x29')],'owner_id':_0x1a1c80[_0x7530('0x1e')],'created_at':_0x31dec1[_0x7530('0x32')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x467fe3['headers']=_0x2bf62e;logger[_0x7530('0xd')](_0x7530('0x33'));return rp(_0x467fe3)[_0x7530('0xf')](function(_0x5cbf1f){_0x1a1c80[_0x7530('0x2d')]=_0x5cbf1f[_0x7530('0x34')]['id'];_0x292d5e(_0x1a1c80);})[_0x7530('0x15')](function(_0x35bf42){logger[_0x7530('0x16')]('['+[_0x1aaff3[_0x7530('0x17')]()]+']',_0x35bf42[_0x7530('0x18')]);_0x2f3f07(_0x35bf42[_0x7530('0x18')]);});});}function getTicket(_0x17e03b,_0x55de31,_0x249de2,_0x3f512f,_0x1472f6){return function(_0x18f940){logger[_0x7530('0xd')](_0x7530('0x35'));return new Promise(function(_0x4b22ac,_0x4a7d76){var _0x41acb5=moment();var _0x4d3df8={'method':_0x7530('0x30'),'uri':_0x249de2+_0x7530('0x36'),'body':{'title':intUtil[_0x7530('0x37')](_0x3f512f['Subjects'],_0x1472f6,'\x20'),'description':intUtil[_0x7530('0x37')](_0x3f512f['Descriptions'],_0x1472f6,'\x0a'),'owner_id':_0x18f940[_0x7530('0x1e')],'creater_id':_0x18f940[_0x7530('0x13')],'targetable_id':_0x18f940[_0x7530('0x2d')],'targetable_type':_0x7530('0x38'),'created_at':_0x41acb5[_0x7530('0x32')](_0x7530('0x39')),'due_date':_0x41acb5[_0x7530('0x3a')](0x1e,'m')[_0x7530('0x32')]('YYYY-MM-DDTHH:mm:ss')},'json':!![]};_0x4d3df8[_0x7530('0x27')]=_0x55de31;return rp(_0x4d3df8)[_0x7530('0xf')](function(_0x5ea9e7){_0x18f940[_0x7530('0x3b')]=_0x5ea9e7[_0x7530('0x3c')]['id'];logger[_0x7530('0xd')](_0x7530('0x3d'),_0x18f940[_0x7530('0x3b')]);_0x4b22ac(_0x18f940);})[_0x7530('0x15')](function(_0xec5a93){logger[_0x7530('0x16')]('['+[_0x17e03b['toUpperCase']()]+']',_0xec5a93[_0x7530('0x18')]);_0x4a7d76(_0xec5a93[_0x7530('0x18')]);});});};}function emit(_0x447382,_0x35b519,_0x5a547c){var _0x254cfc={'uri':_0x447382+_0x7530('0x3e')+_0x5a547c};io['to'](util['format'](_0x7530('0x3f'),_0x35b519))[_0x7530('0x40')](_0x7530('0x41'),_0x254cfc);}exports['cs']=function(_0x1f432f,_0x18c97b,_0x4bf12b,_0x563b27,_0x5ce1f7,_0x4dd4be,_0x1acca5,_0x30b163){var _0x5cc709={};var _0x2e4168={'Authorization':_0x7530('0x42')+_0x4dd4be[_0x7530('0x43')]};_0x4dd4be['remoteUri']=intUtil[_0x7530('0x44')](_0x4dd4be['remoteUri']);_0x4dd4be['serverUrl']=intUtil['stripTrailingSlash'](_0x4dd4be['serverUrl']);var _0x28b5ea=_0x4dd4be[_0x7530('0x45')];_0x5cc709[_0x7530('0x20')]=_0x4dd4be[_0x7530('0x46')];_0x5cc709[_0x7530('0x29')]=_0x30b163[_0x7530('0x47')]()===_0x7530('0x48')?_0x18c97b[_0x7530('0x49')]:_0x18c97b['calleridnum'];_0x5cc709[_0x7530('0x4a')]=_0x30b163===_0x7530('0x4b')||_0x30b163===_0x7530('0x4c')?_0x7530('0x4b'):_0x7530('0x48');if(_0x563b27){_0x5cc709[_0x7530('0x1b')]=_0x563b27[_0x7530('0x11')];}var _0x1ddbc8=util[_0x7530('0x32')](_0x7530('0x4d'),_0x4dd4be['serverUrl'],_0x18c97b[_0x7530('0x4e')],md5(_0x18c97b[_0x7530('0x4e')]));if(_0x5ce1f7&&_0x5ce1f7[_0x7530('0x4f')]){logger[_0x7530('0xd')]('[QUEUE]','Recording\x20is\x20enabled!');_0x18c97b[_0x7530('0x50')]=_0x1ddbc8;}else if(_0x1acca5&&_0x1acca5[_0x7530('0x51')]&&_0x1acca5['recordingFormat']!==_0x7530('0x52')){logger[_0x7530('0xd')]('[OUTBOUND]',_0x7530('0x53'));_0x18c97b[_0x7530('0x50')]=_0x1ddbc8;}else{_0x18c97b[_0x7530('0x50')]='';}return getAdminId(_0x5cc709,_0x30b163,_0x2e4168,_0x28b5ea)[_0x7530('0xf')](getUser(_0x30b163,_0x2e4168,_0x28b5ea))['then'](getEndUser(_0x30b163,_0x2e4168,_0x28b5ea))[_0x7530('0xf')](getTicket(_0x30b163,_0x2e4168,_0x28b5ea,_0x4bf12b,_0x18c97b))[_0x7530('0xf')](function(_0x192961){logger[_0x7530('0xd')](util[_0x7530('0x32')]('The\x20ticket\x20ID\x20is:\x20%s',_0x192961[_0x7530('0x3b')]));if(_0x30b163!=='abandoned'){logger['info']('['+[_0x30b163[_0x7530('0x17')]()]+']',_0x7530('0x54'));emit(_0x28b5ea,_0x563b27[_0x7530('0x24')],_0x192961['endUserId']);}})[_0x7530('0x15')](function(_0xb5c883){logger[_0x7530('0x16')]('['+[_0x30b163[_0x7530('0x17')]()]+_0x7530('0x55'),util[_0x7530('0x56')](_0xb5c883,{'showHidden':!![],'depth':null}));});};