Skip to content

Commit 0f0b1d9

Browse files
committed
fix: force dynamic pools page and improved error handling
1 parent d800903 commit 0f0b1d9

File tree

2 files changed

+45
-18
lines changed

2 files changed

+45
-18
lines changed

src/app/api/search/arena/pools/all/route.ts

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,38 @@ import { ArenaPool } from "@/lib/types";
33

44
export async function GET() {
55
try {
6+
if (!process.env.MARGINFI_API_URL || !process.env.MARGINFI_API_KEY) {
7+
console.error("Missing required environment variables");
8+
return NextResponse.json(
9+
{ error: "API configuration error" },
10+
{ status: 500 },
11+
);
12+
}
13+
614
const arenaPoolsRes = await fetch(
7-
process.env.MARGINFI_API_URL! + "/arena/pools",
15+
process.env.MARGINFI_API_URL + "/arena/pools",
816
{
917
headers: {
10-
"x-api-key": process.env.MARGINFI_API_KEY!,
18+
"x-api-key": process.env.MARGINFI_API_KEY,
1119
},
1220
},
1321
);
14-
const arenaPoolsData = (await arenaPoolsRes.json()) as {
15-
data: ArenaPool[];
16-
};
17-
const arenaPools = arenaPoolsData.data.filter((pool) => pool.group);
1822

19-
if (!arenaPoolsRes.ok || !arenaPools) {
23+
if (!arenaPoolsRes.ok) {
24+
console.error("Failed to fetch arena pools:", arenaPoolsRes.statusText);
2025
return NextResponse.json({ banks: [] }, { status: 200 });
2126
}
2227

28+
const arenaPoolsData = (await arenaPoolsRes.json()) as {
29+
data: ArenaPool[];
30+
};
31+
32+
const arenaPools = arenaPoolsData.data?.filter((pool) => pool.group) ?? [];
2333
const banks = arenaPools.filter((pool) => pool.base_bank.mint.address);
2434

2535
return NextResponse.json({ banks }, { status: 200 });
2636
} catch (error) {
27-
console.error(error);
37+
console.error("Error fetching arena pools:", error);
2838
return NextResponse.json(
2939
{ error: "Internal Server Error" },
3040
{ status: 500 },

src/app/arena/pools/page.tsx

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,42 @@ import { Suspense } from "react";
44
import { SearchArenaPools } from "@/components/search-arena-pools";
55
import { Loader } from "@/components/ui/loader";
66
import { ArenaPool } from "@/lib/types";
7+
78
export const metadata: Metadata = {
89
title: "Arena Search - Banks",
910
description: "Search for arena banks",
1011
};
1112

13+
export const dynamic = "force-dynamic";
14+
export const revalidate = 0;
15+
1216
async function getBanks() {
13-
const arenaPoolsRes = await fetch(
14-
`${process.env.NEXT_PUBLIC_BASE_URL}/api/search/arena/pools/all`,
15-
);
16-
const arenaPoolsData = await arenaPoolsRes.json();
17-
const arenaPools: ArenaPool[] = arenaPoolsData.banks.filter(
18-
(pool: ArenaPool) => pool.group,
19-
);
17+
try {
18+
const baseUrl = process.env.NEXT_PUBLIC_BASE_URL || "http://localhost:3000";
19+
const arenaPoolsRes = await fetch(`${baseUrl}/api/search/arena/pools/all`, {
20+
next: { revalidate: 0 },
21+
});
22+
23+
if (!arenaPoolsRes.ok) {
24+
console.error("Failed to fetch banks:", arenaPoolsRes.statusText);
25+
return [];
26+
}
2027

21-
if (!arenaPoolsRes.ok || !arenaPools) {
28+
const arenaPoolsData = await arenaPoolsRes.json();
29+
30+
if (!arenaPoolsData.banks) {
31+
return [];
32+
}
33+
34+
const arenaPools: ArenaPool[] = arenaPoolsData.banks.filter(
35+
(pool: ArenaPool) => pool.group,
36+
);
37+
38+
return arenaPools.filter((pool) => pool.base_bank.mint.address);
39+
} catch (error) {
40+
console.error("Error fetching banks:", error);
2241
return [];
2342
}
24-
25-
return arenaPools.filter((pool) => pool.base_bank.mint.address);
2643
}
2744

2845
export default async function BanksSearchPage() {

0 commit comments

Comments
 (0)