102 lines
2.8 KiB
Dart
102 lines
2.8 KiB
Dart
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<String, String> headers = {
|
|
'Content-Type': 'application/json; charset=UTF-8',
|
|
};
|
|
|
|
Future<List<Country>>getCountries()async{
|
|
List<Country> 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<List<Region>>getRegions()async{
|
|
List<Region> 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<List<Province>>getProvinces({required String regionCode})async{
|
|
List<Province> 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<List<CityMunicipality>>getCities({required String code})async{
|
|
List<CityMunicipality> 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;
|
|
}
|
|
} |