fix: Authentication headers and dynamic userId for CBT/DPP history page
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { useEffect, useState, use } from "react";
|
import { useEffect, useState, use } from "react";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
import { fetchWithAuth } from "@/lib/apiClient";
|
||||||
|
import { useActiveUser } from "@/hooks/useActiveUser";
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import { Card, CardContent } from "@/components/ui/card";
|
import { Card, CardContent } from "@/components/ui/card";
|
||||||
import { Badge } from "@/components/ui/badge";
|
import { Badge } from "@/components/ui/badge";
|
||||||
@@ -18,15 +20,15 @@ export default function AttemptHistoryPage({ params }: { params: Promise<{ attem
|
|||||||
const [test, setTest] = useState<any>(null);
|
const [test, setTest] = useState<any>(null);
|
||||||
const [questions, setQuestions] = useState<Record<string, any>>({});
|
const [questions, setQuestions] = useState<Record<string, any>>({});
|
||||||
|
|
||||||
const userId = "b0e17378-864d-439e-8806-708dc48a891b";
|
const { userId } = useActiveUser();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (!userId) return;
|
||||||
|
|
||||||
async function fetchHistoryData() {
|
async function fetchHistoryData() {
|
||||||
try {
|
try {
|
||||||
const apiUrl = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8000';
|
|
||||||
|
|
||||||
// 1. Fetch all attempts to find this specific one
|
// 1. Fetch all attempts to find this specific one
|
||||||
const attemptsRes = await fetch(`${apiUrl}/api/users/${userId}/attempts`);
|
const attemptsRes = await fetchWithAuth(`/api/users/${userId}/attempts`);
|
||||||
const attemptsData = await attemptsRes.json();
|
const attemptsData = await attemptsRes.json();
|
||||||
const foundAttempt = attemptsData.find((a: any) => a.id === attemptId);
|
const foundAttempt = attemptsData.find((a: any) => a.id === attemptId);
|
||||||
|
|
||||||
@@ -36,7 +38,7 @@ export default function AttemptHistoryPage({ params }: { params: Promise<{ attem
|
|||||||
setAttempt(foundAttempt);
|
setAttempt(foundAttempt);
|
||||||
|
|
||||||
// 2. Fetch the test details
|
// 2. Fetch the test details
|
||||||
const testRes = await fetch(`${apiUrl}/api/tests/${foundAttempt.source_id}?user_id=${userId}`);
|
const testRes = await fetchWithAuth(`/api/tests/${foundAttempt.source_id}?user_id=${userId}`);
|
||||||
const testData = await testRes.json();
|
const testData = await testRes.json();
|
||||||
setTest(testData);
|
setTest(testData);
|
||||||
|
|
||||||
@@ -44,7 +46,7 @@ export default function AttemptHistoryPage({ params }: { params: Promise<{ attem
|
|||||||
const qs: Record<string, any> = {};
|
const qs: Record<string, any> = {};
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
foundAttempt.answers.map(async (ans: any) => {
|
foundAttempt.answers.map(async (ans: any) => {
|
||||||
const qRes = await fetch(`${apiUrl}/api/questions/${ans.question_id}`);
|
const qRes = await fetchWithAuth(`/api/questions/${ans.question_id}`);
|
||||||
if (qRes.ok) {
|
if (qRes.ok) {
|
||||||
const qData = await qRes.json();
|
const qData = await qRes.json();
|
||||||
qs[ans.question_id] = qData;
|
qs[ans.question_id] = qData;
|
||||||
|
|||||||
Reference in New Issue
Block a user