mirror of
https://github.com/immich-app/immich
synced 2026-08-22 13:13:05 +00:00
* chore(mobile): use Drift @DriftAccessor() and collapse some providers * Fix import order * Required formatting
45 lines
1.6 KiB
Dart
45 lines
1.6 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:immich_mobile/infrastructure/repositories/remote_asset.repository.dart';
|
|
import 'package:immich_mobile/providers/infrastructure/db.provider.dart';
|
|
import 'package:immich_mobile/repositories/asset_api.repository.dart';
|
|
|
|
final actionServiceProvider = Provider<ActionService>(
|
|
(ref) => ActionService(ref.watch(assetApiRepositoryProvider), ref.watch(driftProvider).remoteAssetRepository),
|
|
);
|
|
|
|
class ActionService {
|
|
final AssetApiRepository _assetApiRepository;
|
|
final RemoteAssetRepository _remoteAssetRepository;
|
|
|
|
const ActionService(this._assetApiRepository, this._remoteAssetRepository);
|
|
|
|
Future<int> emptyTrash(String userId) async {
|
|
final count = await _assetApiRepository.emptyTrash();
|
|
await _remoteAssetRepository.emptyTrash(userId);
|
|
return count;
|
|
}
|
|
|
|
Future<int> restoreAllTrash(String userId) async {
|
|
final count = await _assetApiRepository.restoreAllTrash();
|
|
await _remoteAssetRepository.restoreAllTrash(userId);
|
|
return count;
|
|
}
|
|
|
|
Future<bool> updateDescription(String assetId, String description) async {
|
|
// update remote first, then local to ensure consistency
|
|
await _assetApiRepository.updateDescription(assetId, description);
|
|
await _remoteAssetRepository.updateDescription(assetId, description);
|
|
|
|
return true;
|
|
}
|
|
|
|
Future<bool> updateRating(String assetId, int? rating) async {
|
|
// update remote first, then local to ensure consistency
|
|
await _assetApiRepository.updateRating(assetId, rating);
|
|
await _remoteAssetRepository.updateRating(assetId, rating);
|
|
|
|
return true;
|
|
}
|
|
}
|