24 lines
696 B
JavaScript
24 lines
696 B
JavaScript
|
|
import express from 'express';
|
||
|
|
import pool from '../db/pool.js';
|
||
|
|
import { DEV_USER_ID } from '../middleware/auth.js';
|
||
|
|
|
||
|
|
const router = express.Router();
|
||
|
|
|
||
|
|
// Real users = anyone except the seeded dev row.
|
||
|
|
async function realUserCount() {
|
||
|
|
const { rows } = await pool.query(
|
||
|
|
`SELECT COUNT(*)::int AS n FROM users WHERE id <> $1`, [DEV_USER_ID]);
|
||
|
|
return rows[0].n;
|
||
|
|
}
|
||
|
|
|
||
|
|
// GET /api/v1/auth/setup-required
|
||
|
|
// Cheap, no auth. Used by AuthGate to decide between Login and Setup screens.
|
||
|
|
router.get('/setup-required', async (_req, res, next) => {
|
||
|
|
try {
|
||
|
|
res.json({ required: (await realUserCount()) === 0 });
|
||
|
|
} catch (err) { next(err); }
|
||
|
|
});
|
||
|
|
|
||
|
|
export default router;
|
||
|
|
export { realUserCount };
|