mirror of
https://github.com/immich-app/immich.git
synced 2025-06-23 15:30:51 -04:00
refactor(mobile): backup_album.interface.dart (#19348)
This commit is contained in:
parent
6a5597b36b
commit
9b047d30e4
@ -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<List<BackupAlbum>> getAll({BackupAlbumSort? sort});
|
|
||||||
|
|
||||||
Future<List<String>> getIdsBySelection(BackupSelection backup);
|
|
||||||
|
|
||||||
Future<List<BackupAlbum>> getAllBySelection(BackupSelection backup);
|
|
||||||
|
|
||||||
Future<void> updateAll(List<BackupAlbum> backupAlbums);
|
|
||||||
|
|
||||||
Future<void> deleteAll(List<int> ids);
|
|
||||||
}
|
|
||||||
|
|
||||||
enum BackupAlbumSort { id }
|
|
@ -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/album.entity.dart';
|
||||||
import 'package:immich_mobile/entities/backup_album.entity.dart';
|
import 'package:immich_mobile/entities/backup_album.entity.dart';
|
||||||
import 'package:immich_mobile/entities/store.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/auth/auth_state.model.dart';
|
||||||
import 'package:immich_mobile/models/backup/available_album.model.dart';
|
import 'package:immich_mobile/models/backup/available_album.model.dart';
|
||||||
import 'package:immich_mobile/models/backup/backup_candidate.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/backup/error_backup_list.provider.dart';
|
||||||
import 'package:immich_mobile/providers/gallery_permission.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/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/repositories/file_media.repository.dart';
|
||||||
import 'package:immich_mobile/services/background.service.dart';
|
import 'package:immich_mobile/services/background.service.dart';
|
||||||
import 'package:immich_mobile/services/backup.service.dart';
|
import 'package:immich_mobile/services/backup.service.dart';
|
||||||
|
@ -1,18 +1,17 @@
|
|||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:immich_mobile/entities/backup_album.entity.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/providers/db.provider.dart';
|
||||||
import 'package:immich_mobile/repositories/database.repository.dart';
|
import 'package:immich_mobile/repositories/database.repository.dart';
|
||||||
import 'package:isar/isar.dart';
|
import 'package:isar/isar.dart';
|
||||||
|
|
||||||
|
enum BackupAlbumSort { id }
|
||||||
|
|
||||||
final backupAlbumRepositoryProvider =
|
final backupAlbumRepositoryProvider =
|
||||||
Provider((ref) => BackupAlbumRepository(ref.watch(dbProvider)));
|
Provider((ref) => BackupAlbumRepository(ref.watch(dbProvider)));
|
||||||
|
|
||||||
class BackupAlbumRepository extends DatabaseRepository
|
class BackupAlbumRepository extends DatabaseRepository {
|
||||||
implements IBackupAlbumRepository {
|
|
||||||
BackupAlbumRepository(super.db);
|
BackupAlbumRepository(super.db);
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<BackupAlbum>> getAll({BackupAlbumSort? sort}) {
|
Future<List<BackupAlbum>> getAll({BackupAlbumSort? sort}) {
|
||||||
final baseQuery = db.backupAlbums.where();
|
final baseQuery = db.backupAlbums.where();
|
||||||
final QueryBuilder<BackupAlbum, BackupAlbum, QAfterSortBy> query =
|
final QueryBuilder<BackupAlbum, BackupAlbum, QAfterSortBy> query =
|
||||||
@ -23,19 +22,15 @@ class BackupAlbumRepository extends DatabaseRepository
|
|||||||
return query.findAll();
|
return query.findAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<String>> getIdsBySelection(BackupSelection backup) =>
|
Future<List<String>> getIdsBySelection(BackupSelection backup) =>
|
||||||
db.backupAlbums.filter().selectionEqualTo(backup).idProperty().findAll();
|
db.backupAlbums.filter().selectionEqualTo(backup).idProperty().findAll();
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<BackupAlbum>> getAllBySelection(BackupSelection backup) =>
|
Future<List<BackupAlbum>> getAllBySelection(BackupSelection backup) =>
|
||||||
db.backupAlbums.filter().selectionEqualTo(backup).findAll();
|
db.backupAlbums.filter().selectionEqualTo(backup).findAll();
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> deleteAll(List<int> ids) =>
|
Future<void> deleteAll(List<int> ids) =>
|
||||||
txn(() => db.backupAlbums.deleteAll(ids));
|
txn(() => db.backupAlbums.deleteAll(ids));
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> updateAll(List<BackupAlbum> backupAlbums) =>
|
Future<void> updateAll(List<BackupAlbum> backupAlbums) =>
|
||||||
txn(() => db.backupAlbums.putAll(backupAlbums));
|
txn(() => db.backupAlbums.putAll(backupAlbums));
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,6 @@ import 'package:immich_mobile/infrastructure/entities/user.entity.dart'
|
|||||||
as entity;
|
as entity;
|
||||||
import 'package:immich_mobile/interfaces/album.interface.dart';
|
import 'package:immich_mobile/interfaces/album.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/asset.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_add_asset_response.model.dart';
|
||||||
import 'package:immich_mobile/models/albums/album_search.model.dart';
|
import 'package:immich_mobile/models/albums/album_search.model.dart';
|
||||||
import 'package:immich_mobile/providers/infrastructure/user.provider.dart';
|
import 'package:immich_mobile/providers/infrastructure/user.provider.dart';
|
||||||
@ -48,7 +47,7 @@ class AlbumService {
|
|||||||
final EntityService _entityService;
|
final EntityService _entityService;
|
||||||
final IAlbumRepository _albumRepository;
|
final IAlbumRepository _albumRepository;
|
||||||
final IAssetRepository _assetRepository;
|
final IAssetRepository _assetRepository;
|
||||||
final IBackupAlbumRepository _backupAlbumRepository;
|
final BackupAlbumRepository _backupAlbumRepository;
|
||||||
final AlbumMediaRepository _albumMediaRepository;
|
final AlbumMediaRepository _albumMediaRepository;
|
||||||
final AlbumApiRepository _albumApiRepository;
|
final AlbumApiRepository _albumApiRepository;
|
||||||
final Logger _log = Logger('AlbumService');
|
final Logger _log = Logger('AlbumService');
|
||||||
|
@ -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.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/asset_api.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/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/models/backup/backup_candidate.model.dart';
|
||||||
import 'package:immich_mobile/providers/api.provider.dart';
|
import 'package:immich_mobile/providers/api.provider.dart';
|
||||||
import 'package:immich_mobile/providers/infrastructure/exif.provider.dart';
|
import 'package:immich_mobile/providers/infrastructure/exif.provider.dart';
|
||||||
@ -54,7 +53,7 @@ class AssetService {
|
|||||||
final IExifInfoRepository _exifInfoRepository;
|
final IExifInfoRepository _exifInfoRepository;
|
||||||
final IsarUserRepository _isarUserRepository;
|
final IsarUserRepository _isarUserRepository;
|
||||||
final ETagRepository _etagRepository;
|
final ETagRepository _etagRepository;
|
||||||
final IBackupAlbumRepository _backupRepository;
|
final BackupAlbumRepository _backupRepository;
|
||||||
final ApiService _apiService;
|
final ApiService _apiService;
|
||||||
final SyncService _syncService;
|
final SyncService _syncService;
|
||||||
final BackupService _backupService;
|
final BackupService _backupService;
|
||||||
|
@ -14,7 +14,6 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|||||||
import 'package:immich_mobile/domain/models/store.model.dart';
|
import 'package:immich_mobile/domain/models/store.model.dart';
|
||||||
import 'package:immich_mobile/entities/backup_album.entity.dart';
|
import 'package:immich_mobile/entities/backup_album.entity.dart';
|
||||||
import 'package:immich_mobile/entities/store.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/backup_candidate.model.dart';
|
||||||
import 'package:immich_mobile/models/backup/current_upload_asset.model.dart';
|
import 'package:immich_mobile/models/backup/current_upload_asset.model.dart';
|
||||||
import 'package:immich_mobile/models/backup/error_upload_asset.model.dart';
|
import 'package:immich_mobile/models/backup/error_upload_asset.model.dart';
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:immich_mobile/entities/backup_album.entity.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';
|
import 'package:immich_mobile/repositories/backup.repository.dart';
|
||||||
|
|
||||||
final backupAlbumServiceProvider = Provider<BackupAlbumService>((ref) {
|
final backupAlbumServiceProvider = Provider<BackupAlbumService>((ref) {
|
||||||
@ -8,7 +7,7 @@ final backupAlbumServiceProvider = Provider<BackupAlbumService>((ref) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
class BackupAlbumService {
|
class BackupAlbumService {
|
||||||
final IBackupAlbumRepository _backupAlbumRepository;
|
final BackupAlbumRepository _backupAlbumRepository;
|
||||||
|
|
||||||
BackupAlbumService(this._backupAlbumRepository);
|
BackupAlbumService(this._backupAlbumRepository);
|
||||||
|
|
||||||
|
@ -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/asset_media.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/auth.interface.dart';
|
import 'package:immich_mobile/interfaces/auth.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/auth_api.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/partner_api.repository.dart';
|
||||||
import 'package:immich_mobile/repositories/album_media.repository.dart';
|
import 'package:immich_mobile/repositories/album_media.repository.dart';
|
||||||
import 'package:immich_mobile/repositories/album_api.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/etag.repository.dart';
|
||||||
import 'package:immich_mobile/repositories/local_files_manager.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/file_media.repository.dart';
|
||||||
|
import 'package:immich_mobile/repositories/backup.repository.dart';
|
||||||
import 'package:mocktail/mocktail.dart';
|
import 'package:mocktail/mocktail.dart';
|
||||||
|
|
||||||
class MockAlbumRepository extends Mock implements IAlbumRepository {}
|
class MockAlbumRepository extends Mock implements IAlbumRepository {}
|
||||||
|
|
||||||
class MockAssetRepository extends Mock implements IAssetRepository {}
|
class MockAssetRepository extends Mock implements IAssetRepository {}
|
||||||
|
|
||||||
class MockBackupRepository extends Mock implements IBackupAlbumRepository {}
|
class MockBackupRepository extends Mock implements BackupAlbumRepository {}
|
||||||
|
|
||||||
class MockExifInfoRepository extends Mock implements IExifInfoRepository {}
|
class MockExifInfoRepository extends Mock implements IExifInfoRepository {}
|
||||||
|
|
||||||
@ -27,8 +27,7 @@ class MockETagRepository extends Mock implements ETagRepository {}
|
|||||||
|
|
||||||
class MockAlbumMediaRepository extends Mock implements AlbumMediaRepository {}
|
class MockAlbumMediaRepository extends Mock implements AlbumMediaRepository {}
|
||||||
|
|
||||||
class MockBackupAlbumRepository extends Mock
|
class MockBackupAlbumRepository extends Mock implements BackupAlbumRepository {}
|
||||||
implements IBackupAlbumRepository {}
|
|
||||||
|
|
||||||
class MockAssetApiRepository extends Mock implements IAssetApiRepository {}
|
class MockAssetApiRepository extends Mock implements IAssetApiRepository {}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user