loadForm method
Loads a FormData represented by formUri
headers
will be added in addition to ApptiveGridClient.defaultHeaders
Based on formUri
this might require Authentication
throws Response
if the request fails
Implementation
Future<FormData> loadForm({
required Uri uri,
Map<String, String> headers = const {},
bool isRetry = false,
}) async {
final url = _generateApptiveGridUri(uri);
final sanitizedUrl =
url.replace(path: url.path.replaceAll(RegExp('/r/'), '/a/'));
final response = await _client.get(
sanitizedUrl,
headers: _createHeadersWithDefaults(headers),
);
if (response.statusCode >= 400) {
if (response.statusCode == 401 && !isRetry) {
await authenticator.checkAuthentication();
return loadForm(
uri: uri,
headers: headers,
isRetry: true,
);
} else {
throw response;
}
}
return FormData.fromJson(json.decode(response.body));
}