outsourced httpRequest method

This commit is contained in:
nico
2024-05-01 20:22:56 +02:00
parent fbe756eb39
commit c4a083a98f
4 changed files with 68 additions and 34 deletions

View File

@@ -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

View File

@@ -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<AddCamMain> {
}
void _httpRequest() async {
Map<String, dynamic> 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<void> saveFile() async {

View File

@@ -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))
],
)),
],

45
lib/other/methods.dart Normal file
View File

@@ -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);
}
}
}