1056aebd15b02de41263e04366f96099c345f561
[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 _0x7585=['info','Getting\x20admin\x20information','then','users','length','email','adminId','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','agentEmail','userEmail','userId','User\x20found:','Admin\x20selected','/api/lookup?q=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','mobile_number','contactNumber','endUserId','work_number','Contact\x20created:','POST','/api/contacts','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','Creating\x20new\x20task','/api/tasks','Subjects','getString','Descriptions','YYYY-MM-DDTHH:mm:ss','add','ticketId','task','Task\x20created:','/contacts/','user:%s','emit','trigger:browser:url','Token\x20token=','apiKey','remoteUri','stripTrailingSlash','serverUrl','toLowerCase','outbound','calleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','md5','moment','bluebird','ioredis','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','defaults','localhost','socket.io-emitter','GET','headers'];(function(_0x420d85,_0xec6ca2){var _0x4f1ac6=function(_0x15abe9){while(--_0x15abe9){_0x420d85['push'](_0x420d85['shift']());}};_0x4f1ac6(++_0xec6ca2);}(_0x7585,0xec));var _0x5758=function(_0x3e6e5a,_0x5a8460){_0x3e6e5a=_0x3e6e5a-0x0;var _0x509273=_0x7585[_0x3e6e5a];return _0x509273;};'use strict';var _=require(_0x5758('0x0'));var rp=require(_0x5758('0x1'));var md5=require(_0x5758('0x2'));var util=require('util');var moment=require(_0x5758('0x3'));var Promise=require(_0x5758('0x4'));var Redis=require(_0x5758('0x5'));var intUtil=require(_0x5758('0x6'));var config=require(_0x5758('0x7'));var logger=require(_0x5758('0x8'))(_0x5758('0x9'));config[_0x5758('0xa')]=_[_0x5758('0xb')](config[_0x5758('0xa')],{'host':_0x5758('0xc'),'port':0x18eb});var io=require(_0x5758('0xd'))(new Redis(config[_0x5758('0xa')]));function getAdminId(_0x477fec,_0xf3b016,_0x5e4aef,_0x2a2406){return new Promise(function(_0x51d956,_0x80da6f){var _0x2339a2=![];var _0x545457={'method':_0x5758('0xe'),'uri':_0x2a2406+'/api/selector/owners','json':!![]};_0x545457[_0x5758('0xf')]=_0x5e4aef;logger[_0x5758('0x10')](_0x5758('0x11'));return rp(_0x545457)[_0x5758('0x12')](function(_0x48cdc1){if(_0x48cdc1){var _0x1032bc=_0x48cdc1[_0x5758('0x13')];var _0x385641=null;for(_0x385641=0x0;_0x385641<_0x1032bc[_0x5758('0x14')];_0x385641++){if(_0x1032bc[_0x385641][_0x5758('0x15')]===_0x477fec['adminEmail']){_0x477fec[_0x5758('0x16')]=_0x1032bc[_0x385641]['id'];_0x2339a2=!![];}}if(_0x2339a2){logger['info']('Admin\x20found:',_0x477fec['adminId']);_0x51d956(_0x477fec);}else{_0x80da6f({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x80da6f({'statusCode':0x194,'message':_0x5758('0x17')});}})[_0x5758('0x18')](function(_0x46d41d){logger[_0x5758('0x19')]('['+[_0xf3b016[_0x5758('0x1a')]()]+']',_0x46d41d[_0x5758('0x1b')]);_0x80da6f(_0x46d41d);});});}function getUser(_0x1633da,_0x4b068d,_0x36e850){return function(_0x583d4a){return new Promise(function(_0x4f9cad,_0x3fcfbb){var _0x3f91c8={'method':_0x5758('0xe'),'uri':_0x36e850+'/api/selector/owners','json':!![]};_0x3f91c8[_0x5758('0xf')]=_0x4b068d;logger[_0x5758('0x10')]('Getting\x20user\x20list');return rp(_0x3f91c8)[_0x5758('0x12')](function(_0x5c8a24){if(_0x5c8a24){var _0x412e11=_0x5c8a24[_0x5758('0x13')];var _0x2ff264=![];var _0x5403e3=null;if(_0x583d4a['agentEmail']!==null){logger['info']('Getting\x20user\x20with\x20email',_0x583d4a[_0x5758('0x1c')]);_0x583d4a[_0x5758('0x1d')]=_0x583d4a['agentEmail'];for(_0x5403e3=0x0;_0x5403e3<_0x412e11['length'];_0x5403e3++){if(_0x412e11[_0x5403e3][_0x5758('0x15')]===_0x583d4a['agentEmail']){_0x2ff264=!![];_0x583d4a[_0x5758('0x1e')]=_0x412e11[_0x5403e3]['id'];logger[_0x5758('0x10')](_0x5758('0x1f'),_0x583d4a[_0x5758('0x1e')]);}}}if(!_0x2ff264){logger[_0x5758('0x10')](_0x5758('0x20'));_0x583d4a[_0x5758('0x1d')]=_0x583d4a['adminEmail'];_0x583d4a[_0x5758('0x1e')]=_0x583d4a[_0x5758('0x16')];_0x2ff264=!![];}if(_0x2ff264){_0x4f9cad(_0x583d4a);}else{_0x3fcfbb({'statusCode':0x194,'message':_0x5758('0x17')});}}else{_0x3fcfbb({'statusCode':0x194,'message':_0x5758('0x17')});}})['catch'](function(_0x352ecf){logger[_0x5758('0x19')]('['+[_0x1633da[_0x5758('0x1a')]()]+']',_0x352ecf[_0x5758('0x1b')]);_0x3fcfbb(_0x352ecf);});});};}function searchContact(_0x19043b,_0x159c4a,_0x37c423,_0x93a34c){return new Promise(function(_0x3819b4,_0x248a1a){var _0x4c5f47={'method':_0x5758('0xe'),'headers':_0x159c4a,'uri':_0x19043b+_0x5758('0x21')+_0x93a34c+'&f='+_0x37c423+_0x5758('0x22'),'json':!![]};rp(_0x4c5f47)[_0x5758('0x12')](function(_0x23f901){var _0x107ae4=_[_0x5758('0x23')](_0x23f901[_0x5758('0x24')][_0x5758('0x24')],[_0x37c423,_0x93a34c]);_0x3819b4(_0x107ae4);})['catch'](function(_0x58b61c){_0x248a1a(_0x58b61c);});});}function getEndUser(_0x1941f6,_0x13731c,_0x37a8d8){return function(_0x1aa114){return new Promise(function(_0xecb98d,_0x356d30){logger[_0x5758('0x10')](util[_0x5758('0x25')](_0x5758('0x26'),_0x1aa114['contactNumber']));searchContact(_0x37a8d8,_0x13731c,_0x5758('0x27'),_0x1aa114[_0x5758('0x28')])[_0x5758('0x12')](function(_0x10b068){if(_0x10b068){_0x1aa114['endUserId']=_0x10b068['id'];logger['info']('Contact\x20found\x20mobile_number:',_0x1aa114[_0x5758('0x29')]);return _0xecb98d(_0x1aa114);}searchContact(_0x37a8d8,_0x13731c,_0x5758('0x2a'),_0x1aa114[_0x5758('0x28')])[_0x5758('0x12')](function(_0x20aa77){if(_0x20aa77){_0x1aa114[_0x5758('0x29')]=_0x20aa77['id'];logger[_0x5758('0x10')]('Contact\x20found\x20work_number:',_0x1aa114[_0x5758('0x29')]);return _0xecb98d(_0x1aa114);}createEndUser(_0x1aa114,_0x1941f6,_0x13731c,_0x37a8d8)['then'](function(_0x573304){logger[_0x5758('0x10')](_0x5758('0x2b'),_0x573304[_0x5758('0x29')]);return _0xecb98d(_0x573304);});});})[_0x5758('0x18')](function(_0x39c60f){_0x356d30(_0x39c60f);});});};}function createEndUser(_0xbb68e1,_0xe9dc03,_0x3ffdc5,_0x33fc2f){return new Promise(function(_0x1f7b9e,_0xc98404){var _0x4c4553=moment();var _0x5703a8={'method':_0x5758('0x2c'),'uri':_0x33fc2f+_0x5758('0x2d'),'body':{'contact':{'last_name':_0xbb68e1[_0x5758('0x28')],'work_number':_0xbb68e1[_0x5758('0x28')],'mobile_number':_0xbb68e1[_0x5758('0x28')],'owner_id':_0xbb68e1[_0x5758('0x1e')],'created_at':_0x4c4553[_0x5758('0x25')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x5703a8[_0x5758('0xf')]=_0x3ffdc5;logger[_0x5758('0x10')](_0x5758('0x2e'));return rp(_0x5703a8)[_0x5758('0x12')](function(_0x5449ea){_0xbb68e1[_0x5758('0x29')]=_0x5449ea['contact']['id'];_0x1f7b9e(_0xbb68e1);})['catch'](function(_0x18eb67){logger[_0x5758('0x19')]('['+[_0xe9dc03[_0x5758('0x1a')]()]+']',_0x18eb67[_0x5758('0x1b')]);_0xc98404(_0x18eb67[_0x5758('0x1b')]);});});}function getTicket(_0x40082c,_0xda02cf,_0x2eed81,_0x521ed2,_0x14b917){return function(_0x19f597){logger[_0x5758('0x10')](_0x5758('0x2f'));return new Promise(function(_0x2268b2,_0x508994){var _0xaecf35=moment();var _0x555431={'method':_0x5758('0x2c'),'uri':_0x2eed81+_0x5758('0x30'),'body':{'title':intUtil['getString'](_0x521ed2[_0x5758('0x31')],_0x14b917,'\x20'),'description':intUtil[_0x5758('0x32')](_0x521ed2[_0x5758('0x33')],_0x14b917,'\x0a'),'owner_id':_0x19f597[_0x5758('0x1e')],'creater_id':_0x19f597[_0x5758('0x16')],'targetable_id':_0x19f597[_0x5758('0x29')],'targetable_type':'Contact','created_at':_0xaecf35['format'](_0x5758('0x34')),'due_date':_0xaecf35[_0x5758('0x35')](0x1e,'m')[_0x5758('0x25')]('YYYY-MM-DDTHH:mm:ss')},'json':!![]};_0x555431[_0x5758('0xf')]=_0xda02cf;return rp(_0x555431)[_0x5758('0x12')](function(_0x538a89){_0x19f597[_0x5758('0x36')]=_0x538a89[_0x5758('0x37')]['id'];logger[_0x5758('0x10')](_0x5758('0x38'),_0x19f597['ticketId']);_0x2268b2(_0x19f597);})['catch'](function(_0x381072){logger[_0x5758('0x19')]('['+[_0x40082c[_0x5758('0x1a')]()]+']',_0x381072[_0x5758('0x1b')]);_0x508994(_0x381072[_0x5758('0x1b')]);});});};}function emit(_0xf23aca,_0x51c484,_0x3d35c9){var _0xef449a={'uri':_0xf23aca+_0x5758('0x39')+_0x3d35c9};io['to'](util[_0x5758('0x25')](_0x5758('0x3a'),_0x51c484))[_0x5758('0x3b')](_0x5758('0x3c'),_0xef449a);}exports['cs']=function(_0x596c12,_0x9bbd10,_0x9718f4,_0x1d4dab,_0x1833cf,_0x154809,_0x1e2ba1,_0x8b50b2){var _0x246431={};var _0x3849ee={'Authorization':_0x5758('0x3d')+_0x154809[_0x5758('0x3e')]};_0x154809[_0x5758('0x3f')]=intUtil[_0x5758('0x40')](_0x154809[_0x5758('0x3f')]);_0x154809[_0x5758('0x41')]=intUtil['stripTrailingSlash'](_0x154809[_0x5758('0x41')]);var _0x504beb=_0x154809[_0x5758('0x3f')];_0x246431['adminEmail']=_0x154809['username'];_0x246431[_0x5758('0x28')]=_0x8b50b2[_0x5758('0x42')]()===_0x5758('0x43')?_0x9bbd10['destcalleridnum']:_0x9bbd10[_0x5758('0x44')];_0x246431[_0x5758('0x45')]=_0x8b50b2===_0x5758('0x46')||_0x8b50b2===_0x5758('0x47')?_0x5758('0x46'):_0x5758('0x43');if(_0x1d4dab){_0x246431[_0x5758('0x1c')]=_0x1d4dab[_0x5758('0x15')];}var _0x491798=util[_0x5758('0x25')](_0x5758('0x48'),_0x154809['serverUrl'],_0x9bbd10[_0x5758('0x49')],md5(_0x9bbd10['uniqueid']));if(_0x1833cf&&_0x1833cf[_0x5758('0x4a')]){logger[_0x5758('0x10')](_0x5758('0x4b'),_0x5758('0x4c'));_0x9bbd10[_0x5758('0x4d')]=_0x491798;}else if(_0x1e2ba1&&_0x1e2ba1[_0x5758('0x4e')]&&_0x1e2ba1[_0x5758('0x4e')]!==_0x5758('0x4f')){logger[_0x5758('0x10')]('[OUTBOUND]',_0x5758('0x4c'));_0x9bbd10[_0x5758('0x4d')]=_0x491798;}else{_0x9bbd10['recordingURL']='';}return getAdminId(_0x246431,_0x8b50b2,_0x3849ee,_0x504beb)['then'](getUser(_0x8b50b2,_0x3849ee,_0x504beb))[_0x5758('0x12')](getEndUser(_0x8b50b2,_0x3849ee,_0x504beb))[_0x5758('0x12')](getTicket(_0x8b50b2,_0x3849ee,_0x504beb,_0x9718f4,_0x9bbd10))[_0x5758('0x12')](function(_0x469a8f){logger[_0x5758('0x10')](util[_0x5758('0x25')]('The\x20ticket\x20ID\x20is:\x20%s',_0x469a8f['ticketId']));if(_0x8b50b2!=='unmanaged'){logger[_0x5758('0x10')]('['+[_0x8b50b2[_0x5758('0x1a')]()]+']',_0x5758('0x50'));emit(_0x504beb,_0x1d4dab[_0x5758('0x51')],_0x469a8f[_0x5758('0x29')]);}})[_0x5758('0x18')](function(_0x421db0){logger[_0x5758('0x19')]('['+[_0x8b50b2[_0x5758('0x1a')]()]+_0x5758('0x52'),util[_0x5758('0x53')](_0x421db0,{'showHidden':!![],'depth':null}));});};