/* global __appdir */ var path = require('path') var db = require(path.join(__appdir, 'lib', 'sequelize')) const wolHelper = require(path.join(__appdir, 'lib', 'wolhelper')) var express = require('express') const { decorateApp } = require('@awaitjs/express') var router = decorateApp(express.Router()) const log = require(path.join(__appdir, 'lib', 'log')) // Permission check middleware router.all(['', '/:x'], async (req, res, next) => { switch (req.method) { case 'POST': if (!await req.user.hasPermission('wakerequests.send')) return res.status(403).send({ error: 'Missing permission', permission: 'wakerequests.send' }) break default: return res.status(400).send() } next() }) router.postAsync('', async (req, res) => { const clients = await db.client.findAll({ where: { id: req.body.clients } }) await log({ category: 'WAKE_ON_LAN', description: 'Wake on Lan signal to ' + clients.length + ' clients initiated by user.', userId: req.user.id }) wolHelper.wakeUp(clients) res.status(200).end() }) module.exports.router = router