feat: Implementação completa do NoIdle - Cliente, Backend e Scripts
- Cliente Windows com modo silencioso e auto-start robusto - Backend Node.js + API REST - Frontend Next.js + Dashboard - Scripts PowerShell de configuração e diagnóstico - Documentação completa - Build scripts para Windows e Linux - Solução de auto-start após reinicialização Resolução do problema: Cliente não voltava ativo após reboot Solução: Registro do Windows + Task Scheduler + Modo silencioso
This commit is contained in:
54
backend/routes/keys.js
Normal file
54
backend/routes/keys.js
Normal file
@@ -0,0 +1,54 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const { query } = require('../config/database');
|
||||
const { authenticateToken } = require('../middleware/auth');
|
||||
|
||||
router.get('/', authenticateToken, async (req, res) => {
|
||||
try {
|
||||
const result = await query(
|
||||
'SELECT * FROM activation_keys WHERE company_id = $1 ORDER BY created_at DESC',
|
||||
[req.user.company_id]
|
||||
);
|
||||
res.json({ success: true, keys: result.rows });
|
||||
} catch (error) {
|
||||
console.error('Erro ao listar chaves:', error);
|
||||
res.status(500).json({ error: 'Erro ao listar chaves' });
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/', authenticateToken, async (req, res) => {
|
||||
try {
|
||||
const { description } = req.body;
|
||||
const key = `PC-${Date.now()}-${Math.random().toString(36).substring(2, 10).toUpperCase()}`;
|
||||
|
||||
const result = await query(
|
||||
'INSERT INTO activation_keys (key, company_id, description, devices_count) VALUES ($1, $2, $3, 0) RETURNING *',
|
||||
[key, req.user.company_id, description]
|
||||
);
|
||||
|
||||
res.status(201).json({ success: true, key: result.rows[0] });
|
||||
} catch (error) {
|
||||
console.error('Erro ao criar chave:', error);
|
||||
res.status(500).json({ error: 'Erro ao criar chave' });
|
||||
}
|
||||
});
|
||||
|
||||
router.delete('/:id', authenticateToken, async (req, res) => {
|
||||
try {
|
||||
const result = await query(
|
||||
'DELETE FROM activation_keys WHERE id = $1 AND company_id = $2 RETURNING *',
|
||||
[req.params.id, req.user.company_id]
|
||||
);
|
||||
|
||||
if (result.rows.length === 0) {
|
||||
return res.status(404).json({ error: 'Chave não encontrada' });
|
||||
}
|
||||
|
||||
res.json({ success: true, message: 'Chave deletada' });
|
||||
} catch (error) {
|
||||
console.error('Erro ao deletar chave:', error);
|
||||
res.status(500).json({ error: 'Erro ao deletar chave' });
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user