import 'dart:convert'; import 'dart:developer'; import 'dart:io'; import 'package:unit2/model/passo/bldg_loc.dart'; import 'package:unit2/model/passo/general_description.dart'; import 'package:unit2/model/passo/land_ref.dart'; import 'package:unit2/model/passo/property_info.dart'; import 'package:http/http.dart' as http; import 'package:unit2/utils/request.dart'; import 'package:unit2/utils/urls.dart'; class PropertyInfoService { static final PropertyInfoService _instance = PropertyInfoService(); static PropertyInfoService get instance => _instance; String xClientKey = "unitK3CQaXiWlPReDsBzmmwBZPd9Re1z"; String xClientKeySecret = "unitcYqAN7GGalyz"; Future> fetch() async { String path = Url.instance.propertyInfo(); Map headers = { 'Content-Type': 'application/json; charset=UTF-8', 'X-Client-Key': xClientKey, 'X-Client-Secret': xClientKeySecret }; try { http.Response response = await Request.instance .getRequest(param: {}, path: path, headers: headers); if (response.statusCode == 200) { final List result = jsonDecode(response.body)['data']; return result.map(((e) => PropertyInfo.fromJson(e))).toList(); } else { throw Exception(response.reasonPhrase); } } catch (e) { throw e.toString(); } } Future add(PropertyInfo faas) async { Map statusResponse = {}; String path = Url.instance.propertyInfo(); Map headers = { 'Content-Type': 'application/json; charset=UTF-8', 'X-Client-Key': xClientKey, 'X-Client-Secret': xClientKeySecret }; http.Response? response; try { response = await Request.instance.postRequest( param: {}, path: path, body: faas.toJson(), headers: headers); } catch (e) { throw e.toString(); } return response; } Future update(PropertyInfo data, id) async { String path = "${Url.instance.propertyInfo()}$id/"; Map headers = { 'Content-Type': 'application/json; charset=UTF-8', 'X-Client-Key': xClientKey, 'X-Client-Secret': xClientKeySecret }; http.Response? response; try { response = await Request.instance.putRequest( path: path, body: data.toJson(), headers: headers, param: {}); } catch (e) { throw e.toString(); } return response; } Future updateBldg(BldgLoc data, id) async { String path = Url.instance.bldgLocation(); Map headers = { 'Content-Type': 'application/json; charset=UTF-8', 'X-Client-Key': xClientKey, 'X-Client-Secret': xClientKeySecret }; Map params = { "bldgappr_details_id": id.toString(), }; http.Response? response; try { response = await Request.instance.putRequest( path: path, body: data.toJson(), headers: headers, param: params); } catch (e) { throw e.toString(); } return response; } Future updateLandRef(LandRef data, id) async { String path = Url.instance.landRef(); Map headers = { 'Content-Type': 'application/json; charset=UTF-8', 'X-Client-Key': xClientKey, 'X-Client-Secret': xClientKeySecret }; Map params = { "bldgappr_details_id": id.toString(), }; http.Response? response; try { response = await Request.instance.putRequest( path: path, body: data.toJson(), headers: headers, param: params); } catch (e) { throw e.toString(); } return response; } Future updateGenDesc(GeneralDesc data, id) async { String path = Url.instance.generalDescription(); Map headers = { 'Content-Type': 'application/json; charset=UTF-8', 'X-Client-Key': xClientKey, 'X-Client-Secret': xClientKeySecret }; Map params = { "bldgappr_details_id": id.toString(), }; http.Response? response; try { response = await Request.instance.putRequest( path: path, body: data.toJson(), headers: headers, param: params); } catch (e) { throw e.toString(); } return response; } Future remove(id) async { String path = Url.instance.propertyInfo(); Map headers = { 'Content-Type': 'application/json; charset=UTF-8', 'X-Client-Key': xClientKey, 'X-Client-Secret': xClientKeySecret }; Map params = { "id": id.toString(), }; try { http.Response response = await Request.instance .deleteRequest(path: path, headers: headers, body: {}, param: params); print(id); if (response.statusCode == 200) { print(response.body); return response; } else { throw Exception(response.reasonPhrase); } } catch (e) { throw e.toString(); } } }