import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import '../private/constant/globals.dart' as globals; import 'package:http/http.dart' as http; class ApiService { dynamic getData(int id, String link, int scegliLink) async { var ritorno; var test; EasyLoading.show(); var url; try { if (scegliLink == 0) { url = Uri.parse(globals.url_endpoint + globals.dettaglioPratica + id.toString()); } else { url = Uri.parse(globals.url_endpointNotification + link); } var response = await http.get(url, headers: globals.headers); test = json.decode(utf8.decode(response.bodyBytes)); print(test); switch (response.statusCode) { case 200: ritorno = {"result": test['result'], "statusCode": response.statusCode}; break; case 401: ritorno = {"result": test['result'].toString(), "statusCode": response.statusCode}; break; default: throw Exception(response.reasonPhrase); } } on Exception catch (_) { EasyLoading.dismiss(); rethrow; } EasyLoading.dismiss(); return ritorno; } dynamic getNotifiche() async { var ritorno; var test; EasyLoading.show(); try { var url = Uri.parse(globals.url_endpoint + globals.notifiche); var response = await http.get(url, headers: globals.headers); test = json.decode(utf8.decode(response.bodyBytes)); switch (response.statusCode) { case 200: ritorno = test; break; case 401: ritorno = test; break; default: EasyLoading.dismiss(); throw Exception(response.reasonPhrase); } } on Exception catch (_) { EasyLoading.dismiss(); rethrow; } EasyLoading.dismiss(); return ritorno; } Future addPtLatLot( String latitude, String longitude, String id, BuildContext context, ) async { dynamic sendPost; EasyLoading.show(); var ritorno; if (latitude.trim() != "" && longitude.trim() != "" && id.trim() != "") { sendPost = jsonEncode({ "latitude": latitude, "longitude": longitude, "water_drawing_derivation_id": id, }); var url = Uri.parse(globals.url_endpoint + globals.saveLocation); var response = await http.post(url, body: sendPost, headers: globals.headers); var test = json.decode(utf8.decode(response.bodyBytes)); EasyLoading.dismiss(); switch (response.statusCode) { case 200: EasyLoading.dismiss(); ritorno = {"stringa": "Salvataggio avvenuto con successo", "statusCode": response.statusCode}; break; case 401: EasyLoading.dismiss(); ritorno = {"stringa": test['result'].toString(), "statusCode": response.statusCode}; break; case 400: EasyLoading.dismiss(); ritorno = {"stringa": test['result'].toString(), "statusCode": response.statusCode}; break; case 500: EasyLoading.dismiss(); ritorno = {"stringa": "Attenzione salvataggio non andato a buon fine riprovare", "statusCode": response.statusCode}; break; default: EasyLoading.dismiss(); throw Exception(response.reasonPhrase); } EasyLoading.dismiss(); return ritorno; } else { EasyLoading.dismiss(); return "Controllare i dati inseriti"; } } Future setNotification( String read_by_user, BuildContext context, ) async { dynamic sendPost; if (read_by_user.trim().isNotEmpty) { var url = Uri.parse(globals.url_endpoint + globals.setNotification + read_by_user); var response = await http.post(url, body: sendPost, headers: globals.headers); } } Future addPtDerivazione( String volume, String portata, String id, BuildContext context, ) async { var ritorno; dynamic sendPost; EasyLoading.show(); if (volume.trim() != "" && portata.trim() != "" && id.trim() != "") { sendPost = jsonEncode({ "volume": volume, "portata": portata, "water_drawing_derivation_id": id, }); var url = Uri.parse(globals.url_endpoint + globals.savePuntoDerivazione); var response = await http.post(url, body: sendPost, headers: globals.headers); var test = json.decode(utf8.decode(response.bodyBytes)); switch (response.statusCode) { case 200: EasyLoading.dismiss(); ritorno = {"stringa": "Salvataggio avvenuto con successo", "statusCode": response.statusCode}; break; case 401: EasyLoading.dismiss(); ritorno = {"stringa": test['result'].toString(), "statusCode": response.statusCode}; break; case 500: EasyLoading.dismiss(); ritorno = {"stringa": "Attenzione salvataggio non andato a buon fine riprovare", "statusCode": response.statusCode}; break; default: EasyLoading.dismiss(); throw Exception(response.reasonPhrase); } EasyLoading.dismiss(); return ritorno; } else { return ritorno = {"stringa": "Attenzione controllare i dati inseriti", "statusCode": 500}; } } Future addMisurazioneStrumenti(String volume, String id, BuildContext context) async { dynamic sendPost; EasyLoading.show(); if (volume.trim() != "" && id.trim() != "") { sendPost = jsonEncode({ "volume": volume, "water_drawing_meter_id": id, }); var url = Uri.parse(globals.url_endpoint + globals.saveMisuration); var response = await http.post(url, body: sendPost, headers: globals.headers); dynamic ritorno; var test = json.decode(utf8.decode(response.bodyBytes)); switch (response.statusCode) { case 200: EasyLoading.dismiss(); ritorno = {"stringa": "Salvataggio avvenuto con successo", "statusCode": response.statusCode}; break; case 401: EasyLoading.dismiss(); ritorno = {"stringa": test['result'].toString(), "statusCode": response.statusCode}; break; case 500: EasyLoading.dismiss(); ritorno = {"stringa": "Attenzione salvataggio non andato a buon fine riprovare", "statusCode": response.statusCode}; break; default: EasyLoading.dismiss(); throw Exception(response.reasonPhrase); } EasyLoading.dismiss(); return ritorno; } else { EasyLoading.dismiss(); return "Controllare i dati inseriti"; } } Future getMisurazioni(String id, BuildContext context) async { EasyLoading.show(); late var ritorno; var url = Uri.parse(globals.url_endpoint + globals.getMisuration + "/" + id); var response = await http.get(url, headers: globals.headers); var test = json.decode(utf8.decode(response.bodyBytes)); switch (response.statusCode) { case 200: EasyLoading.dismiss(); ritorno = { "stringa": test['message'].toString(), "statusCode": response.statusCode, "WaterDaringMeasurements": test['WaterDaringMeasurements'] }; break; case 401: EasyLoading.dismiss(); ritorno = {"stringa": test['result'].toString(), "statusCode": response.statusCode}; break; case 500: EasyLoading.dismiss(); ritorno = {"stringa": test['message'].toString(), "statusCode": response.statusCode}; break; default: EasyLoading.dismiss(); throw Exception(response.reasonPhrase); } EasyLoading.dismiss(); return ritorno; } Future getDerivazione(String id) async { EasyLoading.show(); late var ritorno; var url = Uri.parse(globals.url_endpoint + globals.getDerivation + "/" + id); try { var response = await http.get(url, headers: globals.headers); var test = json.decode(utf8.decode(response.bodyBytes)); switch (response.statusCode) { case 200: EasyLoading.dismiss(); ritorno = { "stringa": test['message'].toString(), "statusCode": response.statusCode, "WaterDrawingDerivation": test['WaterDrawingDerivation'] }; break; case 401: EasyLoading.dismiss(); ritorno = {"stringa": test['result'].toString(), "statusCode": response.statusCode}; break; case 500: EasyLoading.dismiss(); ritorno = {"stringa": test['message'].toString(), "statusCode": response.statusCode}; break; default: EasyLoading.dismiss(); throw Exception(response.reasonPhrase); } EasyLoading.dismiss(); print(ritorno); } catch (exeption) { EasyLoading.dismiss(); } return ritorno; } }