Files
NoIdle/backend/routes/keys.js

55 lines
1.9 KiB
JavaScript
Raw Normal View History

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;