8.5 월간집계: 월별 지표 산출 배치/차트/다운로드(CSV) o
This commit is contained in:
19
src/app/api/stats/monthly/route.ts
Normal file
19
src/app/api/stats/monthly/route.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export async function GET(req: Request) {
|
||||
const { searchParams } = new URL(req.url);
|
||||
const year = Number(searchParams.get("year")) || new Date().getFullYear();
|
||||
const month = Number(searchParams.get("month")) || new Date().getMonth() + 1; // 1-12
|
||||
const start = new Date(year, month - 1, 1);
|
||||
const end = new Date(year, month, 1);
|
||||
|
||||
const posts = await prisma.post.count({ where: { createdAt: { gte: start, lt: end } } });
|
||||
const comments = await prisma.comment.count({ where: { createdAt: { gte: start, lt: end } } });
|
||||
const users = await prisma.user.count({ where: { createdAt: { gte: start, lt: end } } });
|
||||
const reports = await prisma.report.count({ where: { createdAt: { gte: start, lt: end } } });
|
||||
|
||||
return NextResponse.json({ year, month, metrics: { posts, comments, users, reports } });
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user