UNPKG

nightscout

Version:

Nightscout acts as a web-based CGM (Continuous Glucose Monitor) to allow multiple caregivers to remotely view a patients glucose data in realtime.

60 lines (48 loc) 1.75 kB
'use strict'; var _ = require('lodash'); var moment = require('moment'); function configure (app, wares, ctx, env) { var express = require('express') , api = express.Router( ); var translate = ctx.language.translate; // invoke common middleware api.use(wares.sendJSONStatus); // text body types get handled as raw buffer stream api.use(wares.rawParser); // json body types get handled as parsed json api.use(wares.jsonParser); ctx.virtAsstBase.setupVirtAsstHandlers(ctx.googleHome); api.post('/googlehome', ctx.authorization.isPermitted('api:*:read'), function (req, res, next) { console.log('Incoming request from Google Home'); var locale = _.get(req, 'body.queryResult.languageCode'); if(locale){ if(locale.length > 2) { locale = locale.substr(0, 2); } ctx.language.set(locale); moment.locale(locale); } var handler = ctx.googleHome.getIntentHandler(req.body.queryResult.intent.displayName, req.body.queryResult.parameters.metric); if (handler){ var sbx = initializeSandbox(); handler(function (title, response) { res.json(ctx.googleHome.buildSpeechletResponse(response, false)); next( ); return; }, req.body.queryResult.parameters, sbx); } else { res.json(ctx.googleHome.buildSpeechletResponse(translate('virtAsstUnknownIntentText'), true)); next( ); return; } }); ctx.virtAsstBase.setupMutualIntents(ctx.googleHome); function initializeSandbox() { var sbx = require('../../sandbox')(); sbx.serverInit(env, ctx); ctx.plugins.setProperties(sbx); return sbx; } return api; } module.exports = configure;