From bf5368d47e992dd8aab9c801001f90cd898eb58c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yusuf=20Akg=C3=BCl?= <s86116@bht-berlin.de> Date: Wed, 24 May 2023 18:12:55 +0200 Subject: [PATCH] fix deployment url 3 error catching --- app/api/games/route.ts | 8 ++++++-- lib/igdb.ts | 32 ++++++++++++++++++-------------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/app/api/games/route.ts b/app/api/games/route.ts index 842198f..23a5fa5 100644 --- a/app/api/games/route.ts +++ b/app/api/games/route.ts @@ -3,6 +3,10 @@ import { NextRequest, NextResponse } from "next/server"; export async function GET(req: NextRequest) { const p = req.nextUrl.searchParams; - const games = await getGames(p.get('page') ? parseInt(p.get('page') as string) : undefined); - return NextResponse.json(games); + try { + const games = await getGames(p.get('page') ? parseInt(p.get('page') as string) : undefined); + return NextResponse.json(games); + } catch (error) { + return NextResponse.json(error, { status: 500 }); + } } \ No newline at end of file diff --git a/lib/igdb.ts b/lib/igdb.ts index 0542905..b924e9b 100644 --- a/lib/igdb.ts +++ b/lib/igdb.ts @@ -28,29 +28,33 @@ async function getToken(): Promise<IAuth> { } // fetches the top 200 games with a rating of 96 or higher -export async function getGames(page = 1): Promise<IGame[]> { +export async function getGames(page = 1): Promise<IGame[] | unknown> { const auth = await getToken() const url = new URL(`${IGDB_BASE_URL}/games`) let offset = calculateOffset(page, limit) - const response = await fetch(url, { - method: 'POST', - headers: { - 'Client-ID': CLIENT_ID, - 'Authorization': `Bearer ${auth.access_token}` - }, - body: `fields name, cover.*; limit ${limit}; offset ${offset}; + try { + const response = await fetch(url, { + method: 'POST', + headers: { + 'Client-ID': CLIENT_ID, + 'Authorization': `Bearer ${auth.access_token}` + }, + body: `fields name, cover.*; limit ${limit}; offset ${offset}; sort total_rating desc; where total_rating_count > 2 & cover != null & total_rating != null & rating != null;` - }) - const games = await response.json() as IGame[] + }) + const games = await response.json() as IGame[] - games.forEach(game => { - game.cover.url = getImageURL(game.cover.image_id, 'cover_big') - }) + games.forEach(game => { + game.cover.url = getImageURL(game.cover.image_id, 'cover_big') + }) - return games + return games + } catch (error) { + console.log(error) + } } // fetches a single game by id -- GitLab