refactor(mobile): auth.interface.dart (#19349)

This commit is contained in:
Alex 2025-06-21 17:09:12 -05:00 committed by GitHub
parent 9b047d30e4
commit af30d97668
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 7 additions and 27 deletions

View File

@ -1,11 +0,0 @@
import 'package:immich_mobile/interfaces/database.interface.dart';
import 'package:immich_mobile/models/auth/auxilary_endpoint.model.dart';
abstract interface class IAuthRepository implements IDatabaseRepository {
Future<void> clearLocalData();
String getAccessToken();
bool getEndpointSwitchingFeature();
String? getPreferredWifiName();
String? getLocalEndpoint();
List<AuxilaryEndpoint> getExternalEndpointList();
}

View File

@ -10,23 +10,20 @@ import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/infrastructure/entities/exif.entity.dart'; import 'package:immich_mobile/infrastructure/entities/exif.entity.dart';
import 'package:immich_mobile/infrastructure/entities/user.entity.dart'; import 'package:immich_mobile/infrastructure/entities/user.entity.dart';
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
import 'package:immich_mobile/interfaces/auth.interface.dart';
import 'package:immich_mobile/models/auth/auxilary_endpoint.model.dart'; import 'package:immich_mobile/models/auth/auxilary_endpoint.model.dart';
import 'package:immich_mobile/providers/db.provider.dart'; import 'package:immich_mobile/providers/db.provider.dart';
import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; import 'package:immich_mobile/providers/infrastructure/db.provider.dart';
import 'package:immich_mobile/repositories/database.repository.dart'; import 'package:immich_mobile/repositories/database.repository.dart';
final authRepositoryProvider = Provider<IAuthRepository>( final authRepositoryProvider = Provider<AuthRepository>(
(ref) => (ref) => AuthRepository(ref.watch(dbProvider), ref.watch(driftProvider)),
AuthRepository(ref.watch(dbProvider), drift: ref.watch(driftProvider)),
); );
class AuthRepository extends DatabaseRepository implements IAuthRepository { class AuthRepository extends DatabaseRepository {
final Drift _drift; final Drift _drift;
AuthRepository(super.db, {required Drift drift}) : _drift = drift; AuthRepository(super.db, this._drift);
@override
Future<void> clearLocalData() { Future<void> clearLocalData() {
return db.writeTxn(() { return db.writeTxn(() {
return Future.wait([ return Future.wait([
@ -41,27 +38,22 @@ class AuthRepository extends DatabaseRepository implements IAuthRepository {
}); });
} }
@override
String getAccessToken() { String getAccessToken() {
return Store.get(StoreKey.accessToken); return Store.get(StoreKey.accessToken);
} }
@override
bool getEndpointSwitchingFeature() { bool getEndpointSwitchingFeature() {
return Store.tryGet(StoreKey.autoEndpointSwitching) ?? false; return Store.tryGet(StoreKey.autoEndpointSwitching) ?? false;
} }
@override
String? getPreferredWifiName() { String? getPreferredWifiName() {
return Store.tryGet(StoreKey.preferredWifiName); return Store.tryGet(StoreKey.preferredWifiName);
} }
@override
String? getLocalEndpoint() { String? getLocalEndpoint() {
return Store.tryGet(StoreKey.localEndpoint); return Store.tryGet(StoreKey.localEndpoint);
} }
@override
List<AuxilaryEndpoint> getExternalEndpointList() { List<AuxilaryEndpoint> getExternalEndpointList() {
final jsonString = Store.tryGet(StoreKey.externalEndpointList); final jsonString = Store.tryGet(StoreKey.externalEndpointList);

View File

@ -5,7 +5,6 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/domain/models/store.model.dart'; import 'package:immich_mobile/domain/models/store.model.dart';
import 'package:immich_mobile/domain/utils/background_sync.dart'; import 'package:immich_mobile/domain/utils/background_sync.dart';
import 'package:immich_mobile/entities/store.entity.dart'; import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/interfaces/auth.interface.dart';
import 'package:immich_mobile/interfaces/auth_api.interface.dart'; import 'package:immich_mobile/interfaces/auth_api.interface.dart';
import 'package:immich_mobile/models/auth/auxilary_endpoint.model.dart'; import 'package:immich_mobile/models/auth/auxilary_endpoint.model.dart';
import 'package:immich_mobile/models/auth/login_response.model.dart'; import 'package:immich_mobile/models/auth/login_response.model.dart';
@ -30,7 +29,7 @@ final authServiceProvider = Provider(
class AuthService { class AuthService {
final IAuthApiRepository _authApiRepository; final IAuthApiRepository _authApiRepository;
final IAuthRepository _authRepository; final AuthRepository _authRepository;
final ApiService _apiService; final ApiService _apiService;
final NetworkService _networkService; final NetworkService _networkService;
final BackgroundSyncManager _backgroundSyncManager; final BackgroundSyncManager _backgroundSyncManager;

View File

@ -3,7 +3,6 @@ import 'package:immich_mobile/interfaces/album.interface.dart';
import 'package:immich_mobile/interfaces/asset.interface.dart'; import 'package:immich_mobile/interfaces/asset.interface.dart';
import 'package:immich_mobile/interfaces/asset_api.interface.dart'; import 'package:immich_mobile/interfaces/asset_api.interface.dart';
import 'package:immich_mobile/interfaces/asset_media.interface.dart'; import 'package:immich_mobile/interfaces/asset_media.interface.dart';
import 'package:immich_mobile/interfaces/auth.interface.dart';
import 'package:immich_mobile/interfaces/auth_api.interface.dart'; import 'package:immich_mobile/interfaces/auth_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';
@ -13,6 +12,7 @@ import 'package:immich_mobile/repositories/etag.repository.dart';
import 'package:immich_mobile/repositories/local_files_manager.repository.dart'; import 'package:immich_mobile/repositories/local_files_manager.repository.dart';
import 'package:immich_mobile/repositories/file_media.repository.dart'; import 'package:immich_mobile/repositories/file_media.repository.dart';
import 'package:immich_mobile/repositories/backup.repository.dart'; import 'package:immich_mobile/repositories/backup.repository.dart';
import 'package:immich_mobile/repositories/auth.repository.dart';
import 'package:mocktail/mocktail.dart'; import 'package:mocktail/mocktail.dart';
class MockAlbumRepository extends Mock implements IAlbumRepository {} class MockAlbumRepository extends Mock implements IAlbumRepository {}
@ -39,7 +39,7 @@ class MockAlbumApiRepository extends Mock implements AlbumApiRepository {}
class MockAuthApiRepository extends Mock implements IAuthApiRepository {} class MockAuthApiRepository extends Mock implements IAuthApiRepository {}
class MockAuthRepository extends Mock implements IAuthRepository {} class MockAuthRepository extends Mock implements AuthRepository {}
class MockPartnerRepository extends Mock implements PartnerRepository {} class MockPartnerRepository extends Mock implements PartnerRepository {}