feat : inspection

This commit is contained in:
2025-09-07 17:37:30 +03:30
parent d914bf7f36
commit aca9bbfccb
5 changed files with 25 additions and 19 deletions

View File

@@ -16,7 +16,7 @@ abstract class PoultryScienceRemoteDatasource {
Future<void> submitPoultryScienceReport({ Future<void> submitPoultryScienceReport({
required String token, required String token,
required IFormData data, required FormData data,
ProgressCallback? onSendProgress, ProgressCallback? onSendProgress,
}); });

View File

@@ -45,13 +45,13 @@ class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasourc
@override @override
Future<void> submitPoultryScienceReport({ Future<void> submitPoultryScienceReport({
required String token, required String token,
required IFormData data, required FormData data,
ProgressCallback? onSendProgress, ProgressCallback? onSendProgress,
}) async { }) async {
await _httpClient.upload( await _httpClient.post(
'/poultry_science_report/', '/poultry_science_report/',
headers: {'Authorization': 'Bearer $token'}, headers: {'Authorization': 'Bearer $token'},
formData: data, data: data,
onSendProgress: onSendProgress, onSendProgress: onSendProgress,
); );
} }

View File

@@ -14,7 +14,7 @@ abstract class PoultryScienceRepository {
Future<void> submitPoultryScienceReport({ Future<void> submitPoultryScienceReport({
required String token, required String token,
required IFormData data, required FormData data,
ProgressCallback? onSendProgress, ProgressCallback? onSendProgress,
}); });

View File

@@ -26,7 +26,7 @@ class PoultryScienceRepositoryImp implements PoultryScienceRepository {
@override @override
Future<void> submitPoultryScienceReport({ Future<void> submitPoultryScienceReport({
required String token, required String token,
required IFormData data, required FormData data,
ProgressCallback? onSendProgress, ProgressCallback? onSendProgress,
}) async => await datasource.submitPoultryScienceReport( }) async => await datasource.submitPoultryScienceReport(
token: token, token: token,

View File

@@ -149,7 +149,6 @@ class InspectionPoultryScienceLogic extends GetxController {
preferredCameraDevice: CameraDevice.front, preferredCameraDevice: CameraDevice.front,
maxHeight: 720, maxHeight: 720,
maxWidth: 1080, maxWidth: 1080,
); );
getFileSizeInKB(tmp?.path ?? '', tag: 'Picked'); getFileSizeInKB(tmp?.path ?? '', tag: 'Picked');
@@ -170,20 +169,30 @@ class InspectionPoultryScienceLogic extends GetxController {
isOnUpload.value = true; isOnUpload.value = true;
DioFormData formData = DioFormData(); DioFormData formData = DioFormData();
var ls = [];
for (var element in _multiPartPickedImages) { for (var element in pickedImages) {
var ls = await element.finalize().toList(); ls.add(
formData.addFile('file', ls[0], element.filename ?? 'image.jpg'); await MultipartFile.fromFile(
element.path,
filename: element.name,
),
);
} }
formData.addField("lat", currentLocation.value.latitude.toString()); var data = FormData.fromMap({
formData.addField("log", currentLocation.value.longitude.toString()); 'file':ls,
formData.addField("hatching_id", id.toString()); 'hatching_id': id.toString(),
'lat': currentLocation.value.latitude.toString(),
'log': currentLocation.value.longitude.toString(),
});
safeCall( safeCall(
call: () async => await rootLogic.poultryRepository.submitPoultryScienceReport( call: () async => await rootLogic.poultryRepository.submitPoultryScienceReport(
token: rootLogic.tokenService.accessToken.value!, token: rootLogic.tokenService.accessToken.value!,
data: formData, data: data,
onSendProgress: (sent, total) { onSendProgress: (sent, total) {
presentUpload.value = calculateUploadProgress(sent: sent, total: total); presentUpload.value = calculateUploadProgress(sent: sent, total: total);
}, },
@@ -195,14 +204,11 @@ class InspectionPoultryScienceLogic extends GetxController {
getHatchingReport(); getHatchingReport();
isOnUpload.value = false; isOnUpload.value = false;
}, },
onError: (error, stackTrace) async{ onError: (error, stackTrace) async {
clearImages(); clearImages();
isOnUpload.value = false; 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, showError: true,
); );