hv
This commit is contained in:
parent
4299738f37
commit
c3b02c4530
53
server.js
53
server.js
@ -210,7 +210,60 @@ function setupRoutes() {
|
||||
res.status(500).json({ message: "Server error fetching logs." });
|
||||
}
|
||||
});
|
||||
// Gets all users for the management table
|
||||
app.get('/api/admin/users', authenticateToken, requireRole('admin'), async (req, res) => {
|
||||
try {
|
||||
const users = await db.all("SELECT id, username, role FROM users");
|
||||
// Add a flag to identify the primary admin to protect them from deletion/demotion
|
||||
const usersWithPrimaryFlag = users.map(u => ({
|
||||
...u,
|
||||
isPrimary: u.username === ADMIN_USERNAME
|
||||
}));
|
||||
res.json(usersWithPrimaryFlag);
|
||||
} catch {
|
||||
res.status(500).json({ message: "Failed to fetch users." });
|
||||
}
|
||||
});
|
||||
|
||||
// Gets all time entries for the detailed log view
|
||||
app.get('/api/admin/logs', authenticateToken, requireRole('admin'), async (req, res) => {
|
||||
try {
|
||||
const rows = await db.all("SELECT * FROM time_entries ORDER BY punch_in_time DESC");
|
||||
res.json(rows);
|
||||
} catch {
|
||||
res.status(500).json({ message: "Server error fetching logs." });
|
||||
}
|
||||
});
|
||||
|
||||
// Gets only PENDING time off requests for the main dashboard view
|
||||
app.get('/api/admin/time-off-requests/pending', authenticateToken, requireRole('admin'), async (req, res) => {
|
||||
try {
|
||||
const rows = await db.all("SELECT * FROM time_off_requests WHERE status = 'pending' ORDER BY start_date ASC");
|
||||
res.json(rows);
|
||||
} catch {
|
||||
res.status(500).json({ message: "Failed to fetch pending requests." });
|
||||
}
|
||||
});
|
||||
|
||||
// Gets APPROVED/DENIED requests for the history view
|
||||
app.get('/api/admin/time-off-requests/history', authenticateToken, requireRole('admin'), async (req, res) => {
|
||||
try {
|
||||
const rows = await db.all("SELECT * FROM time_off_requests WHERE status != 'pending' ORDER BY start_date DESC");
|
||||
res.json(rows);
|
||||
} catch {
|
||||
res.status(500).json({ message: "Failed to fetch request history." });
|
||||
}
|
||||
});
|
||||
|
||||
// Gets archived time entries
|
||||
app.get('/api/admin/archives', authenticateToken, requireRole('admin'), async (req, res) => {
|
||||
try {
|
||||
const rows = await db.all("SELECT * FROM archived_time_entries ORDER BY archived_at DESC");
|
||||
res.json(rows);
|
||||
} catch {
|
||||
res.status(500).json({ message: "Failed to fetch archives." });
|
||||
}
|
||||
});
|
||||
// THIS IS THE NEW/FIXED ROUTE
|
||||
app.put('/api/admin/logs/:id', authenticateToken, requireRole('admin'), async (req, res) => {
|
||||
try {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user