From aca9bbfccbab0172460136cbe06476671458c278 Mon Sep 17 00:00:00 2001 From: "mr.mojtaba" Date: Sun, 7 Sep 2025 17:37:30 +0330 Subject: [PATCH] feat : inspection --- .../poultry_science_remote.dart | 2 +- .../poultry_science_remote_imp.dart | 6 ++-- .../poultry_science_repository.dart | 2 +- .../poultry_science_repository_imp.dart | 2 +- .../poultry_science/inspection/logic.dart | 32 +++++++++++-------- 5 files changed, 25 insertions(+), 19 deletions(-) diff --git a/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote.dart b/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote.dart index 8673a98..86a9bdd 100644 --- a/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote.dart +++ b/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote.dart @@ -16,7 +16,7 @@ abstract class PoultryScienceRemoteDatasource { Future submitPoultryScienceReport({ required String token, - required IFormData data, + required FormData data, ProgressCallback? onSendProgress, }); diff --git a/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote_imp.dart b/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote_imp.dart index 035c1e7..cdde99d 100644 --- a/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote_imp.dart +++ b/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote_imp.dart @@ -45,13 +45,13 @@ class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasourc @override Future submitPoultryScienceReport({ required String token, - required IFormData data, + required FormData data, ProgressCallback? onSendProgress, }) async { - await _httpClient.upload( + await _httpClient.post( '/poultry_science_report/', headers: {'Authorization': 'Bearer $token'}, - formData: data, + data: data, onSendProgress: onSendProgress, ); } diff --git a/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository.dart b/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository.dart index e56fc6b..a940ca1 100644 --- a/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository.dart +++ b/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository.dart @@ -14,7 +14,7 @@ abstract class PoultryScienceRepository { Future submitPoultryScienceReport({ required String token, - required IFormData data, + required FormData data, ProgressCallback? onSendProgress, }); diff --git a/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository_imp.dart b/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository_imp.dart index 3e9d461..63c6218 100644 --- a/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository_imp.dart +++ b/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository_imp.dart @@ -26,7 +26,7 @@ class PoultryScienceRepositoryImp implements PoultryScienceRepository { @override Future submitPoultryScienceReport({ required String token, - required IFormData data, + required FormData data, ProgressCallback? onSendProgress, }) async => await datasource.submitPoultryScienceReport( token: token, diff --git a/packages/chicken/lib/presentation/pages/poultry_science/inspection/logic.dart b/packages/chicken/lib/presentation/pages/poultry_science/inspection/logic.dart index 0d8f5c6..6daaff8 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/inspection/logic.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/inspection/logic.dart @@ -149,7 +149,6 @@ class InspectionPoultryScienceLogic extends GetxController { preferredCameraDevice: CameraDevice.front, maxHeight: 720, maxWidth: 1080, - ); getFileSizeInKB(tmp?.path ?? '', tag: 'Picked'); @@ -170,20 +169,30 @@ class InspectionPoultryScienceLogic extends GetxController { isOnUpload.value = true; DioFormData formData = DioFormData(); + var ls = []; - for (var element in _multiPartPickedImages) { - var ls = await element.finalize().toList(); - formData.addFile('file', ls[0], element.filename ?? 'image.jpg'); + for (var element in pickedImages) { + ls.add( + await MultipartFile.fromFile( + element.path, + filename: element.name, + ), + ); } - formData.addField("lat", currentLocation.value.latitude.toString()); - formData.addField("log", currentLocation.value.longitude.toString()); - formData.addField("hatching_id", id.toString()); + var data = FormData.fromMap({ + 'file':ls, + 'hatching_id': id.toString(), + 'lat': currentLocation.value.latitude.toString(), + 'log': currentLocation.value.longitude.toString(), + }); + + safeCall( call: () async => await rootLogic.poultryRepository.submitPoultryScienceReport( token: rootLogic.tokenService.accessToken.value!, - data: formData, + data: data, onSendProgress: (sent, total) { presentUpload.value = calculateUploadProgress(sent: sent, total: total); }, @@ -195,14 +204,11 @@ class InspectionPoultryScienceLogic extends GetxController { getHatchingReport(); isOnUpload.value = false; }, - onError: (error, stackTrace) async{ - + onError: (error, stackTrace) async { clearImages(); isOnUpload.value = false; - await Future.delayed(const Duration(seconds: 4)).then((value) => closeBottomSheet(),); - - + await Future.delayed(const Duration(seconds: 4)).then((value) => closeBottomSheet()); }, showError: true, );