feat : request tagging

This commit is contained in:
2025-08-05 14:48:47 +03:30
parent 7b8cfb5ae9
commit 59e6d621cf
19 changed files with 318 additions and 66 deletions

View File

@@ -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});
}

View File

@@ -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;
}
}
}