You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.3 KiB

const schemas = require('../schemas/state.js')
const TinkerforgePower = require('../tinkerforge/tinkerforgePower.js')
/**
*
*
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://github.com/tentakelfabrik/fastify-lowdb-riotjs-lessons-learned
*
*/
module.exports = async function (fastify, opts) {
/**
* getting current status of switch
*
*
* @param {object} request
* @param {object} reply
* @return {object}
*/
fastify.get('/state', function(request, reply) {
reply
.code(200)
.header('Content-Type', 'application/json; charset=utf-8')
.send({
'name': process.env.NAME,
'power': request.body.power
})
})
/**
* turn on
*
* @param {object} request
* @param {object} reply
* @return {object}
*/
fastify.put('/state', schemas.putSchema, function(request, reply) {
tinkerforgePower = new TinkerforgePower(request.body.power)
reply
.code(200)
.header('Content-Type', 'application/json; charset=utf-8')
.send({
'name': process.env.NAME,
'power': request.body.power
})
})
}