Built motion from commit f623a78c.|2.6.31
[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 _0x3e74=['agentEmail','Getting\x20user\x20with\x20email','userEmail','userId','Admin\x20selected','adminId','message','/api/lookup?q=','&f=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','error','Creating\x20new\x20task','/api/tasks','getString','Subjects','Descriptions','Contact','YYYY-MM-DDTHH:mm:ss','add','ticketId','Task\x20created:','/contacts/','user:%s','emit','Token\x20token=','apiKey','stripTrailingSlash','serverUrl','remoteUri','username','toLowerCase','outbound','destcalleridnum','calleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','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','md5','util','moment','bluebird','ioredis','../../../../config/logger','freshsales','redis','localhost','socket.io-emitter','GET','info','Getting\x20admin\x20information','then','users','length','email','adminEmail','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','toUpperCase','/api/selector/owners','headers','Getting\x20user\x20list'];(function(_0x55e015,_0x1c5ed3){var _0x25028a=function(_0x2bfd5e){while(--_0x2bfd5e){_0x55e015['push'](_0x55e015['shift']());}};_0x25028a(++_0x1c5ed3);}(_0x3e74,0x1ad));var _0x43e7=function(_0x3066f1,_0xdda046){_0x3066f1=_0x3066f1-0x0;var _0x36f480=_0x3e74[_0x3066f1];return _0x36f480;};'use strict';var _=require(_0x43e7('0x0'));var rp=require('request-promise');var md5=require(_0x43e7('0x1'));var util=require(_0x43e7('0x2'));var moment=require(_0x43e7('0x3'));var Promise=require(_0x43e7('0x4'));var Redis=require(_0x43e7('0x5'));var intUtil=require('./util');var config=require('../../../../config/environment');var logger=require(_0x43e7('0x6'))(_0x43e7('0x7'));config['redis']=_['defaults'](config[_0x43e7('0x8')],{'host':_0x43e7('0x9'),'port':0x18eb});var io=require(_0x43e7('0xa'))(new Redis(config[_0x43e7('0x8')]));function getAdminId(_0x48c5a0,_0x2a5a2e,_0xffccba,_0x2afce9){return new Promise(function(_0x1c1adf,_0x32b4f){var _0x4ec35c=![];var _0x123d36={'method':_0x43e7('0xb'),'uri':_0x2afce9+'/api/selector/owners','json':!![]};_0x123d36['headers']=_0xffccba;logger[_0x43e7('0xc')](_0x43e7('0xd'));return rp(_0x123d36)[_0x43e7('0xe')](function(_0x5aa6c9){if(_0x5aa6c9){var _0xf02cc1=_0x5aa6c9[_0x43e7('0xf')];var _0x3c31f5=null;for(_0x3c31f5=0x0;_0x3c31f5<_0xf02cc1[_0x43e7('0x10')];_0x3c31f5++){if(_0xf02cc1[_0x3c31f5][_0x43e7('0x11')]===_0x48c5a0[_0x43e7('0x12')]){_0x48c5a0['adminId']=_0xf02cc1[_0x3c31f5]['id'];_0x4ec35c=!![];}}if(_0x4ec35c){logger['info'](_0x43e7('0x13'),_0x48c5a0['adminId']);_0x1c1adf(_0x48c5a0);}else{_0x32b4f({'statusCode':0x194,'message':_0x43e7('0x14')});}}else{_0x32b4f({'statusCode':0x194,'message':_0x43e7('0x14')});}})[_0x43e7('0x15')](function(_0x4869e1){logger['error']('['+[_0x2a5a2e[_0x43e7('0x16')]()]+']',_0x4869e1['message']);_0x32b4f(_0x4869e1);});});}function getUser(_0x469f8d,_0x508c90,_0x2c38cb){return function(_0x1f3a4c){return new Promise(function(_0x4444b9,_0x2527bc){var _0x148811={'method':_0x43e7('0xb'),'uri':_0x2c38cb+_0x43e7('0x17'),'json':!![]};_0x148811[_0x43e7('0x18')]=_0x508c90;logger[_0x43e7('0xc')](_0x43e7('0x19'));return rp(_0x148811)[_0x43e7('0xe')](function(_0x19b300){if(_0x19b300){var _0x34c81d=_0x19b300[_0x43e7('0xf')];var _0x532134=![];var _0x3e6167=null;if(_0x1f3a4c[_0x43e7('0x1a')]!==null){logger[_0x43e7('0xc')](_0x43e7('0x1b'),_0x1f3a4c[_0x43e7('0x1a')]);_0x1f3a4c[_0x43e7('0x1c')]=_0x1f3a4c[_0x43e7('0x1a')];for(_0x3e6167=0x0;_0x3e6167<_0x34c81d['length'];_0x3e6167++){if(_0x34c81d[_0x3e6167]['email']===_0x1f3a4c[_0x43e7('0x1a')]){_0x532134=!![];_0x1f3a4c['userId']=_0x34c81d[_0x3e6167]['id'];logger[_0x43e7('0xc')]('User\x20found:',_0x1f3a4c[_0x43e7('0x1d')]);}}}if(!_0x532134){logger[_0x43e7('0xc')](_0x43e7('0x1e'));_0x1f3a4c[_0x43e7('0x1c')]=_0x1f3a4c['adminEmail'];_0x1f3a4c['userId']=_0x1f3a4c[_0x43e7('0x1f')];_0x532134=!![];}if(_0x532134){_0x4444b9(_0x1f3a4c);}else{_0x2527bc({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x2527bc({'statusCode':0x194,'message':_0x43e7('0x14')});}})[_0x43e7('0x15')](function(_0x4ab607){logger['error']('['+[_0x469f8d['toUpperCase']()]+']',_0x4ab607[_0x43e7('0x20')]);_0x2527bc(_0x4ab607);});});};}function searchContact(_0x2635cb,_0x54292a,_0x113631,_0xfccca1){return new Promise(function(_0x5721e1,_0x2cfdc0){var _0x2d4db4={'method':_0x43e7('0xb'),'headers':_0x54292a,'uri':_0x2635cb+_0x43e7('0x21')+_0xfccca1+_0x43e7('0x22')+_0x113631+_0x43e7('0x23'),'json':!![]};rp(_0x2d4db4)[_0x43e7('0xe')](function(_0x212507){var _0x133a53=_[_0x43e7('0x24')](_0x212507[_0x43e7('0x25')][_0x43e7('0x25')],[_0x113631,_0xfccca1]);_0x5721e1(_0x133a53);})['catch'](function(_0x3b3e57){_0x2cfdc0(_0x3b3e57);});});}function getEndUser(_0xb6be6,_0x138443,_0x4c6e99){return function(_0x39b5d8){return new Promise(function(_0x1decaf,_0x419d57){logger[_0x43e7('0xc')](util[_0x43e7('0x26')](_0x43e7('0x27'),_0x39b5d8[_0x43e7('0x28')]));searchContact(_0x4c6e99,_0x138443,_0x43e7('0x29'),_0x39b5d8[_0x43e7('0x28')])[_0x43e7('0xe')](function(_0x39a8d9){if(_0x39a8d9){_0x39b5d8[_0x43e7('0x2a')]=_0x39a8d9['id'];logger[_0x43e7('0xc')](_0x43e7('0x2b'),_0x39b5d8[_0x43e7('0x2a')]);return _0x1decaf(_0x39b5d8);}searchContact(_0x4c6e99,_0x138443,_0x43e7('0x2c'),_0x39b5d8[_0x43e7('0x28')])['then'](function(_0x16e4c5){if(_0x16e4c5){_0x39b5d8[_0x43e7('0x2a')]=_0x16e4c5['id'];logger[_0x43e7('0xc')](_0x43e7('0x2d'),_0x39b5d8[_0x43e7('0x2a')]);return _0x1decaf(_0x39b5d8);}createEndUser(_0x39b5d8,_0xb6be6,_0x138443,_0x4c6e99)[_0x43e7('0xe')](function(_0xe07bba){logger[_0x43e7('0xc')](_0x43e7('0x2e'),_0xe07bba['endUserId']);return _0x1decaf(_0xe07bba);});});})[_0x43e7('0x15')](function(_0x4acc75){_0x419d57(_0x4acc75);});});};}function createEndUser(_0x5460b2,_0x3e77b1,_0x3bbf30,_0x310ada){return new Promise(function(_0x206733,_0x224c59){var _0x3e6243=moment();var _0x3f2da1={'method':_0x43e7('0x2f'),'uri':_0x310ada+_0x43e7('0x30'),'body':{'contact':{'last_name':_0x5460b2[_0x43e7('0x28')],'work_number':_0x5460b2[_0x43e7('0x28')],'mobile_number':_0x5460b2['contactNumber'],'owner_id':_0x5460b2[_0x43e7('0x1d')],'created_at':_0x3e6243[_0x43e7('0x26')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x3f2da1['headers']=_0x3bbf30;logger[_0x43e7('0xc')](_0x43e7('0x31'));return rp(_0x3f2da1)[_0x43e7('0xe')](function(_0x40dc7b){_0x5460b2[_0x43e7('0x2a')]=_0x40dc7b[_0x43e7('0x32')]['id'];_0x206733(_0x5460b2);})[_0x43e7('0x15')](function(_0x4ea10e){logger[_0x43e7('0x33')]('['+[_0x3e77b1[_0x43e7('0x16')]()]+']',_0x4ea10e[_0x43e7('0x20')]);_0x224c59(_0x4ea10e[_0x43e7('0x20')]);});});}function getTicket(_0x3b3bd4,_0x258556,_0x463e75,_0x28a141,_0x467857){return function(_0x49e922){logger[_0x43e7('0xc')](_0x43e7('0x34'));return new Promise(function(_0x3ffd11,_0x3ad3b4){var _0x49a187=moment();var _0x200203={'method':_0x43e7('0x2f'),'uri':_0x463e75+_0x43e7('0x35'),'body':{'title':intUtil[_0x43e7('0x36')](_0x28a141[_0x43e7('0x37')],_0x467857,'\x20'),'description':intUtil[_0x43e7('0x36')](_0x28a141[_0x43e7('0x38')],_0x467857,'\x0a'),'owner_id':_0x49e922[_0x43e7('0x1d')],'creater_id':_0x49e922[_0x43e7('0x1f')],'targetable_id':_0x49e922[_0x43e7('0x2a')],'targetable_type':_0x43e7('0x39'),'created_at':_0x49a187['format'](_0x43e7('0x3a')),'due_date':_0x49a187[_0x43e7('0x3b')](0x1e,'m')[_0x43e7('0x26')]('YYYY-MM-DDTHH:mm:ss')},'json':!![]};_0x200203[_0x43e7('0x18')]=_0x258556;return rp(_0x200203)['then'](function(_0x1d821d){_0x49e922[_0x43e7('0x3c')]=_0x1d821d['task']['id'];logger[_0x43e7('0xc')](_0x43e7('0x3d'),_0x49e922[_0x43e7('0x3c')]);_0x3ffd11(_0x49e922);})[_0x43e7('0x15')](function(_0x2e89fd){logger[_0x43e7('0x33')]('['+[_0x3b3bd4[_0x43e7('0x16')]()]+']',_0x2e89fd[_0x43e7('0x20')]);_0x3ad3b4(_0x2e89fd[_0x43e7('0x20')]);});});};}function emit(_0x4551e8,_0x409b62,_0x367ff8){var _0x817637={'uri':_0x4551e8+_0x43e7('0x3e')+_0x367ff8};io['to'](util['format'](_0x43e7('0x3f'),_0x409b62))[_0x43e7('0x40')]('trigger:browser:url',_0x817637);}exports['cs']=function(_0x443513,_0x39a457,_0x2fe420,_0x3e9330,_0x3af6b7,_0x472530,_0x88d259,_0x10e67f){var _0x2ff35b={};var _0x2942dc={'Authorization':_0x43e7('0x41')+_0x472530[_0x43e7('0x42')]};_0x472530['remoteUri']=intUtil['stripTrailingSlash'](_0x472530['remoteUri']);_0x472530['serverUrl']=intUtil[_0x43e7('0x43')](_0x472530[_0x43e7('0x44')]);var _0x1ba06f=_0x472530[_0x43e7('0x45')];_0x2ff35b['adminEmail']=_0x472530[_0x43e7('0x46')];_0x2ff35b[_0x43e7('0x28')]=_0x10e67f[_0x43e7('0x47')]()===_0x43e7('0x48')?_0x39a457[_0x43e7('0x49')]:_0x39a457[_0x43e7('0x4a')];_0x2ff35b[_0x43e7('0x4b')]=_0x10e67f===_0x43e7('0x4c')||_0x10e67f===_0x43e7('0x4d')?_0x43e7('0x4c'):_0x43e7('0x48');if(_0x3e9330){_0x2ff35b['agentEmail']=_0x3e9330[_0x43e7('0x11')];}var _0x272da6=util[_0x43e7('0x26')](_0x43e7('0x4e'),_0x472530[_0x43e7('0x44')],_0x39a457[_0x43e7('0x4f')],md5(_0x39a457['uniqueid']));if(_0x3af6b7&&_0x3af6b7[_0x43e7('0x50')]){logger[_0x43e7('0xc')](_0x43e7('0x51'),_0x43e7('0x52'));_0x39a457[_0x43e7('0x53')]=_0x272da6;}else if(_0x88d259&&_0x88d259[_0x43e7('0x54')]&&_0x88d259['recordingFormat']!=='none'){logger[_0x43e7('0xc')](_0x43e7('0x55'),_0x43e7('0x52'));_0x39a457[_0x43e7('0x53')]=_0x272da6;}else{_0x39a457['recordingURL']='';}return getAdminId(_0x2ff35b,_0x10e67f,_0x2942dc,_0x1ba06f)['then'](getUser(_0x10e67f,_0x2942dc,_0x1ba06f))[_0x43e7('0xe')](getEndUser(_0x10e67f,_0x2942dc,_0x1ba06f))[_0x43e7('0xe')](getTicket(_0x10e67f,_0x2942dc,_0x1ba06f,_0x2fe420,_0x39a457))[_0x43e7('0xe')](function(_0x1c1cfa){logger['info'](util[_0x43e7('0x26')](_0x43e7('0x56'),_0x1c1cfa['ticketId']));if(_0x10e67f!==_0x43e7('0x4d')){logger[_0x43e7('0xc')]('['+[_0x10e67f[_0x43e7('0x16')]()]+']',_0x43e7('0x57'));emit(_0x1ba06f,_0x3e9330[_0x43e7('0x58')],_0x1c1cfa['endUserId']);}})[_0x43e7('0x15')](function(_0x3fc7fa){logger[_0x43e7('0x33')]('['+[_0x10e67f['toUpperCase']()]+_0x43e7('0x59'),util[_0x43e7('0x5a')](_0x3fc7fa,{'showHidden':!![],'depth':null}));});};