55 lines
1.9 KiB
JavaScript
55 lines
1.9 KiB
JavaScript
|
|
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;
|