mirror of
https://github.com/immich-app/immich.git
synced 2025-03-11 02:23:09 -05:00
44 lines
1.3 KiB
Dart
44 lines
1.3 KiB
Dart
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||
|
import 'package:immich_mobile/entities/asset.entity.dart';
|
||
|
import 'package:immich_mobile/interfaces/folder_api.interface.dart';
|
||
|
import 'package:immich_mobile/providers/api.provider.dart';
|
||
|
import 'package:immich_mobile/repositories/api.repository.dart';
|
||
|
import 'package:logging/logging.dart';
|
||
|
import 'package:openapi/api.dart';
|
||
|
|
||
|
final folderApiRepositoryProvider = Provider(
|
||
|
(ref) => FolderApiRepository(
|
||
|
ref.watch(apiServiceProvider).viewApi,
|
||
|
),
|
||
|
);
|
||
|
|
||
|
class FolderApiRepository extends ApiRepository
|
||
|
implements IFolderApiRepository {
|
||
|
final ViewApi _api;
|
||
|
final Logger _log = Logger("FolderApiRepository");
|
||
|
|
||
|
FolderApiRepository(this._api);
|
||
|
|
||
|
@override
|
||
|
Future<List<String>> getAllUniquePaths() async {
|
||
|
try {
|
||
|
final list = await _api.getUniqueOriginalPaths();
|
||
|
return list ?? [];
|
||
|
} catch (e, stack) {
|
||
|
_log.severe("Failed to fetch unique original links", e, stack);
|
||
|
return [];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
Future<List<Asset>> getAssetsForPath(String? path) async {
|
||
|
try {
|
||
|
final list = await _api.getAssetsByOriginalPath(path ?? '/');
|
||
|
return list != null ? list.map(Asset.remote).toList() : [];
|
||
|
} catch (e, stack) {
|
||
|
_log.severe("Failed to fetch Assets by original path", e, stack);
|
||
|
return [];
|
||
|
}
|
||
|
}
|
||
|
}
|