Add file uploads for photos and family icons
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import "dart:typed_data";
|
||||
|
||||
import "../config/api_config.dart";
|
||||
import "../models/photo.dart";
|
||||
import "api_client.dart";
|
||||
@@ -38,6 +40,35 @@ class PhotoService {
|
||||
return Photo.fromJson(data);
|
||||
}
|
||||
|
||||
Future<Photo> uploadPhotoBytes({
|
||||
required Uint8List bytes,
|
||||
required String filename,
|
||||
String caption = "",
|
||||
bool active = true,
|
||||
}) async {
|
||||
if (ApiConfig.useMockData) {
|
||||
final created = Photo(
|
||||
id: "photo-${DateTime.now().millisecondsSinceEpoch}",
|
||||
url: "mock://$filename",
|
||||
caption: caption,
|
||||
active: active,
|
||||
);
|
||||
MockDataStore.photos.add(created);
|
||||
return created;
|
||||
}
|
||||
final data = await _client.postMultipart(
|
||||
"${ApiConfig.photos}/upload",
|
||||
fieldName: "file",
|
||||
bytes: bytes,
|
||||
filename: filename,
|
||||
fields: {
|
||||
"caption": caption,
|
||||
"active": active.toString(),
|
||||
},
|
||||
);
|
||||
return Photo.fromJson(data);
|
||||
}
|
||||
|
||||
Future<void> deletePhoto(String id) async {
|
||||
if (ApiConfig.useMockData) {
|
||||
MockDataStore.photos.removeWhere((item) => item.id == id);
|
||||
|
||||
Reference in New Issue
Block a user