getCoverArtResponse function Null safety

Future<Response> getCoverArtResponse(
  1. List<String> mangaIds,
  2. [List<String>? coverIds,
  3. List<String>? uploaders,
  4. List<String>? locales,
  5. Map<String, dynamic>? order,
  6. int? limit = 10,
  7. int? offset = 0]
)

returns a https response with cover art details for a manga with given mangaIds or uuid, it can also take multiple coverIds and get their details at once, cover arts can also be filtered by a list of uploaders and locales

Implementation

Future<http.Response> getCoverArtResponse(
  List<String> mangaIds, [
  List<String>? coverIds,
  List<String>? uploaders,
  List<String>? locales,
  Map<String, dynamic>? order,
  int? limit = 10,
  int? offset = 0,
]) async {
  var _mangasIds = '';
  mangaIds.forEach((element) {
    _mangasIds = _mangasIds + '&manga[]=$element';
  });
  var _coverIds = '';
  if (coverIds != null) {
    coverIds.forEach((element) {
      _coverIds = _coverIds + '&cover[]=$element';
    });
  }
  var _uploaders = '';
  if (uploaders != null) {
    uploaders.forEach((element) {
      _uploaders = _uploaders + '&uploaders[]=$element';
    });
  }
  var _locales = '';
  if (locales != null) {
    locales.forEach((element) {
      _locales = _locales + '&locales[]=$element';
    });
  }
  var _order = '';
  if (order != null) {
    order.entries.forEach((element) {
      _order = _order + '&order[$element]=${order[element]}';
    });
  } else {
    _order =
        '&order[createdAt]=asc' '&order[updatedAt]=asc' '&order[volume]=asc';
  }
  final uri =
      'https://$authority/cover?limit=$limit&offset=$offset$_mangasIds$_coverIds$_locales$_uploaders$_order';
  var response = await http.get(Uri.parse(uri), headers: {
    HttpHeaders.contentTypeHeader: 'application/json',
  });
  return response;
}