request method
Implementation
Future<void> request(
Map<String, String> headers,
Map<String, dynamic> data,
) async {
try {
final value = await dio.post(
'',
options: Options(headers: headers),
data: jsonEncode(data),
);
if (value.statusCode == 200 || value.statusCode == 201) {
final result = value.data;
final data = result['data'] as Map<String, dynamic>;
setState(() {
_webViewController.loadRequest(Uri.parse(data['paymentLinkUrl']));
_paymentLink = data['paymentLinkUrl'];
apiLoading = false;
});
return;
} else {
setState(() {
apiLoading = false;
});
widget.onInitFailed('Failed to initialize');
}
} on DioException catch (e) {
setState(() {
apiLoading = false;
});
final r = e.response?.data;
try {
final error = r as Map<String, dynamic>?;
final errorString = error?['message'] ?? 'Failed to initialize';
widget.onInitFailed(errorString);
} catch (e) {
widget.onInitFailed(
r.runtimeType == String ? r : 'Failed to initialize',
);
}
} catch (e) {
setState(() {
apiLoading = false;
});
widget.onInitFailed('Failed to initialize');
}
}