diff --git a/Todo.txt b/Todo.txt index e6989ec..93f6a1d 100644 --- a/Todo.txt +++ b/Todo.txt @@ -1,14 +1,14 @@ todo: -fix send file to server add feedback to send to server function im englischen abändern keine ahnung obs funktioniert: -TEST SEND FILE TO SERVER FUNCTION eintrg in db wenn http response (in sent column) not to do: +TEST SEND FILE TO SERVER FUNCTION +fix send file to server Platzierung garnix als standart aber pflichtfeld sandorte ansehen in karte (extra tab) einzelnen eintrag löschen diff --git a/lib/addCam/add_cam_main.dart b/lib/addCam/add_cam_main.dart index 30bfff1..0aef413 100644 --- a/lib/addCam/add_cam_main.dart +++ b/lib/addCam/add_cam_main.dart @@ -3,13 +3,13 @@ import 'dart:convert'; import 'dart:io'; import 'package:fforte/addCam/cam_widgets.dart'; import 'package:fforte/other/db_helper.dart'; +import 'package:fforte/other/methods.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:geolocator/geolocator.dart'; import 'package:latlong2/latlong.dart'; import 'package:animations/animations.dart'; -import 'package:dio/dio.dart'; import 'package:shared_preferences/shared_preferences.dart'; class AddCamMain extends StatefulWidget { @@ -288,40 +288,12 @@ class _AddCamMainState extends State { } + void _httpRequest() async { Map place = getPlace(); - // print(jsonEncode(place)); + Methods(jsonEncode(place)).httpRequest(); - final dio = Dio(); - final SharedPreferences prefs = await SharedPreferences.getInstance(); - - dio.options.responseType = ResponseType.plain; - Response response = - Response(requestOptions: RequestOptions(path: ''), statusCode: 400); - - try { - response = await dio.post(prefs.getString('apiAddress') ?? "", - data: jsonEncode(place)); - print(jsonEncode(place)); - } on DioException catch (e) { - if (e.response?.statusCode == 500) { - print('-------------------------'); - print('code 500'); - return; - } - } - if (response.statusCode == 201) { - print("------------------"); - print(response.statusCode); - var placeDB = DBHelper(); - - await placeDB.updateSent(); - } else { - print("----------------"); - print("Anderer code"); - print(response.statusCode); - } } Future saveFile() async { diff --git a/lib/home.dart b/lib/home.dart index b93db7c..b03e858 100644 --- a/lib/home.dart +++ b/lib/home.dart @@ -1,3 +1,6 @@ +import 'dart:io'; +import 'package:fforte/other/methods.dart'; +import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'addCam/add_cam_main.dart'; @@ -8,6 +11,18 @@ import 'addCam/add_cam_main.dart'; class HomePage extends StatelessWidget { const HomePage({super.key}); + void _sendFile() async { + FilePickerResult? result = await FilePicker.platform.pickFiles(); + + if (result != null) { + File file = File(result.files.single.path!); + String content = await file.readAsString(); + + Methods(content).httpRequest(); + + + } + } @override @@ -47,7 +62,9 @@ class HomePage extends StatelessWidget { child: Text(AppLocalizations.of(context)!.addplace)), ElevatedButton(onPressed: () => Navigator.pushNamed(context, '/viewCams'), child: Text(AppLocalizations.of(context)!.viewplaces)), - ElevatedButton(onPressed: () {}, child: Text(AppLocalizations.of(context)!.sendfile)) + ElevatedButton(onPressed: () { + _sendFile(); + }, child: Text(AppLocalizations.of(context)!.sendfile)) ], )), ], diff --git a/lib/other/methods.dart b/lib/other/methods.dart new file mode 100644 index 0000000..fbf49cb --- /dev/null +++ b/lib/other/methods.dart @@ -0,0 +1,45 @@ +import 'dart:convert'; + +import 'package:dio/dio.dart'; +import 'package:fforte/other/db_helper.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class Methods { + String httpData; + + Methods(this.httpData); + + void httpRequest() async { + // print(jsonEncode(place)); + + final dio = Dio(); + final SharedPreferences prefs = await SharedPreferences.getInstance(); + + dio.options.responseType = ResponseType.plain; + Response response = + Response(requestOptions: RequestOptions(path: ''), statusCode: 400); + + try { + response = await dio.post(prefs.getString('apiAddress') ?? "", + data: jsonEncode(httpData)); + // print(jsonEncode(httpData)); + } on DioException catch (e) { + if (e.response?.statusCode == 500) { + print('-------------------------'); + print('code 500'); + return; + } + } + if (response.statusCode == 201) { + print("------------------"); + print(response.statusCode); + var placeDB = DBHelper(); + + await placeDB.updateSent(); + } else { + print("----------------"); + print("Anderer code"); + print(response.statusCode); + } + } +}