UNPKG

smart-home

Version:

Netbeast dashboard, IoT apps manager

75 lines (58 loc) 1.9 kB
// require sistema // modules var express = require('express') // librerias propias var Resource = require('../models/resource') var ApiError = require('../util/api-error') var broker = require('../helpers/broker') var router = module.exports = express.Router() router.route('/resources') .get(function (req, res, next) { Resource.find(req.query, function (err, resources) { if (err && err.statusCode !== 404) return next(err) res.json(resources || []) }) }) .post(function (req, res, next) { Resource.findOne(req.body, function (err, resource) { if (err && err.statusCode !== 404) return next(err) if (resource) return next(new ApiError(405, 'This resource exists!')) Resource.create(req.body, function (err, item) { if (err) return next(err) return res.json(item) }) }) }) .patch(function (req, res, next) { Resource.findOne(req.query, function (err, resource) { if (err) return next(err) Resource.update(req.query, req.body, function (err) { if (err) return next(err) return res.status(204).end() }) }) }) .delete(function (req, res, next) { Resource.destroy(req.query, function (err, resources) { if (err) return next(err) return res.status(204).end() }) }) broker.client.on('#api/resources/post', function (query) { console.log('#api/resources/post') console.log(query) Resource.findOne(query, function (err, resource) { if (err && err.statusCode !== 404) return console.trace(err) if (resource) return // resource already exist Resource.create(query, function (err, item) { if (err) return console.trace(err) }) }) }) broker.client.on('#api/resources/delete', function (query) { console.log('#api/resources/delete') console.log(query) Resource.destroy(query, function (err, resources) { if (err && err.statusCode !== 404) return console.trace(err) }) })