import 'dart:convert'; import 'package:unit2/model/location/city.dart'; import 'package:unit2/model/location/country.dart'; import 'package:http/http.dart' as http; import 'package:unit2/model/location/provinces.dart'; import 'package:unit2/utils/request.dart'; import 'package:unit2/utils/urls.dart'; import '../model/location/region.dart'; class LocationUtils { static final LocationUtils _instance = LocationUtils(); static LocationUtils get instance => _instance; Map headers = { 'Content-Type': 'application/json; charset=UTF-8', }; Future>getCountries()async{ List countries=[]; String path = Url.instance.getCounties(); // try{ http.Response response = await Request.instance.getRequest(path: path, param: {},headers: headers); if(response.statusCode == 200){ Map data = jsonDecode(response.body); if(data['data'] != null){ data['data'].forEach((var country){ Country newCOuntry = Country.fromJson(country); countries.add(newCOuntry); }); } } // }catch(e){ // throw(e.toString()); // } return countries; } Future>getRegions()async{ List regions=[]; String path = Url.instance.getRegions(); // try{ http.Response response = await Request.instance.getRequest(path: path, param: {},headers: headers); if(response.statusCode == 200){ Map data = jsonDecode(response.body); if(data['data'] != null){ data['data'].forEach((var region){ Region newRegion = Region.fromJson(region); regions.add(newRegion); }); } } // }catch(e){ // throw(e.toString()); // } return regions; } Future>getProvinces({required String regionCode})async{ List provinces = []; String path = Url.instance.getProvinces()+regionCode; try{ http.Response response = await Request.instance.getRequest(path: path,param:{},headers: headers); Map data = jsonDecode(response.body); if(data['data'] != null){ data['data'].forEach((var province){ Province newProvince = Province.fromJson(province); provinces.add(newProvince); }); } }catch(e){ throw(e.toString()); } return provinces; } Future>getCities({required String code})async{ List cities = []; String path = Url.instance.getCities()+code; try{ http.Response response = await Request.instance.getRequest(path: path, param: {},headers: headers); Map data = jsonDecode(response.body); if(data['data'] != null){ data['data'].forEach((var city){ CityMunicipality cityMun = CityMunicipality.fromJson(city); cities.add(cityMun); }); } }catch(e){ throw(e.toString()); } return cities; } }