Built motion from commit 1fa89557.|2.6.10
[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 _0xc8be=['userId','User\x20found:','Admin\x20selected','/api/lookup?q=','&f=','&entities=contact','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','mobile_number','contactNumber','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts','YYYY-MM-DDTHH:mm:ss','headers','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','/api/tasks','getString','Subjects','Descriptions','Contact','add','ticketId','task','Task\x20created:','/contacts/','user:%s','Token\x20token=','apiKey','stripTrailingSlash','serverUrl','remoteUri','username','outbound','destcalleridnum','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','md5','moment','bluebird','ioredis','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','localhost','socket.io-emitter','GET','info','then','users','length','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','/api/selector/owners','Getting\x20user\x20with\x20email','agentEmail','userEmail'];(function(_0x17a071,_0x2970d0){var _0xdc513a=function(_0x1fae0e){while(--_0x1fae0e){_0x17a071['push'](_0x17a071['shift']());}};_0xdc513a(++_0x2970d0);}(_0xc8be,0x138));var _0xec8b=function(_0x3c5b93,_0x1605d5){_0x3c5b93=_0x3c5b93-0x0;var _0x8efcb4=_0xc8be[_0x3c5b93];return _0x8efcb4;};'use strict';var _=require('lodash');var rp=require('request-promise');var md5=require(_0xec8b('0x0'));var util=require('util');var moment=require(_0xec8b('0x1'));var Promise=require(_0xec8b('0x2'));var Redis=require(_0xec8b('0x3'));var intUtil=require(_0xec8b('0x4'));var config=require(_0xec8b('0x5'));var logger=require(_0xec8b('0x6'))(_0xec8b('0x7'));config['redis']=_['defaults'](config[_0xec8b('0x8')],{'host':_0xec8b('0x9'),'port':0x18eb});var io=require(_0xec8b('0xa'))(new Redis(config['redis']));function getAdminId(_0x219fe5,_0x51e687,_0x10a124,_0x27ffd5){return new Promise(function(_0x4778e6,_0x39910a){var _0x215fd7=![];var _0x242cee={'method':_0xec8b('0xb'),'uri':_0x27ffd5+'/api/selector/owners','json':!![]};_0x242cee['headers']=_0x10a124;logger[_0xec8b('0xc')]('Getting\x20admin\x20information');return rp(_0x242cee)[_0xec8b('0xd')](function(_0x186b99){if(_0x186b99){var _0x154eb5=_0x186b99[_0xec8b('0xe')];var _0x17b9d3=null;for(_0x17b9d3=0x0;_0x17b9d3<_0x154eb5[_0xec8b('0xf')];_0x17b9d3++){if(_0x154eb5[_0x17b9d3]['email']===_0x219fe5[_0xec8b('0x10')]){_0x219fe5[_0xec8b('0x11')]=_0x154eb5[_0x17b9d3]['id'];_0x215fd7=!![];}}if(_0x215fd7){logger[_0xec8b('0xc')](_0xec8b('0x12'),_0x219fe5['adminId']);_0x4778e6(_0x219fe5);}else{_0x39910a({'statusCode':0x194,'message':_0xec8b('0x13')});}}else{_0x39910a({'statusCode':0x194,'message':_0xec8b('0x13')});}})[_0xec8b('0x14')](function(_0x34f162){logger[_0xec8b('0x15')]('['+[_0x51e687[_0xec8b('0x16')]()]+']',_0x34f162[_0xec8b('0x17')]);_0x39910a(_0x34f162);});});}function getUser(_0xe62165,_0xc3466f,_0xa1f41){return function(_0x29d36f){return new Promise(function(_0x533cb8,_0x425a0f){var _0x536f2d={'method':_0xec8b('0xb'),'uri':_0xa1f41+_0xec8b('0x18'),'json':!![]};_0x536f2d['headers']=_0xc3466f;logger[_0xec8b('0xc')]('Getting\x20user\x20list');return rp(_0x536f2d)[_0xec8b('0xd')](function(_0x2da8c9){if(_0x2da8c9){var _0x900322=_0x2da8c9[_0xec8b('0xe')];var _0x3a35c6=![];var _0x421258=null;if(_0x29d36f['agentEmail']!==null){logger[_0xec8b('0xc')](_0xec8b('0x19'),_0x29d36f[_0xec8b('0x1a')]);_0x29d36f[_0xec8b('0x1b')]=_0x29d36f['agentEmail'];for(_0x421258=0x0;_0x421258<_0x900322[_0xec8b('0xf')];_0x421258++){if(_0x900322[_0x421258]['email']===_0x29d36f[_0xec8b('0x1a')]){_0x3a35c6=!![];_0x29d36f[_0xec8b('0x1c')]=_0x900322[_0x421258]['id'];logger[_0xec8b('0xc')](_0xec8b('0x1d'),_0x29d36f[_0xec8b('0x1c')]);}}}if(!_0x3a35c6){logger[_0xec8b('0xc')](_0xec8b('0x1e'));_0x29d36f[_0xec8b('0x1b')]=_0x29d36f[_0xec8b('0x10')];_0x29d36f['userId']=_0x29d36f['adminId'];_0x3a35c6=!![];}if(_0x3a35c6){_0x533cb8(_0x29d36f);}else{_0x425a0f({'statusCode':0x194,'message':_0xec8b('0x13')});}}else{_0x425a0f({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xec8b('0x14')](function(_0x36ce5f){logger[_0xec8b('0x15')]('['+[_0xe62165[_0xec8b('0x16')]()]+']',_0x36ce5f['message']);_0x425a0f(_0x36ce5f);});});};}function searchContact(_0x21d6c2,_0x365ffe,_0x5d7a8d,_0x22afb1){return new Promise(function(_0x35c848,_0x142c98){var _0x377b3a={'method':_0xec8b('0xb'),'headers':_0x365ffe,'uri':_0x21d6c2+_0xec8b('0x1f')+_0x22afb1+_0xec8b('0x20')+_0x5d7a8d+_0xec8b('0x21'),'json':!![]};rp(_0x377b3a)['then'](function(_0x47246e){var _0x338317=_['find'](_0x47246e[_0xec8b('0x22')]['contacts'],[_0x5d7a8d,_0x22afb1]);_0x35c848(_0x338317);})[_0xec8b('0x14')](function(_0x1d508b){_0x142c98(_0x1d508b);});});}function getEndUser(_0x4c94ae,_0x1e5364,_0x546263){return function(_0x1447aa){return new Promise(function(_0x8f78c1,_0x3cda65){logger[_0xec8b('0xc')](util[_0xec8b('0x23')](_0xec8b('0x24'),_0x1447aa['contactNumber']));searchContact(_0x546263,_0x1e5364,_0xec8b('0x25'),_0x1447aa[_0xec8b('0x26')])[_0xec8b('0xd')](function(_0x5831e3){if(_0x5831e3){_0x1447aa[_0xec8b('0x27')]=_0x5831e3['id'];logger[_0xec8b('0xc')](_0xec8b('0x28'),_0x1447aa[_0xec8b('0x27')]);return _0x8f78c1(_0x1447aa);}searchContact(_0x546263,_0x1e5364,_0xec8b('0x29'),_0x1447aa['contactNumber'])[_0xec8b('0xd')](function(_0x9530ec){if(_0x9530ec){_0x1447aa['endUserId']=_0x9530ec['id'];logger['info'](_0xec8b('0x2a'),_0x1447aa[_0xec8b('0x27')]);return _0x8f78c1(_0x1447aa);}createEndUser(_0x1447aa,_0x4c94ae,_0x1e5364,_0x546263)[_0xec8b('0xd')](function(_0x13e77a){logger[_0xec8b('0xc')](_0xec8b('0x2b'),_0x13e77a[_0xec8b('0x27')]);return _0x8f78c1(_0x13e77a);});});})[_0xec8b('0x14')](function(_0x21b279){_0x3cda65(_0x21b279);});});};}function createEndUser(_0x45a1d0,_0x3ab7ca,_0x112696,_0x50730f){return new Promise(function(_0x4da173,_0x4ef909){var _0x3042d4=moment();var _0x5060c3={'method':_0xec8b('0x2c'),'uri':_0x50730f+_0xec8b('0x2d'),'body':{'contact':{'last_name':_0x45a1d0['contactNumber'],'work_number':_0x45a1d0['contactNumber'],'mobile_number':_0x45a1d0[_0xec8b('0x26')],'owner_id':_0x45a1d0['userId'],'created_at':_0x3042d4[_0xec8b('0x23')](_0xec8b('0x2e'))}},'json':!![]};_0x5060c3[_0xec8b('0x2f')]=_0x112696;logger[_0xec8b('0xc')](_0xec8b('0x30'));return rp(_0x5060c3)['then'](function(_0x5e0ada){_0x45a1d0[_0xec8b('0x27')]=_0x5e0ada[_0xec8b('0x31')]['id'];_0x4da173(_0x45a1d0);})[_0xec8b('0x14')](function(_0x33ca2d){logger[_0xec8b('0x15')]('['+[_0x3ab7ca[_0xec8b('0x16')]()]+']',_0x33ca2d[_0xec8b('0x17')]);_0x4ef909(_0x33ca2d['message']);});});}function getTicket(_0x6f6906,_0x4a5208,_0x92f67e,_0x111274,_0x3dcdf4){return function(_0x153f4f){logger[_0xec8b('0xc')](_0xec8b('0x32'));return new Promise(function(_0x171db6,_0x5ead0f){var _0x3e7867=moment();var _0x5f05c6={'method':'POST','uri':_0x92f67e+_0xec8b('0x33'),'body':{'title':intUtil[_0xec8b('0x34')](_0x111274[_0xec8b('0x35')],_0x3dcdf4,'\x20'),'description':intUtil[_0xec8b('0x34')](_0x111274[_0xec8b('0x36')],_0x3dcdf4,'\x0a'),'owner_id':_0x153f4f[_0xec8b('0x1c')],'creater_id':_0x153f4f['adminId'],'targetable_id':_0x153f4f['endUserId'],'targetable_type':_0xec8b('0x37'),'created_at':_0x3e7867[_0xec8b('0x23')](_0xec8b('0x2e')),'due_date':_0x3e7867[_0xec8b('0x38')](0x1e,'m')[_0xec8b('0x23')](_0xec8b('0x2e'))},'json':!![]};_0x5f05c6[_0xec8b('0x2f')]=_0x4a5208;return rp(_0x5f05c6)[_0xec8b('0xd')](function(_0x4d83e4){_0x153f4f[_0xec8b('0x39')]=_0x4d83e4[_0xec8b('0x3a')]['id'];logger['info'](_0xec8b('0x3b'),_0x153f4f[_0xec8b('0x39')]);_0x171db6(_0x153f4f);})[_0xec8b('0x14')](function(_0x163938){logger[_0xec8b('0x15')]('['+[_0x6f6906[_0xec8b('0x16')]()]+']',_0x163938['message']);_0x5ead0f(_0x163938['message']);});});};}function emit(_0xf38134,_0x40c5d0,_0x17655f){var _0x4c764d={'uri':_0xf38134+_0xec8b('0x3c')+_0x17655f};io['to'](util[_0xec8b('0x23')](_0xec8b('0x3d'),_0x40c5d0))['emit']('trigger:browser:url',_0x4c764d);}exports['cs']=function(_0x3d68e6,_0x2aa0fb,_0x455667,_0xb345c8,_0x43cc2d,_0x1bdb64,_0x1c0c18,_0xea006f){var _0x4d79f5={};var _0x4adece={'Authorization':_0xec8b('0x3e')+_0x1bdb64[_0xec8b('0x3f')]};_0x1bdb64['remoteUri']=intUtil[_0xec8b('0x40')](_0x1bdb64['remoteUri']);_0x1bdb64[_0xec8b('0x41')]=intUtil[_0xec8b('0x40')](_0x1bdb64[_0xec8b('0x41')]);var _0x2ecc63=_0x1bdb64[_0xec8b('0x42')];_0x4d79f5['adminEmail']=_0x1bdb64[_0xec8b('0x43')];_0x4d79f5[_0xec8b('0x26')]=_0xea006f['toLowerCase']()===_0xec8b('0x44')?_0x2aa0fb[_0xec8b('0x45')]:_0x2aa0fb['calleridnum'];_0x4d79f5['callDirection']=_0xea006f===_0xec8b('0x46')||_0xea006f===_0xec8b('0x47')?_0xec8b('0x46'):_0xec8b('0x44');if(_0xb345c8){_0x4d79f5[_0xec8b('0x1a')]=_0xb345c8['email'];}var _0x3cb8bd=util['format'](_0xec8b('0x48'),_0x1bdb64[_0xec8b('0x41')],_0x2aa0fb[_0xec8b('0x49')],md5(_0x2aa0fb[_0xec8b('0x49')]));if(_0x43cc2d&&_0x43cc2d['monitor_format']){logger['info'](_0xec8b('0x4a'),_0xec8b('0x4b'));_0x2aa0fb[_0xec8b('0x4c')]=_0x3cb8bd;}else if(_0x1c0c18&&_0x1c0c18[_0xec8b('0x4d')]&&_0x1c0c18[_0xec8b('0x4d')]!==_0xec8b('0x4e')){logger['info'](_0xec8b('0x4f'),_0xec8b('0x4b'));_0x2aa0fb[_0xec8b('0x4c')]=_0x3cb8bd;}else{_0x2aa0fb[_0xec8b('0x4c')]='';}return getAdminId(_0x4d79f5,_0xea006f,_0x4adece,_0x2ecc63)[_0xec8b('0xd')](getUser(_0xea006f,_0x4adece,_0x2ecc63))[_0xec8b('0xd')](getEndUser(_0xea006f,_0x4adece,_0x2ecc63))['then'](getTicket(_0xea006f,_0x4adece,_0x2ecc63,_0x455667,_0x2aa0fb))[_0xec8b('0xd')](function(_0x5921bf){logger['info'](util[_0xec8b('0x23')](_0xec8b('0x50'),_0x5921bf[_0xec8b('0x39')]));if(_0xea006f!==_0xec8b('0x47')){logger['info']('['+[_0xea006f[_0xec8b('0x16')]()]+']',_0xec8b('0x51'));emit(_0x2ecc63,_0xb345c8[_0xec8b('0x52')],_0x5921bf[_0xec8b('0x27')]);}})['catch'](function(_0x402059){logger[_0xec8b('0x15')]('['+[_0xea006f[_0xec8b('0x16')]()]+_0xec8b('0x53'),util[_0xec8b('0x54')](_0x402059,{'showHidden':!![],'depth':null}));});};