diff --git a/debug-logs/67b8a2ccd785e367b3c5e37b.json b/debug-logs/67b8a2ccd785e367b3c5e37b.json
new file mode 100644
index 0000000..44da55e
--- /dev/null
+++ b/debug-logs/67b8a2ccd785e367b3c5e37b.json
@@ -0,0 +1,31 @@
+[
+ {
+ "url": "books/ondeck",
+ "startTime": 2885483.439666003,
+ "endTime": 2886906.0345830023,
+ "fromCache": false,
+ "duration": 1422.59491699934,
+ "timestamp": "2025-02-23T14:10:34.889Z"
+ },
+ {
+ "url": "home-on-deck",
+ "startTime": 2885483.3969579935,
+ "endTime": 2886915.6758749783,
+ "fromCache": true,
+ "cacheType": "HOME",
+ "duration": 1432.2789169847965,
+ "timestamp": "2025-02-23T14:10:34.901Z"
+ },
+ {
+ "url": "Page Render: HomePage",
+ "startTime": 2885485.3594990075,
+ "endTime": 2886935.9214159846,
+ "duration": 1450.5619169771671,
+ "timestamp": "2025-02-23T14:10:34.912Z",
+ "fromCache": false,
+ "pageRender": {
+ "page": "HomePage",
+ "duration": 1450.5619169771671
+ }
+ }
+]
\ No newline at end of file
diff --git a/debug-logs/julienfroidefond@gmail.com.json b/debug-logs/julienfroidefond@gmail.com.json
new file mode 100644
index 0000000..f824c1d
--- /dev/null
+++ b/debug-logs/julienfroidefond@gmail.com.json
@@ -0,0 +1,23 @@
+[
+ {
+ "url": "series/list",
+ "startTime": 1555818.8649999797,
+ "endTime": 1556150.4556659758,
+ "duration": 331.5906659960747,
+ "timestamp": "2025-02-23T12:27:42.757Z"
+ },
+ {
+ "url": "libraries",
+ "startTime": 1556210.246457994,
+ "endTime": 1556425.7659159899,
+ "duration": 215.51945799589157,
+ "timestamp": "2025-02-23T12:27:43.141Z"
+ },
+ {
+ "url": "series/0GNTC1Q53EM9R",
+ "startTime": 1590829.9988330007,
+ "endTime": 1591134.537375003,
+ "duration": 304.5385420024395,
+ "timestamp": "2025-02-23T12:28:17.719Z"
+ }
+]
\ No newline at end of file
diff --git a/src/app/api/debug/route.ts b/src/app/api/debug/route.ts
new file mode 100644
index 0000000..a88daec
--- /dev/null
+++ b/src/app/api/debug/route.ts
@@ -0,0 +1,30 @@
+import { NextRequest, NextResponse } from "next/server";
+import { DebugService } from "@/lib/services/debug.service";
+
+export async function GET() {
+ try {
+ const logs = await DebugService.getRequestLogs();
+ return NextResponse.json(logs);
+ } catch (error) {
+ return NextResponse.json({ error: "Erreur lors de la récupération des logs" }, { status: 500 });
+ }
+}
+
+export async function POST(request: NextRequest) {
+ try {
+ const timing = await request.json();
+ await DebugService.logRequest(timing);
+ return NextResponse.json({ success: true });
+ } catch (error) {
+ return NextResponse.json({ error: "Erreur lors de l'enregistrement du log" }, { status: 500 });
+ }
+}
+
+export async function DELETE() {
+ try {
+ await DebugService.clearLogs();
+ return NextResponse.json({ success: true });
+ } catch (error) {
+ return NextResponse.json({ error: "Erreur lors de la suppression des logs" }, { status: 500 });
+ }
+}
diff --git a/src/app/books/[bookId]/page.tsx b/src/app/books/[bookId]/page.tsx
index f9f103d..0e20446 100644
--- a/src/app/books/[bookId]/page.tsx
+++ b/src/app/books/[bookId]/page.tsx
@@ -3,8 +3,9 @@ import { ClientBookWrapper } from "@/components/reader/ClientBookWrapper";
import { BookSkeleton } from "@/components/skeletons/BookSkeleton";
import { BookService } from "@/lib/services/book.service";
import { notFound } from "next/navigation";
+import { withPageTiming } from "@/lib/hoc/withPageTiming";
-export default async function BookPage({ params }: { params: { bookId: string } }) {
+async function BookPage({ params }: { params: { bookId: string } }) {
try {
const data = await BookService.getBook(params.bookId);
@@ -18,3 +19,5 @@ export default async function BookPage({ params }: { params: { bookId: string }
notFound();
}
}
+
+export default withPageTiming("BookPage", BookPage);
diff --git a/src/app/downloads/page.tsx b/src/app/downloads/page.tsx
index 71dc642..5fdfcc0 100644
--- a/src/app/downloads/page.tsx
+++ b/src/app/downloads/page.tsx
@@ -1,7 +1,8 @@
import { PageHeader } from "@/components/layout/PageHeader";
import { DownloadManager } from "@/components/downloads/DownloadManager";
+import { withPageTiming } from "@/lib/hoc/withPageTiming";
-export default function DownloadsPage() {
+function DownloadsPage() {
return (
<>