feat: add image upload functionality to poultry science feature, including repository and data source updates for handling image uploads

This commit is contained in:
2025-12-10 16:42:53 +03:30
parent 455a5a5571
commit 3d73d9a17a
23 changed files with 3481 additions and 36 deletions

View File

@@ -89,4 +89,9 @@ abstract class PoultryScienceRemoteDataSource {
required String token,
required String orderId,
});
Future<List<String>?> uploadImages({
required String token,
required List<XFile> images,
});
}

View File

@@ -245,5 +245,21 @@ class PoultryScienceRemoteDataSourceImpl
);
}
@override
Future<List<String>?> uploadImages({
required String token,
required List<XFile> images,
}) async {
var res = await _httpClient.post<List<String>?>(
'/upload_image_to_server_for_poultry_science/',
headers: {'Authorization': 'Bearer $token'},
data: FormData.fromMap({
'file': images.map((e) => MultipartFile.fromFileSync(e.path)).toList(),
}),
fromJson: (json) => List<String>.from(json['urls'] as List),
);
return res.data;
}
//endregion
}

View File

@@ -89,4 +89,9 @@ abstract class PoultryScienceRepository {
required String token,
required String orderId,
});
Future<List<String>?> uploadImages({
required String token,
required List<XFile> images,
});
}

View File

@@ -180,4 +180,12 @@ class PoultryScienceRepositoryImpl implements PoultryScienceRepository {
}) async {
return await _dataSource.deletePoultryOder(token: token, orderId: orderId);
}
@override
Future<List<String>?> uploadImages({
required String token,
required List<XFile> images,
}) async {
return await _dataSource.uploadImages(token: token, images: images);
}
}