downloadTicket static method
Implementation
static Future<void> downloadTicket(String ticketUrl) async {
if (ticketUrl.isEmpty) {
log('Invalid ticket URL');
DefaultSnackbar.show("Error", 'Invalid ticket URL');
return;
}
try {
final response = await Dio()
.get(ticketUrl, options: Options(responseType: ResponseType.bytes));
if (response.statusCode == 200) {
final blob = html.Blob([response.data]);
final url = html.Url.createObjectUrl(blob);
Uri uri = Uri.parse(url);
List<String> pathSegments = uri.pathSegments;
String fileName = pathSegments.last;
fileName = Uri.decodeComponent(fileName);
final anchor = html.AnchorElement(href: url);
log('Failed to download Tciket: Status code $anchor $url');
anchor.download = '$fileName.pdf';
anchor.click();
html.Url.revokeObjectUrl(url);
} else {
log('Failed to download Tciket: Status code ${response.statusCode}');
DefaultSnackbar.show(
"Error", 'Ticket Download Failed, Please contact customer support');
}
} catch (e) {
log('Failed to download Ticket: $e');
DefaultSnackbar.show(
"Error", 'Ticket Download Failed, Please contact customer support');
}
}