getRequest method
Future<Result>
getRequest({
- required APISource source,
- MBPPageKey? pageKey,
- MBPPaginationManager? paginationManager,
Implementation
Future<Result> getRequest(
{required APISource source,
MBPPageKey? pageKey,
MBPPaginationManager? paginationManager}) async {
Result<http.Response>? result = Error(Exception("$_tag: timeout"));
final baseURL = source.buildURL(source);
var urlString = baseURL;
if (pageKey == null || paginationManager == null) {
urlString = baseURL;
} else {
if (paginationManager.isFistPage(pageKey)) {
urlString = baseURL;
} else {
final link = paginationManager.nextPageLink(pageKey);
if (link != null) {
urlString = link;
}
}
}
try {
final url = Uri.parse(urlString);
final response = await http.get(url, headers: source.headers);
final statusCode = response.statusCode;
if (pageKey != null) {
final headers = response.headers;
paginationManager?.saveNextPageLink(pageKey, headers);
}
if (statusCode == 200) {
return Success(response);
} else {
return Error(Exception("$_tag error: ${response.statusCode}"));
}
} on Exception catch (e) {
result = Error(e);
}
return result;
}