UNPKG

cce-service

Version:

HydraExpress microservice for Cisco Contact Center Enterprise APIs

102 lines (92 loc) 2.91 kB
const hydraExpress = require('hydra-express') const env = require('node-env-file') const pkg = require('./package.json') const util = require('util') const UnifiedConfig = require('cce-unified-config') // load environment file env('./.env') // init CCE API connector const cce = new UnifiedConfig({ fqdn: process.env.cce_fqdn, username: process.env.cce_username, password: process.env.cce_password }) // set up hydra const hydra = hydraExpress.getHydra() // load environment file env(__dirname + '/.env') // set up hydra and redis config const hydraConfig = { hydra: { serviceName: pkg.name, serviceIP: process.env.hydra_service_ip || '', servicePort: process.env.hydra_service_port || 0, serviceType: process.env.hydra_service_type || '', serviceDescription: pkg.description, redis: { url: process.env.redis_url, port: process.env.redis_port, db: process.env.redis_db } } } // define routes function onRegisterRoutes() { var express = hydraExpress.getExpress() var api = express.Router() api.post('/agents/:agent/modify', async function(req, res) { // example body // req.body = { // action: 'disable', // setting: 'auto_answer', // agent: '41377', // user: 'ccondry@cisco.com' // } const action = req.body.action const agent = req.params.agent const setting = req.body.setting const user = req.body.user console.log(`request received from user ${user} to modify agent ${agent}`) try { let data if (setting === 'auto_answer') { // change auto answer desk settings if (action === 'disable') { data = await cce.changeDeskSetting(agent, process.env.default_no_auto_answer) console.log(`successfully modified agent ${req.body.agent} for user ${req.body.user}`) res.status(200).send({data}) } else if (action === 'enable') { data = await cce.changeDeskSetting(agent, process.env.default_auto_answer) console.log(`successfully modified agent ${req.body.agent} for user ${req.body.user}`) res.status(200).send({data}) } else { const err = 'invalid action for auto_answer: ' + action console.log(err) return res.status(422).send({err}) } } else { const err = 'unknown setting ' + setting console.log(err) return res.status(422).send({err}) } } catch (error) { // ... error checks console.log(error) if (error.status) { return res.status(error.status).send(error) } else { return res.status(500).send({error}) } } }) hydraExpress.registerRoutes({ '': api }) } // start up hydraExpress.init(hydraConfig, onRegisterRoutes) .then(serviceInfo => { console.log('serviceInfo', serviceInfo) // return 0 }) .catch(err => console.log('err', err))