From ff4d70e351b8567acba54bf6dc4b40bf1549814f Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 20 Jun 2025 09:08:23 -0500 Subject: [PATCH] refactor(mobile): album_api.interface.dart (#19356) --- .../lib/interfaces/album_api.interface.dart | 42 ------------------- .../repositories/album_api.repository.dart | 12 +----- mobile/lib/services/album.service.dart | 3 +- mobile/lib/services/sync.service.dart | 3 +- mobile/test/repository.mocks.dart | 4 +- 5 files changed, 5 insertions(+), 59 deletions(-) delete mode 100644 mobile/lib/interfaces/album_api.interface.dart diff --git a/mobile/lib/interfaces/album_api.interface.dart b/mobile/lib/interfaces/album_api.interface.dart deleted file mode 100644 index b751ccc170..0000000000 --- a/mobile/lib/interfaces/album_api.interface.dart +++ /dev/null @@ -1,42 +0,0 @@ -import 'package:immich_mobile/constants/enums.dart'; -import 'package:immich_mobile/entities/album.entity.dart'; - -abstract interface class IAlbumApiRepository { - Future get(String id); - - Future> getAll({bool? shared}); - - Future create( - String name, { - required Iterable assetIds, - Iterable sharedUserIds = const [], - }); - - Future update( - String albumId, { - String? name, - String? thumbnailAssetId, - String? description, - bool? activityEnabled, - SortOrder? sortOrder, - }); - - Future delete(String albumId); - - Future<({List added, List duplicates})> addAssets( - String albumId, - Iterable assetIds, - ); - - Future<({List removed, List failed})> removeAssets( - String albumId, - Iterable assetIds, - ); - - Future addUsers( - String albumId, - Iterable userIds, - ); - - Future removeUser(String albumId, {required String userId}); -} diff --git a/mobile/lib/repositories/album_api.repository.dart b/mobile/lib/repositories/album_api.repository.dart index e2ac73bd9b..019e4dc63c 100644 --- a/mobile/lib/repositories/album_api.repository.dart +++ b/mobile/lib/repositories/album_api.repository.dart @@ -5,7 +5,6 @@ import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/infrastructure/entities/user.entity.dart' as entity; import 'package:immich_mobile/infrastructure/utils/user.converter.dart'; -import 'package:immich_mobile/interfaces/album_api.interface.dart'; import 'package:immich_mobile/providers/api.provider.dart'; import 'package:immich_mobile/repositories/api.repository.dart'; import 'package:openapi/api.dart'; @@ -14,24 +13,21 @@ final albumApiRepositoryProvider = Provider( (ref) => AlbumApiRepository(ref.watch(apiServiceProvider).albumsApi), ); -class AlbumApiRepository extends ApiRepository implements IAlbumApiRepository { +class AlbumApiRepository extends ApiRepository { final AlbumsApi _api; AlbumApiRepository(this._api); - @override Future get(String id) async { final dto = await checkNull(_api.getAlbumInfo(id)); return _toAlbum(dto); } - @override Future> getAll({bool? shared}) async { final dtos = await checkNull(_api.getAllAlbums(shared: shared)); return dtos.map(_toAlbum).toList(); } - @override Future create( String name, { required Iterable assetIds, @@ -54,7 +50,6 @@ class AlbumApiRepository extends ApiRepository implements IAlbumApiRepository { return _toAlbum(responseDto); } - @override Future update( String albumId, { String? name, @@ -84,12 +79,10 @@ class AlbumApiRepository extends ApiRepository implements IAlbumApiRepository { return _toAlbum(response); } - @override Future delete(String albumId) { return _api.deleteAlbum(albumId); } - @override Future<({List added, List duplicates})> addAssets( String albumId, Iterable assetIds, @@ -114,7 +107,6 @@ class AlbumApiRepository extends ApiRepository implements IAlbumApiRepository { return (added: added, duplicates: duplicates); } - @override Future<({List removed, List failed})> removeAssets( String albumId, Iterable assetIds, @@ -136,7 +128,6 @@ class AlbumApiRepository extends ApiRepository implements IAlbumApiRepository { return (removed: removed, failed: failed); } - @override Future addUsers(String albumId, Iterable userIds) async { final albumUsers = userIds.map((userId) => AlbumUserAddDto(userId: userId)).toList(); @@ -149,7 +140,6 @@ class AlbumApiRepository extends ApiRepository implements IAlbumApiRepository { return _toAlbum(response); } - @override Future removeUser(String albumId, {required String userId}) { return _api.removeUserFromAlbum(albumId, userId); } diff --git a/mobile/lib/services/album.service.dart b/mobile/lib/services/album.service.dart index f1e8721040..0f135ce44c 100644 --- a/mobile/lib/services/album.service.dart +++ b/mobile/lib/services/album.service.dart @@ -14,7 +14,6 @@ import 'package:immich_mobile/entities/backup_album.entity.dart'; import 'package:immich_mobile/infrastructure/entities/user.entity.dart' as entity; import 'package:immich_mobile/interfaces/album.interface.dart'; -import 'package:immich_mobile/interfaces/album_api.interface.dart'; import 'package:immich_mobile/interfaces/album_media.interface.dart'; import 'package:immich_mobile/interfaces/asset.interface.dart'; import 'package:immich_mobile/interfaces/backup_album.interface.dart'; @@ -52,7 +51,7 @@ class AlbumService { final IAssetRepository _assetRepository; final IBackupAlbumRepository _backupAlbumRepository; final IAlbumMediaRepository _albumMediaRepository; - final IAlbumApiRepository _albumApiRepository; + final AlbumApiRepository _albumApiRepository; final Logger _log = Logger('AlbumService'); Completer _localCompleter = Completer()..complete(false); Completer _remoteCompleter = Completer()..complete(false); diff --git a/mobile/lib/services/sync.service.dart b/mobile/lib/services/sync.service.dart index 5dbacf84fd..464b5d3096 100644 --- a/mobile/lib/services/sync.service.dart +++ b/mobile/lib/services/sync.service.dart @@ -14,7 +14,6 @@ import 'package:immich_mobile/extensions/collection_extensions.dart'; import 'package:immich_mobile/infrastructure/repositories/user.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/user_api.repository.dart'; import 'package:immich_mobile/interfaces/album.interface.dart'; -import 'package:immich_mobile/interfaces/album_api.interface.dart'; import 'package:immich_mobile/interfaces/album_media.interface.dart'; import 'package:immich_mobile/interfaces/asset.interface.dart'; import 'package:immich_mobile/interfaces/etag.interface.dart'; @@ -65,7 +64,7 @@ class SyncService { final HashService _hashService; final EntityService _entityService; final IAlbumMediaRepository _albumMediaRepository; - final IAlbumApiRepository _albumApiRepository; + final AlbumApiRepository _albumApiRepository; final IAlbumRepository _albumRepository; final IAssetRepository _assetRepository; final IExifInfoRepository _exifInfoRepository; diff --git a/mobile/test/repository.mocks.dart b/mobile/test/repository.mocks.dart index d2f0da4231..d642f9efe0 100644 --- a/mobile/test/repository.mocks.dart +++ b/mobile/test/repository.mocks.dart @@ -1,6 +1,5 @@ import 'package:immich_mobile/domain/interfaces/exif.interface.dart'; import 'package:immich_mobile/interfaces/album.interface.dart'; -import 'package:immich_mobile/interfaces/album_api.interface.dart'; import 'package:immich_mobile/interfaces/album_media.interface.dart'; import 'package:immich_mobile/interfaces/asset.interface.dart'; import 'package:immich_mobile/interfaces/asset_api.interface.dart'; @@ -13,6 +12,7 @@ import 'package:immich_mobile/interfaces/file_media.interface.dart'; import 'package:immich_mobile/interfaces/local_files_manager.interface.dart'; import 'package:immich_mobile/interfaces/partner.interface.dart'; import 'package:immich_mobile/interfaces/partner_api.interface.dart'; +import 'package:immich_mobile/repositories/album_api.repository.dart'; import 'package:mocktail/mocktail.dart'; class MockAlbumRepository extends Mock implements IAlbumRepository {} @@ -36,7 +36,7 @@ class MockAssetMediaRepository extends Mock implements IAssetMediaRepository {} class MockFileMediaRepository extends Mock implements IFileMediaRepository {} -class MockAlbumApiRepository extends Mock implements IAlbumApiRepository {} +class MockAlbumApiRepository extends Mock implements AlbumApiRepository {} class MockAuthApiRepository extends Mock implements IAuthApiRepository {}