Future<Response>
searchResponse(- {String? query,
- int? limit,
- int? offset,
- List<String>? authors,
- List<String>? artists,
- int? year,
- List<String>? includedTags,
- TagsMode? includedTagsMode,
- List<String>? excludedTags,
- TagsMode? excludedTagsMode,
- List<MangaStatus>? status,
- List<LanguageCodes>? originalLanguage,
- List<LanguageCodes>? excludedOriginalLanguages,
- List<LanguageCodes>? availableTranslatedLanguage,
- List<PublicDemographic>? publicationDemographic,
- List<String>? ids,
- List<ContentRating>? contentRating,
- String? createdAtSince,
- String? updatedAtSince,
- List<String>? includes,
- String? group,
- Map<String, dynamic>? order}
)
Implementation
Future<http.Response> searchResponse({
String? query,
int? limit,
int? offset,
List<String>? authors,
List<String>? artists,
int? year,
List<String>? includedTags,
TagsMode? includedTagsMode,
List<String>? excludedTags,
TagsMode? excludedTagsMode,
List<MangaStatus>? status,
List<LanguageCodes>? originalLanguage,
List<LanguageCodes>? excludedOriginalLanguages,
List<LanguageCodes>? availableTranslatedLanguage,
List<PublicDemographic>? publicationDemographic,
List<String>? ids,
List<ContentRating>? contentRating,
String? createdAtSince,
String? updatedAtSince,
List<String>? includes,
String? group,
Map<String, dynamic>? order,
}) async {
var unencodedPath = '/manga';
var Title = query != null ? '&title=$query' : '';
var Authors = '';
if (authors != null) {
authors.forEach((element) {
Authors = Authors + '&authors[]=$element';
});
}
var Limit = limit != null ? '&limit=$limit' : '';
var Offset = offset != null ? '&offset=$offset' : '';
var Artists = '';
if (artists != null) {
artists.forEach((element) {
Artists = Artists + '&artists[]=$element';
});
}
var Year = year != null ? '&year=$year' : '';
var IncludedTags = '';
if (includedTags != null) {
includedTags.forEach((element) {
IncludedTags = IncludedTags + '&includedTages[]=$element';
});
}
var PublicationDemographic = '';
if (publicationDemographic != null) {
publicationDemographic.forEach((element) {
PublicationDemographic = PublicationDemographic +
'&publicationDemographic[]=${EnumUtils.parsePublicDemographicFromEnum(element)}';
});
}
var IncludedTagsMode = '';
if (includedTagsMode != null) {
IncludedTagsMode = EnumUtils.parseTagModeFromEnum(includedTagsMode);
}
var ExcludedTags = '';
if (excludedTags != null) {
excludedTags.forEach((element) {
ExcludedTags = ExcludedTags + '&excludedTags[]=$element';
});
}
var ExcludedTagsMode = '';
if (excludedTagsMode != null) {
ExcludedTagsMode = EnumUtils.parseTagModeFromEnum(excludedTagsMode);
}
var Status = '';
if (status != null) {
status.forEach((element) {
Status =
Status + '&status[]=${EnumUtils.parseMangaStatusFromEnum(element)}';
});
}
var OriginalLanguage = '';
if (originalLanguage != null) {
originalLanguage.forEach((element) {
OriginalLanguage = OriginalLanguage +
'&originalLanguage[]=${EnumUtils.parseLanguageCodeFromEnum(element)}';
});
}
var ExcludedOriginalLanguage = '';
if (excludedOriginalLanguages != null) {
excludedOriginalLanguages.forEach((element) {
ExcludedOriginalLanguage = ExcludedOriginalLanguage +
'&excludedOriginalLanguage[]=${EnumUtils.parseLanguageCodeFromEnum(element)}';
});
}
var AvailableTranslatedLanguage = '';
if (availableTranslatedLanguage != null) {
availableTranslatedLanguage.forEach((element) {
AvailableTranslatedLanguage = AvailableTranslatedLanguage +
'&availableTranslatedLanguage[]=${EnumUtils.parseLanguageCodeFromEnum(element)}';
});
}
var Ids = '';
if (ids != null) {
ids.forEach((element) {
Ids = Ids + '&ids[]=$element';
});
}
var contentrating = '';
if (contentRating != null) {
contentRating.forEach((element) {
contentrating = contentrating +
'&contentRating[]=${EnumUtils.parseContentRatingFromEnum(element)}';
});
}
var Includes = '';
if (includes != null) {
includes.forEach((element) {
Includes = Includes + '&included[]=$element';
});
}
var CreatedAtSince =
createdAtSince != null ? '&createdAtSince=$createdAtSince' : '';
var UpdatedAtSince =
updatedAtSince != null ? '&updatedAtSince=$updatedAtSince' : '';
var Group = group != null ? '&group=$group' : '';
var Order = order != null
? '&order[${order.entries.first}]=${order[order.entries.first]}'
: '&order[recentlyUpdated]=desc';
final url =
'https://$authority$unencodedPath?$Title$Limit$Offset$Authors$Artists$Year$IncludedTags$IncludedTagsMode$ExcludedTags$ExcludedTagsMode$Status$OriginalLanguage$ExcludedOriginalLanguage$AvailableTranslatedLanguage$PublicationDemographic$Ids$contentrating$CreatedAtSince$UpdatedAtSince$Includes$Group$Order';
var response = await http.get(Uri.parse(url),
headers: {HttpHeaders.contentTypeHeader: 'application/json'});
return response;
}