diff --git a/frontend/sige_ie/lib/facilities/ui/facilities.dart b/frontend/sige_ie/lib/facilities/ui/facilities.dart index 44c1cc80..4bf909d1 100644 --- a/frontend/sige_ie/lib/facilities/ui/facilities.dart +++ b/frontend/sige_ie/lib/facilities/ui/facilities.dart @@ -7,10 +7,6 @@ import 'package:sige_ie/places/data/place_response_model.dart'; import 'package:sige_ie/places/data/place_service.dart'; import '../../config/app_styles.dart'; import '../../areas/data/area_service.dart'; -import 'dart:io'; -import 'package:http/http.dart' as http; -import 'package:path_provider/path_provider.dart'; -import 'package:path/path.dart' as path; class FacilitiesPage extends StatefulWidget { const FacilitiesPage({super.key}); @@ -371,28 +367,11 @@ class _FacilitiesPageState extends State { } Future _exportToPDF(int placeId) async { - final response = - await http.get(Uri.parse('$urlUniversal/api/places/$placeId/report')); - - if (response.statusCode == 200) { - final directory = await getApplicationDocumentsDirectory(); - final filePath = path.join(directory.path, 'report_$placeId.pdf'); - final file = File(filePath); - await file.writeAsBytes(response.bodyBytes); - - ScaffoldMessenger.of(_scaffoldContext).showSnackBar( - SnackBar(content: Text('PDF baixado com sucesso: $filePath')), - ); - } else { - ScaffoldMessenger.of(_scaffoldContext).showSnackBar( - const SnackBar(content: Text('Falha ao baixar o PDF')), - ); - } + _placeService.downloadFile('$urlUniversal/api/places/$placeId/report-pdf/', 'document.pdf',); } - void _exportToExcel(int placeId) { - // Implement your Excel export logic here - print("Export to Excel for place $placeId"); + Future _exportToExcel(int placeId) async { + _placeService.downloadFile('$urlUniversal/api/places/$placeId/report-csv/', 'report.xlsx',); } @override diff --git a/frontend/sige_ie/lib/places/data/place_service.dart b/frontend/sige_ie/lib/places/data/place_service.dart index b4102032..f6c40d07 100644 --- a/frontend/sige_ie/lib/places/data/place_service.dart +++ b/frontend/sige_ie/lib/places/data/place_service.dart @@ -7,6 +7,8 @@ import 'package:sige_ie/core/data/universalURL.dart'; import 'package:sige_ie/main.dart'; import 'package:sige_ie/places/data/place_request_model.dart'; import 'package:sige_ie/places/data/place_response_model.dart'; +import 'package:path_provider/path_provider.dart'; +import 'dart:io'; class PlaceService { final Logger _logger = Logger('PlaceService'); @@ -110,4 +112,25 @@ class PlaceService { return false; } } + + Future downloadFile(String url, String fileName) async { + try { + // Fazer a solicitação HTTP para o backend + final response = await client.get(Uri.parse(url)); + + if (response.statusCode == 200) { + // Salvar o arquivo localmente + final directory = await getApplicationDocumentsDirectory(); + final filePath = '${directory.path}/$fileName'; + final file = File(filePath); + await file.writeAsBytes(response.bodyBytes); + _logger.info('Arquivo baixado com sucesso'); + } else { + throw Exception('Falha ao baixar o arquivo'); + } + } catch (e) { + _logger.info('Error during donwload file: $e'); + } + } + } diff --git a/frontend/sige_ie/pubspec.lock b/frontend/sige_ie/pubspec.lock index 446592b7..05a16b7f 100644 --- a/frontend/sige_ie/pubspec.lock +++ b/frontend/sige_ie/pubspec.lock @@ -396,26 +396,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" url: "https://pub.dev" source: hosted - version: "10.0.4" + version: "10.0.0" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "2.0.1" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "2.0.1" lints: dependency: transitive description: @@ -460,10 +460,10 @@ packages: dependency: transitive description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.11.0" mime: dependency: "direct main" description: @@ -673,10 +673,10 @@ packages: dependency: transitive description: name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.6.1" typed_data: dependency: transitive description: @@ -817,10 +817,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "13.0.0" web: dependency: transitive description: diff --git a/frontend/sige_ie/pubspec.yaml b/frontend/sige_ie/pubspec.yaml index b7ddba7c..5a9ffb50 100644 --- a/frontend/sige_ie/pubspec.yaml +++ b/frontend/sige_ie/pubspec.yaml @@ -48,8 +48,6 @@ dependencies: path_provider: ^2.0.2 # Ou a versão mais recente - - dev_dependencies: flutter_test: sdk: flutter