first commit
This commit is contained in:
36
app/api/user-activity/route.ts
Normal file
36
app/api/user-activity/route.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
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 (dernière semaine)
|
||||
const oneWeekAgo = new Date();
|
||||
oneWeekAgo.setDate(oneWeekAgo.getDate() - 7);
|
||||
|
||||
let activeUsers = 0;
|
||||
let inactiveUsers = 0;
|
||||
|
||||
users.forEach(user => {
|
||||
const lastActivity = new Date(user.updatedAt || user.createdAt);
|
||||
if (lastActivity >= oneWeekAgo) {
|
||||
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 });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user