handle more interactions like uploading and single asset links

This commit is contained in:
bwees
2025-08-01 08:21:35 -05:00
parent c8c6f86518
commit cc9ec29c83
10 changed files with 335 additions and 181 deletions
@@ -1,5 +1,6 @@
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:http/http.dart';
import 'package:image_picker/image_picker.dart';
import 'package:immich_mobile/constants/enums.dart';
import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
import 'package:immich_mobile/domain/models/stack.model.dart';
@@ -104,6 +105,20 @@ class AssetApiRepository extends ApiRepository {
Future<void> updateDescription(String assetId, String description) {
return _api.updateAsset(assetId, UpdateAssetDto(description: description));
}
Future<String?> uploadAsset(XFile file) async {
final lastModified = await file.lastModified();
final deviceAssetId = "MOBILE-${file.name}-${lastModified.millisecondsSinceEpoch}";
final multipart = MultipartFile.fromBytes(
'assetData', // field should be 'assetData' to match the backend API
await file.readAsBytes(),
filename: file.name,
);
final asset = await _api.uploadAsset(multipart, deviceAssetId, "MOBILE", lastModified, lastModified);
return asset?.id;
}
}
extension on StackResponseDto {