feat : request tagging
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
import 'package:rasadyar_livestock/data/model/response/address/address.dart';
|
||||
|
||||
abstract class LivestockRemoteDataSource {
|
||||
Future<LocationDetails> getLocationDetailsByLatLng({required double latitude, required double longitude});
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
import 'package:rasadyar_core/core.dart';
|
||||
import 'package:rasadyar_livestock/data/data_source/remote/livestock/livestock_remote.dart';
|
||||
import 'package:rasadyar_livestock/data/model/response/address/address.dart';
|
||||
|
||||
class LivestockRemoteDataSourceImp implements LivestockRemoteDataSource {
|
||||
@override
|
||||
Future<LocationDetails> getLocationDetailsByLatLng({
|
||||
required double latitude,
|
||||
required double longitude,
|
||||
}) async {
|
||||
try {
|
||||
Dio dio = Dio();
|
||||
dio.options.baseUrl = 'https://nominatim.openstreetmap.org/';
|
||||
dio.options.headers['User-Agent'] = 'RasadyarLivestock/2.0';
|
||||
final response = await dio.get(
|
||||
'reverse',
|
||||
queryParameters: {'lat': latitude, 'lon': longitude, 'format': 'json'},
|
||||
);
|
||||
if (response.statusCode == 200) {
|
||||
final data = response.data;
|
||||
return LocationDetails.fromJson(data);
|
||||
} else {
|
||||
throw Exception('Failed to load address');
|
||||
}
|
||||
} catch (e) {
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user