2026-01-07 15:41:36 +01:00

43 lines
1.5 KiB
TypeScript

import { NextRequest, NextResponse } from "next/server";
import { fetchDashboardDataService } from "@/app/services/health";
import {
transformHealthDataToStats,
transformOverviewResponse,
} from "./utils/dashboard";
export async function GET(request: NextRequest) {
try {
const { searchParams } = new URL(request.url);
const dateStart = searchParams.get("dateStart") ?? undefined;
const dateEnd = searchParams.get("dateEnd") ?? undefined;
// Fetch all dashboard data (health, overview, and review transactions) concurrently
const dashboardData = await fetchDashboardDataService({
dateStart,
dateEnd,
});
const { healthData, overviewData, reviewTransactions } = dashboardData;
// Transform health data to stats format using shared util
const stats = transformHealthDataToStats(healthData);
const transformedOverviewData = transformOverviewResponse(overviewData);
// console.log("[TransformedOverviewData] - Route", transformedOverviewData);
const response = {
...healthData,
stats,
overviewData: {
...overviewData,
data: transformedOverviewData,
},
reviewTransactions: reviewTransactions,
};
return NextResponse.json(response, { status: 200 });
} catch (err: unknown) {
const errorMessage = err instanceof Error ? err.message : "Unknown error";
return NextResponse.json(
{ success: false, message: errorMessage },
{ status: 500 }
);
}
}