add 5 Ultimas Horas

This commit is contained in:
2025-12-26 15:01:26 -03:00
parent d5b32fb4a2
commit 1b12d51cde
2 changed files with 42 additions and 4 deletions

View File

@@ -76,6 +76,26 @@ app.get('/api/history', async (req, res) => {
}
});
// Recent Scans Endpoint (Last 5 Hours)
app.get('/api/recent', async (req, res) => {
try {
const fiveHoursAgo = new Date(Date.now() - 5 * 60 * 60 * 1000);
const logs = await prisma.accessLog.findMany({
where: {
timestamp: {
gte: fiveHoursAgo
}
},
orderBy: {
timestamp: 'desc'
}
});
res.json(logs);
} catch (err) {
res.status(500).json({ error: err.message });
}
});
// Detection Endpoint (from Python)
app.post('/api/detect', async (req, res) => {
const { plate_number } = req.body;

View File

@@ -39,6 +39,7 @@ function App() {
// Load initial data
useEffect(() => {
fetchPlates();
fetchRecentDetections();
// Socket listeners
socket.on('new_detection', (data) => {
@@ -51,6 +52,23 @@ function App() {
};
}, []);
const fetchRecentDetections = async () => {
try {
const res = await axios.get(`${API_URL}/api/recent`);
// Map backend AccessLog format to frontend detection format if needed
// AccessLog: { id, plateNumber, accessStatus, timestamp }
// Detection: { plate, status, timestamp }
const formatted = res.data.map(log => ({
plate: log.plateNumber,
status: log.accessStatus,
timestamp: log.timestamp
}));
setDetections(formatted);
} catch (err) {
console.error("Error fetching recent detections:", err);
}
};
const fetchPlates = async () => {
try {
const res = await axios.get(`${API_URL}/api/plates`);