import 'package:dio/dio.dart'; import '../../core/config.dart'; class IgdbApi { final Dio _dio; IgdbApi() : _dio = Dio( BaseOptions( baseUrl: AppConfig.backendBaseUrl, headers: const {'Accept': 'application/json'}, ), ); Future>> searchGames(String query, {int limit = 20, String lang = 'de'}) async { final res = await _dio.get( '', queryParameters: { 'action': 'search', 'query': query, 'limit': limit, 'lang': lang, 'check_external': 1, }, ); if (res.statusCode != 200) { throw Exception('IGDB search HTTP ${res.statusCode}'); } final data = res.data; if (data is Map && data['results'] is List) { return (data['results'] as List).cast>(); } throw Exception('IGDB search: unerwartetes Antwortformat'); } Future> getGameDetails(int igdbId, {String lang = 'de'}) async { final res = await _dio.get( '', queryParameters: { 'action': 'details', 'id': igdbId, 'lang': lang, 'check_external': 1, }, ); if (res.statusCode != 200) { throw Exception('IGDB details HTTP ${res.statusCode}'); } final data = res.data; if (data is Map && data['game'] is Map) { return (data['game'] as Map).cast(); } throw Exception('IGDB details: unerwartetes Antwortformat'); } }