mirror of
https://github.com/immich-app/immich.git
synced 2025-07-09 03:04:16 -04:00
refactor(mobile): asset_api.interface.dart (#19353)
This commit is contained in:
parent
484311e9bb
commit
2b03802e9c
@ -1,26 +0,0 @@
|
|||||||
import 'package:immich_mobile/constants/enums.dart';
|
|
||||||
import 'package:immich_mobile/entities/asset.entity.dart';
|
|
||||||
|
|
||||||
abstract interface class IAssetApiRepository {
|
|
||||||
// Future<Asset> get(String id);
|
|
||||||
|
|
||||||
// Future<List<Asset>> getAll();
|
|
||||||
|
|
||||||
// Future<Asset> create(Asset asset);
|
|
||||||
|
|
||||||
Future<Asset> update(
|
|
||||||
String id, {
|
|
||||||
String? description,
|
|
||||||
});
|
|
||||||
|
|
||||||
// Future<void> delete(String id);
|
|
||||||
|
|
||||||
Future<List<Asset>> search({List<String> personIds = const []});
|
|
||||||
|
|
||||||
Future<void> updateVisibility(
|
|
||||||
List<String> list,
|
|
||||||
AssetVisibilityEnum visibility,
|
|
||||||
);
|
|
||||||
|
|
||||||
Future<String?> getAssetMIMEType(String id);
|
|
||||||
}
|
|
@ -1,7 +1,6 @@
|
|||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:immich_mobile/constants/enums.dart';
|
import 'package:immich_mobile/constants/enums.dart';
|
||||||
import 'package:immich_mobile/entities/asset.entity.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/providers/api.provider.dart';
|
||||||
import 'package:immich_mobile/repositories/api.repository.dart';
|
import 'package:immich_mobile/repositories/api.repository.dart';
|
||||||
import 'package:openapi/api.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 AssetsApi _api;
|
||||||
final SearchApi _searchApi;
|
final SearchApi _searchApi;
|
||||||
|
|
||||||
AssetApiRepository(this._api, this._searchApi);
|
AssetApiRepository(this._api, this._searchApi);
|
||||||
|
|
||||||
@override
|
|
||||||
Future<Asset> update(String id, {String? description}) async {
|
Future<Asset> update(String id, {String? description}) async {
|
||||||
final response = await checkNull(
|
final response = await checkNull(
|
||||||
_api.updateAsset(id, UpdateAssetDto(description: description)),
|
_api.updateAsset(id, UpdateAssetDto(description: description)),
|
||||||
@ -27,7 +25,6 @@ class AssetApiRepository extends ApiRepository implements IAssetApiRepository {
|
|||||||
return Asset.remote(response);
|
return Asset.remote(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<Asset>> search({List<String> personIds = const []}) async {
|
Future<List<Asset>> search({List<String> personIds = const []}) async {
|
||||||
// TODO this always fetches all assets, change API and usage to actually do pagination
|
// TODO this always fetches all assets, change API and usage to actually do pagination
|
||||||
final List<Asset> result = [];
|
final List<Asset> result = [];
|
||||||
@ -50,7 +47,6 @@ class AssetApiRepository extends ApiRepository implements IAssetApiRepository {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> updateVisibility(
|
Future<void> updateVisibility(
|
||||||
List<String> ids,
|
List<String> ids,
|
||||||
AssetVisibilityEnum visibility,
|
AssetVisibilityEnum visibility,
|
||||||
@ -73,7 +69,6 @@ class AssetApiRepository extends ApiRepository implements IAssetApiRepository {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
Future<String?> getAssetMIMEType(String assetId) async {
|
Future<String?> getAssetMIMEType(String assetId) async {
|
||||||
final response = await checkNull(_api.getAssetInfo(assetId));
|
final response = await checkNull(_api.getAssetInfo(assetId));
|
||||||
|
|
||||||
|
@ -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/asset.entity.dart';
|
||||||
import 'package:immich_mobile/entities/backup_album.entity.dart';
|
import 'package:immich_mobile/entities/backup_album.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/repositories/user.repository.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/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';
|
||||||
@ -46,7 +45,7 @@ final assetServiceProvider = Provider(
|
|||||||
);
|
);
|
||||||
|
|
||||||
class AssetService {
|
class AssetService {
|
||||||
final IAssetApiRepository _assetApiRepository;
|
final AssetApiRepository _assetApiRepository;
|
||||||
final AssetRepository _assetRepository;
|
final AssetRepository _assetRepository;
|
||||||
final IExifInfoRepository _exifInfoRepository;
|
final IExifInfoRepository _exifInfoRepository;
|
||||||
final IsarUserRepository _isarUserRepository;
|
final IsarUserRepository _isarUserRepository;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:immich_mobile/domain/models/person.model.dart';
|
import 'package:immich_mobile/domain/models/person.model.dart';
|
||||||
import 'package:immich_mobile/entities/asset.entity.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.repository.dart';
|
||||||
import 'package:immich_mobile/repositories/asset_api.repository.dart';
|
import 'package:immich_mobile/repositories/asset_api.repository.dart';
|
||||||
import 'package:immich_mobile/repositories/person_api.repository.dart';
|
import 'package:immich_mobile/repositories/person_api.repository.dart';
|
||||||
@ -20,7 +19,7 @@ PersonService personService(Ref ref) => PersonService(
|
|||||||
class PersonService {
|
class PersonService {
|
||||||
final Logger _log = Logger("PersonService");
|
final Logger _log = Logger("PersonService");
|
||||||
final PersonApiRepository _personApiRepository;
|
final PersonApiRepository _personApiRepository;
|
||||||
final IAssetApiRepository _assetApiRepository;
|
final AssetApiRepository _assetApiRepository;
|
||||||
final AssetRepository _assetRepository;
|
final AssetRepository _assetRepository;
|
||||||
|
|
||||||
PersonService(
|
PersonService(
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import 'package:immich_mobile/domain/interfaces/exif.interface.dart';
|
import 'package:immich_mobile/domain/interfaces/exif.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/album.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/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,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/auth_api.repository.dart';
|
||||||
import 'package:immich_mobile/repositories/asset.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_media.repository.dart';
|
||||||
|
import 'package:immich_mobile/repositories/asset_api.repository.dart';
|
||||||
import 'package:mocktail/mocktail.dart';
|
import 'package:mocktail/mocktail.dart';
|
||||||
|
|
||||||
class MockAlbumRepository extends Mock implements IAlbumRepository {}
|
class MockAlbumRepository extends Mock implements IAlbumRepository {}
|
||||||
@ -29,7 +29,7 @@ class MockAlbumMediaRepository extends Mock implements AlbumMediaRepository {}
|
|||||||
|
|
||||||
class MockBackupAlbumRepository extends Mock implements BackupAlbumRepository {}
|
class MockBackupAlbumRepository extends Mock implements BackupAlbumRepository {}
|
||||||
|
|
||||||
class MockAssetApiRepository extends Mock implements IAssetApiRepository {}
|
class MockAssetApiRepository extends Mock implements AssetApiRepository {}
|
||||||
|
|
||||||
class MockAssetMediaRepository extends Mock implements AssetMediaRepository {}
|
class MockAssetMediaRepository extends Mock implements AssetMediaRepository {}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user