Add file uploads for photos and family icons

This commit is contained in:
kihong.kim
2026-01-24 22:31:38 +09:00
parent 29881aa442
commit 9e6a265a7a
15 changed files with 761 additions and 133 deletions

View File

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