loadGame function

Future<List<Game>> loadGame(
  1. int page,
  2. Ordering? ordering,
  3. String? query,
  4. String? platforms,
  5. String? genres,
)

get the List<Game> from api

Implementation

Future<List<Game>> loadGame(int page, Ordering? ordering, String? query,
    String? platforms, String? genres) async {
  Map<String, dynamic> queryParameters = {
    "key": Rawg.key,
    "page_size": 100,
    "page": page,
    "search": query?.toLowerCase(),
    "orderig": Utils.orderingFormat(ordering),
    "genres": genres,
    "platforms": platforms,
  };

  queryParameters.removeWhere((key, value) => value == null);

  Response response = await RawgUtils.dio.get(
    '${RawgUtils.baseUrl}/games',
    queryParameters: queryParameters,
    options: Options(
      validateStatus: (status) => true,
    ),
  );

  if (response.statusCode! != 200) {
    throw RawgException(
      "Request not in 200 OK",
      response.statusCode ?? -1,
    );
  }

  if (response.data["error"] != null || response.data["details"] != null) {
    throw RawgException(
      response.data["error"] ?? response.data["details"],
      response.statusCode ?? -1,
    );
  }

  List<Game> results = [];
  if (response.data['results'] == null) {
    return [];
  }

  response.data['results'].forEach((v) {
    results.add(Game.fromJson(v));
  });
  return results;
}