From 2b03802e9cd8dec6fafc5b8044cf57b4eb9415ee Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 21 Jun 2025 18:06:38 -0500 Subject: [PATCH] refactor(mobile): asset_api.interface.dart (#19353) --- .../lib/interfaces/asset_api.interface.dart | 26 ------------------- .../repositories/asset_api.repository.dart | 7 +---- mobile/lib/services/asset.service.dart | 3 +-- mobile/lib/services/person.service.dart | 3 +-- mobile/test/repository.mocks.dart | 4 +-- 5 files changed, 5 insertions(+), 38 deletions(-) delete mode 100644 mobile/lib/interfaces/asset_api.interface.dart diff --git a/mobile/lib/interfaces/asset_api.interface.dart b/mobile/lib/interfaces/asset_api.interface.dart deleted file mode 100644 index 71ee993a6b..0000000000 --- a/mobile/lib/interfaces/asset_api.interface.dart +++ /dev/null @@ -1,26 +0,0 @@ -import 'package:immich_mobile/constants/enums.dart'; -import 'package:immich_mobile/entities/asset.entity.dart'; - -abstract interface class IAssetApiRepository { - // Future get(String id); - - // Future> getAll(); - - // Future create(Asset asset); - - Future update( - String id, { - String? description, - }); - - // Future delete(String id); - - Future> search({List personIds = const []}); - - Future updateVisibility( - List list, - AssetVisibilityEnum visibility, - ); - - Future getAssetMIMEType(String id); -} diff --git a/mobile/lib/repositories/asset_api.repository.dart b/mobile/lib/repositories/asset_api.repository.dart index f82df4b774..510715c199 100644 --- a/mobile/lib/repositories/asset_api.repository.dart +++ b/mobile/lib/repositories/asset_api.repository.dart @@ -1,7 +1,6 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/constants/enums.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; -import 'package:immich_mobile/interfaces/asset_api.interface.dart'; import 'package:immich_mobile/providers/api.provider.dart'; import 'package:immich_mobile/repositories/api.repository.dart'; import 'package:openapi/api.dart'; @@ -13,13 +12,12 @@ final assetApiRepositoryProvider = Provider( ), ); -class AssetApiRepository extends ApiRepository implements IAssetApiRepository { +class AssetApiRepository extends ApiRepository { final AssetsApi _api; final SearchApi _searchApi; AssetApiRepository(this._api, this._searchApi); - @override Future update(String id, {String? description}) async { final response = await checkNull( _api.updateAsset(id, UpdateAssetDto(description: description)), @@ -27,7 +25,6 @@ class AssetApiRepository extends ApiRepository implements IAssetApiRepository { return Asset.remote(response); } - @override Future> search({List personIds = const []}) async { // TODO this always fetches all assets, change API and usage to actually do pagination final List result = []; @@ -50,7 +47,6 @@ class AssetApiRepository extends ApiRepository implements IAssetApiRepository { return result; } - @override Future updateVisibility( List ids, AssetVisibilityEnum visibility, @@ -73,7 +69,6 @@ class AssetApiRepository extends ApiRepository implements IAssetApiRepository { } } - @override Future getAssetMIMEType(String assetId) async { final response = await checkNull(_api.getAssetInfo(assetId)); diff --git a/mobile/lib/services/asset.service.dart b/mobile/lib/services/asset.service.dart index b4bb8dad78..cd582b94ac 100644 --- a/mobile/lib/services/asset.service.dart +++ b/mobile/lib/services/asset.service.dart @@ -10,7 +10,6 @@ import 'package:immich_mobile/domain/services/user.service.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/entities/backup_album.entity.dart'; import 'package:immich_mobile/infrastructure/repositories/user.repository.dart'; -import 'package:immich_mobile/interfaces/asset_api.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'; @@ -46,7 +45,7 @@ final assetServiceProvider = Provider( ); class AssetService { - final IAssetApiRepository _assetApiRepository; + final AssetApiRepository _assetApiRepository; final AssetRepository _assetRepository; final IExifInfoRepository _exifInfoRepository; final IsarUserRepository _isarUserRepository; diff --git a/mobile/lib/services/person.service.dart b/mobile/lib/services/person.service.dart index 62bf101505..a591ad4f27 100644 --- a/mobile/lib/services/person.service.dart +++ b/mobile/lib/services/person.service.dart @@ -1,7 +1,6 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/domain/models/person.model.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; -import 'package:immich_mobile/interfaces/asset_api.interface.dart'; import 'package:immich_mobile/repositories/asset.repository.dart'; import 'package:immich_mobile/repositories/asset_api.repository.dart'; import 'package:immich_mobile/repositories/person_api.repository.dart'; @@ -20,7 +19,7 @@ PersonService personService(Ref ref) => PersonService( class PersonService { final Logger _log = Logger("PersonService"); final PersonApiRepository _personApiRepository; - final IAssetApiRepository _assetApiRepository; + final AssetApiRepository _assetApiRepository; final AssetRepository _assetRepository; PersonService( diff --git a/mobile/test/repository.mocks.dart b/mobile/test/repository.mocks.dart index 94c3b34aa3..6ab8bb2836 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/asset_api.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,6 +12,7 @@ import 'package:immich_mobile/repositories/auth.repository.dart'; import 'package:immich_mobile/repositories/auth_api.repository.dart'; import 'package:immich_mobile/repositories/asset.repository.dart'; import 'package:immich_mobile/repositories/asset_media.repository.dart'; +import 'package:immich_mobile/repositories/asset_api.repository.dart'; import 'package:mocktail/mocktail.dart'; class MockAlbumRepository extends Mock implements IAlbumRepository {} @@ -29,7 +29,7 @@ class MockAlbumMediaRepository extends Mock implements AlbumMediaRepository {} class MockBackupAlbumRepository extends Mock implements BackupAlbumRepository {} -class MockAssetApiRepository extends Mock implements IAssetApiRepository {} +class MockAssetApiRepository extends Mock implements AssetApiRepository {} class MockAssetMediaRepository extends Mock implements AssetMediaRepository {}