36 lines
1003 B
TypeScript
36 lines
1003 B
TypeScript
import { NextResponse } from "next/server";
|
|
import { getDatabase } from "@/lib/db/mongodb";
|
|
|
|
export async function GET() {
|
|
try {
|
|
const db = await getDatabase();
|
|
|
|
// Récupérer tous les utilisateurs
|
|
const users = await db.collection("users").find({}).toArray();
|
|
|
|
// Calculer les utilisateurs actifs (30 derniers jours)
|
|
const thirtyDaysAgo = new Date();
|
|
thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);
|
|
|
|
let activeUsers = 0;
|
|
let inactiveUsers = 0;
|
|
|
|
users.forEach(user => {
|
|
const lastActivity = new Date(user.updatedAt || user.createdAt);
|
|
if (lastActivity >= thirtyDaysAgo) {
|
|
activeUsers++;
|
|
} else {
|
|
inactiveUsers++;
|
|
}
|
|
});
|
|
|
|
return NextResponse.json({
|
|
activeUsers,
|
|
inactiveUsers,
|
|
totalUsers: users.length
|
|
});
|
|
} catch (error) {
|
|
console.error("Erreur lors du calcul de l'activité des utilisateurs:", error);
|
|
return NextResponse.json({ error: "Erreur serveur" }, { status: 500 });
|
|
}
|
|
} |