Files
nuzlocke-tracker/frontend/src/api/games.ts

28 lines
955 B
TypeScript
Raw Normal View History

import { api } from './client'
import type { Game, Route, RouteEncounterDetail } from '../types/game'
export interface GameDetail extends Game {
routes: Route[]
}
export function getGames(): Promise<Game[]> {
return api.get('/games')
}
export function getGame(id: number): Promise<GameDetail> {
return api.get(`/games/${id}`)
}
export function getGameRoutes(gameId: number, allowedTypes?: string[]): Promise<Route[]> {
// Use flat=true to get all routes in a flat list
// The frontend organizes them into hierarchy based on parentRouteId
const params = new URLSearchParams({ flat: 'true' })
for (const t of allowedTypes ?? []) params.append('allowed_types', t)
return api.get(`/games/${gameId}/routes?${params}`)
}
export function getRoutePokemon(routeId: number, gameId?: number): Promise<RouteEncounterDetail[]> {
const params = gameId != null ? `?game_id=${gameId}` : ''
return api.get(`/routes/${routeId}/pokemon${params}`)
}