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> 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> 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 []; } } }