fix: add requests to admin analytics
This commit is contained in:
+18
-10
@@ -1,12 +1,12 @@
|
||||
import { Router } from "express";
|
||||
import { io } from "../index";
|
||||
import {
|
||||
type AuthenticatedRequest,
|
||||
authenticate,
|
||||
AuthenticatedRequest,
|
||||
requireAdmin,
|
||||
} from "../middleware/auth";
|
||||
import { prisma } from "../utils/prisma";
|
||||
import { asyncHandler } from "../middleware/errorHandler";
|
||||
import { io } from "../index";
|
||||
import { prisma } from "../utils/prisma";
|
||||
|
||||
const router = Router();
|
||||
|
||||
@@ -197,19 +197,27 @@ router.get(
|
||||
sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);
|
||||
const thirtyDaysAgo = new Date();
|
||||
thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);
|
||||
const [userStats, transactionStats, watchStats, dailyActivity] =
|
||||
await Promise.all([
|
||||
prisma.$queryRaw`SELECT COUNT(*) as total, COUNT(CASE WHEN created_at >= ${sevenDaysAgo} THEN 1 END) as new_this_week FROM users`,
|
||||
prisma.$queryRaw`SELECT SUM(CASE WHEN type = 'EARN' THEN amount ELSE 0 END) as total_earned, SUM(CASE WHEN type = 'SPEND' THEN amount ELSE 0 END) as total_spent, COUNT(*) as total_transactions FROM transactions`,
|
||||
prisma.$queryRaw`SELECT SUM(duration) as total_seconds, SUM(credits_earned) as total_credits, COUNT(*) as total_events FROM watch_events WHERE is_processed = true`,
|
||||
prisma.$queryRaw`SELECT DATE(created_at) as date, COUNT(DISTINCT user_id) as active_users, SUM(CASE WHEN type = 'EARN' THEN amount ELSE 0 END) as earned, SUM(CASE WHEN type = 'SPEND' THEN amount ELSE 0 END) as spent FROM transactions WHERE created_at >= ${thirtyDaysAgo} GROUP BY DATE(created_at) ORDER BY date DESC LIMIT 30`,
|
||||
]);
|
||||
const [
|
||||
userStats,
|
||||
transactionStats,
|
||||
watchStats,
|
||||
requestStats,
|
||||
dailyActivity,
|
||||
] = await Promise.all([
|
||||
prisma.$queryRaw`SELECT COUNT(*) as total, COUNT(CASE WHEN created_at >= ${sevenDaysAgo} THEN 1 END) as new_this_week FROM users`,
|
||||
prisma.$queryRaw`SELECT SUM(CASE WHEN type = 'EARN' THEN amount ELSE 0 END) as total_earned, SUM(CASE WHEN type = 'SPEND' THEN amount ELSE 0 END) as total_spent, COUNT(*) as total_transactions FROM transactions`,
|
||||
prisma.$queryRaw`SELECT SUM(duration) as total_seconds, SUM(credits_earned) as total_credits, COUNT(*) as total_events FROM watch_events WHERE is_processed = true`,
|
||||
prisma.$queryRaw`SELECT COUNT(*) as total, COUNT(CASE WHEN status = 'PENDING' THEN 1 END) as pending, COUNT(CASE WHEN status = 'APPROVED' THEN 1 END) as approved, COUNT(CASE WHEN status = 'DECLINED' THEN 1 END) as declined FROM content_requests`,
|
||||
prisma.$queryRaw`SELECT DATE(created_at) as date, COUNT(DISTINCT user_id) as active_users, SUM(CASE WHEN type = 'EARN' THEN amount ELSE 0 END) as earned, SUM(CASE WHEN type = 'SPEND' THEN amount ELSE 0 END) as spent FROM transactions WHERE created_at >= ${thirtyDaysAgo} GROUP BY DATE(created_at) ORDER BY date DESC LIMIT 30`,
|
||||
]);
|
||||
res.json({
|
||||
users: userStats[0],
|
||||
transactions: transactionStats[0],
|
||||
watchStats: watchStats[0],
|
||||
requests: requestStats[0],
|
||||
dailyActivity,
|
||||
});
|
||||
}),
|
||||
);
|
||||
|
||||
export { router as adminRouter };
|
||||
|
||||
Reference in New Issue
Block a user