searchMods method

Future<List<CurseForgeMod>> searchMods({
  1. required CurseForgeGames game,
  2. int? classId,
  3. int? categoryId,
  4. String? gameVersion,
  5. String? searchFilter,
  6. CurseForgeSortField? sortField,
  7. CurseForgeSortOrder sortOrder = CurseForgeSortOrder.desc,
  8. CurseForgeModLoaderType? modLoaderType,
  9. int? gameVersionTypeId,
  10. String? slug,
  11. int? index,
  12. int? pageSize,
})

Get all mods that match the search criteria.

Implementation

Future<List<CurseForgeMod>> searchMods(
    {required CurseForgeGames game,
    int? classId,
    int? categoryId,
    String? gameVersion,
    String? searchFilter,
    CurseForgeSortField? sortField,
    CurseForgeSortOrder sortOrder = CurseForgeSortOrder.desc,
    CurseForgeModLoaderType? modLoaderType,
    int? gameVersionTypeId,
    String? slug,
    int? index,
    int? pageSize}) async {
  Map data = (await _get(path: 'mods/search', query: {
    'gameId': game.id.toString(),
    if (classId != null) 'classId': classId.toString(),
    if (categoryId != null) 'categoryId': categoryId.toString(),
    if (gameVersion != null) 'gameVersion': gameVersion,
    if (searchFilter != null) 'searchFilter': searchFilter,
    if (sortField != null) 'sortField': sortField.value.toString(),
    'sortOrder': sortOrder.name,
    if (modLoaderType != null)
      'modLoaderType': modLoaderType.value.toString(),
    if (gameVersionTypeId != null)
      'gameVersionTypeId': gameVersionTypeId.toString(),
    if (slug != null) 'slug': slug,
    if (index != null) 'index': index.toString(),
    if (pageSize != null) 'pageSize': pageSize.toString()
  }));

  return (data['data'] as List)
      .map((mod) => CurseForgeMod.fromMap(mod))
      .toList();
}