mirror of
https://github.com/bckelley/cgm-remote-monitor.git
synced 2026-08-24 03:14:12 -05:00
* Cleans V2 API implementation * Removes unnecessary server init calls in API calls that were unnecessary * Expose latest SBX state through the CTX object
53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
'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 = ctx.sbx;
|
|
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);
|
|
|
|
return api;
|
|
}
|
|
|
|
module.exports = configure;
|