From 9b047d30e4a20587e6ab5a8ccf402d1333d8d910 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 21 Jun 2025 16:58:02 -0500 Subject: [PATCH] refactor(mobile): backup_album.interface.dart (#19348) --- .../lib/interfaces/backup_album.interface.dart | 16 ---------------- mobile/lib/providers/backup/backup.provider.dart | 2 +- mobile/lib/repositories/backup.repository.dart | 11 +++-------- mobile/lib/services/album.service.dart | 3 +-- mobile/lib/services/asset.service.dart | 3 +-- mobile/lib/services/background.service.dart | 1 - mobile/lib/services/backup_album.service.dart | 3 +-- mobile/test/repository.mocks.dart | 7 +++---- 8 files changed, 10 insertions(+), 36 deletions(-) delete mode 100644 mobile/lib/interfaces/backup_album.interface.dart diff --git a/mobile/lib/interfaces/backup_album.interface.dart b/mobile/lib/interfaces/backup_album.interface.dart deleted file mode 100644 index f98adb6821..0000000000 --- a/mobile/lib/interfaces/backup_album.interface.dart +++ /dev/null @@ -1,16 +0,0 @@ -import 'package:immich_mobile/entities/backup_album.entity.dart'; -import 'package:immich_mobile/interfaces/database.interface.dart'; - -abstract interface class IBackupAlbumRepository implements IDatabaseRepository { - Future> getAll({BackupAlbumSort? sort}); - - Future> getIdsBySelection(BackupSelection backup); - - Future> getAllBySelection(BackupSelection backup); - - Future updateAll(List backupAlbums); - - Future deleteAll(List ids); -} - -enum BackupAlbumSort { id } diff --git a/mobile/lib/providers/backup/backup.provider.dart b/mobile/lib/providers/backup/backup.provider.dart index 16d4a58bd6..69246398ed 100644 --- a/mobile/lib/providers/backup/backup.provider.dart +++ b/mobile/lib/providers/backup/backup.provider.dart @@ -9,7 +9,6 @@ import 'package:immich_mobile/domain/models/store.model.dart'; import 'package:immich_mobile/entities/album.entity.dart'; import 'package:immich_mobile/entities/backup_album.entity.dart'; import 'package:immich_mobile/entities/store.entity.dart'; -import 'package:immich_mobile/interfaces/backup_album.interface.dart'; import 'package:immich_mobile/models/auth/auth_state.model.dart'; import 'package:immich_mobile/models/backup/available_album.model.dart'; import 'package:immich_mobile/models/backup/backup_candidate.model.dart'; @@ -23,6 +22,7 @@ import 'package:immich_mobile/providers/auth.provider.dart'; import 'package:immich_mobile/providers/backup/error_backup_list.provider.dart'; import 'package:immich_mobile/providers/gallery_permission.provider.dart'; import 'package:immich_mobile/repositories/album_media.repository.dart'; +import 'package:immich_mobile/repositories/backup.repository.dart'; import 'package:immich_mobile/repositories/file_media.repository.dart'; import 'package:immich_mobile/services/background.service.dart'; import 'package:immich_mobile/services/backup.service.dart'; diff --git a/mobile/lib/repositories/backup.repository.dart b/mobile/lib/repositories/backup.repository.dart index f7f3051f46..836dde22c5 100644 --- a/mobile/lib/repositories/backup.repository.dart +++ b/mobile/lib/repositories/backup.repository.dart @@ -1,18 +1,17 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/entities/backup_album.entity.dart'; -import 'package:immich_mobile/interfaces/backup_album.interface.dart'; import 'package:immich_mobile/providers/db.provider.dart'; import 'package:immich_mobile/repositories/database.repository.dart'; import 'package:isar/isar.dart'; +enum BackupAlbumSort { id } + final backupAlbumRepositoryProvider = Provider((ref) => BackupAlbumRepository(ref.watch(dbProvider))); -class BackupAlbumRepository extends DatabaseRepository - implements IBackupAlbumRepository { +class BackupAlbumRepository extends DatabaseRepository { BackupAlbumRepository(super.db); - @override Future> getAll({BackupAlbumSort? sort}) { final baseQuery = db.backupAlbums.where(); final QueryBuilder query = @@ -23,19 +22,15 @@ class BackupAlbumRepository extends DatabaseRepository return query.findAll(); } - @override Future> getIdsBySelection(BackupSelection backup) => db.backupAlbums.filter().selectionEqualTo(backup).idProperty().findAll(); - @override Future> getAllBySelection(BackupSelection backup) => db.backupAlbums.filter().selectionEqualTo(backup).findAll(); - @override Future deleteAll(List ids) => txn(() => db.backupAlbums.deleteAll(ids)); - @override Future updateAll(List backupAlbums) => txn(() => db.backupAlbums.putAll(backupAlbums)); } diff --git a/mobile/lib/services/album.service.dart b/mobile/lib/services/album.service.dart index bf67f1c24c..9fc578fcff 100644 --- a/mobile/lib/services/album.service.dart +++ b/mobile/lib/services/album.service.dart @@ -15,7 +15,6 @@ import 'package:immich_mobile/infrastructure/entities/user.entity.dart' as entity; import 'package:immich_mobile/interfaces/album.interface.dart'; import 'package:immich_mobile/interfaces/asset.interface.dart'; -import 'package:immich_mobile/interfaces/backup_album.interface.dart'; import 'package:immich_mobile/models/albums/album_add_asset_response.model.dart'; import 'package:immich_mobile/models/albums/album_search.model.dart'; import 'package:immich_mobile/providers/infrastructure/user.provider.dart'; @@ -48,7 +47,7 @@ class AlbumService { final EntityService _entityService; final IAlbumRepository _albumRepository; final IAssetRepository _assetRepository; - final IBackupAlbumRepository _backupAlbumRepository; + final BackupAlbumRepository _backupAlbumRepository; final AlbumMediaRepository _albumMediaRepository; final AlbumApiRepository _albumApiRepository; final Logger _log = Logger('AlbumService'); diff --git a/mobile/lib/services/asset.service.dart b/mobile/lib/services/asset.service.dart index 782a11912e..c4cb884ed4 100644 --- a/mobile/lib/services/asset.service.dart +++ b/mobile/lib/services/asset.service.dart @@ -13,7 +13,6 @@ import 'package:immich_mobile/infrastructure/repositories/user.repository.dart'; import 'package:immich_mobile/interfaces/asset.interface.dart'; import 'package:immich_mobile/interfaces/asset_api.interface.dart'; import 'package:immich_mobile/interfaces/asset_media.interface.dart'; -import 'package:immich_mobile/interfaces/backup_album.interface.dart'; import 'package:immich_mobile/models/backup/backup_candidate.model.dart'; import 'package:immich_mobile/providers/api.provider.dart'; import 'package:immich_mobile/providers/infrastructure/exif.provider.dart'; @@ -54,7 +53,7 @@ class AssetService { final IExifInfoRepository _exifInfoRepository; final IsarUserRepository _isarUserRepository; final ETagRepository _etagRepository; - final IBackupAlbumRepository _backupRepository; + final BackupAlbumRepository _backupRepository; final ApiService _apiService; final SyncService _syncService; final BackupService _backupService; diff --git a/mobile/lib/services/background.service.dart b/mobile/lib/services/background.service.dart index 4c4a9b1cff..97acf2941f 100644 --- a/mobile/lib/services/background.service.dart +++ b/mobile/lib/services/background.service.dart @@ -14,7 +14,6 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/domain/models/store.model.dart'; import 'package:immich_mobile/entities/backup_album.entity.dart'; import 'package:immich_mobile/entities/store.entity.dart'; -import 'package:immich_mobile/interfaces/backup_album.interface.dart'; import 'package:immich_mobile/models/backup/backup_candidate.model.dart'; import 'package:immich_mobile/models/backup/current_upload_asset.model.dart'; import 'package:immich_mobile/models/backup/error_upload_asset.model.dart'; diff --git a/mobile/lib/services/backup_album.service.dart b/mobile/lib/services/backup_album.service.dart index 8030d66937..0de7748a9c 100644 --- a/mobile/lib/services/backup_album.service.dart +++ b/mobile/lib/services/backup_album.service.dart @@ -1,6 +1,5 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/entities/backup_album.entity.dart'; -import 'package:immich_mobile/interfaces/backup_album.interface.dart'; import 'package:immich_mobile/repositories/backup.repository.dart'; final backupAlbumServiceProvider = Provider((ref) { @@ -8,7 +7,7 @@ final backupAlbumServiceProvider = Provider((ref) { }); class BackupAlbumService { - final IBackupAlbumRepository _backupAlbumRepository; + final BackupAlbumRepository _backupAlbumRepository; BackupAlbumService(this._backupAlbumRepository); diff --git a/mobile/test/repository.mocks.dart b/mobile/test/repository.mocks.dart index cf0909b5dc..efbd909713 100644 --- a/mobile/test/repository.mocks.dart +++ b/mobile/test/repository.mocks.dart @@ -5,7 +5,6 @@ import 'package:immich_mobile/interfaces/asset_api.interface.dart'; import 'package:immich_mobile/interfaces/asset_media.interface.dart'; import 'package:immich_mobile/interfaces/auth.interface.dart'; import 'package:immich_mobile/interfaces/auth_api.interface.dart'; -import 'package:immich_mobile/interfaces/backup_album.interface.dart'; import 'package:immich_mobile/repositories/partner_api.repository.dart'; import 'package:immich_mobile/repositories/album_media.repository.dart'; import 'package:immich_mobile/repositories/album_api.repository.dart'; @@ -13,13 +12,14 @@ import 'package:immich_mobile/repositories/partner.repository.dart'; import 'package:immich_mobile/repositories/etag.repository.dart'; import 'package:immich_mobile/repositories/local_files_manager.repository.dart'; import 'package:immich_mobile/repositories/file_media.repository.dart'; +import 'package:immich_mobile/repositories/backup.repository.dart'; import 'package:mocktail/mocktail.dart'; class MockAlbumRepository extends Mock implements IAlbumRepository {} class MockAssetRepository extends Mock implements IAssetRepository {} -class MockBackupRepository extends Mock implements IBackupAlbumRepository {} +class MockBackupRepository extends Mock implements BackupAlbumRepository {} class MockExifInfoRepository extends Mock implements IExifInfoRepository {} @@ -27,8 +27,7 @@ class MockETagRepository extends Mock implements ETagRepository {} class MockAlbumMediaRepository extends Mock implements AlbumMediaRepository {} -class MockBackupAlbumRepository extends Mock - implements IBackupAlbumRepository {} +class MockBackupAlbumRepository extends Mock implements BackupAlbumRepository {} class MockAssetApiRepository extends Mock implements IAssetApiRepository {}