← back to StudentLoanTracker
src/app/api/admin/route.ts
38 lines
import { NextRequest, NextResponse } from 'next/server';
function isAuthorized(request: NextRequest): boolean {
const authHeader = request.headers.get('authorization');
if (!authHeader || !authHeader.startsWith('Basic ')) {
return false;
}
const base64 = authHeader.slice(6);
const decoded = Buffer.from(base64, 'base64').toString('utf-8');
const [username, password] = decoded.split(':');
return username === 'admin' && password === process.env.ADMIN_PASSWORD;
}
export async function GET(request: NextRequest) {
if (!isAuthorized(request)) {
return NextResponse.json(
{ success: false, error: 'Unauthorized' },
{ status: 401, headers: { 'WWW-Authenticate': 'Basic realm="Admin"' } }
);
}
// TODO: Return admin dashboard data
// TODO: Anonymous usage stats, servicer count, account count, system health
return NextResponse.json({
success: true,
message: 'Admin API - system health and anonymous analytics',
stats: {
servicer_count: 0,
account_count: 0,
calculator_runs_today: 0,
uptime: process.uptime(),
},
});
}