refactor(mobile): partner_api.interface.dart (#19337)

* refactor(mobile): partner_api.interface.dart

* merge main
This commit is contained in:
Alex 2025-06-20 12:04:15 -05:00 committed by GitHub
parent 8154ec29df
commit 0426699f13
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 11 additions and 27 deletions

View File

@ -1,13 +0,0 @@
import 'package:immich_mobile/domain/models/user.model.dart';
abstract interface class IPartnerApiRepository {
Future<List<UserDto>> getAll(Direction direction);
Future<UserDto> create(String id);
Future<UserDto> update(String id, {required bool inTimeline});
Future<void> delete(String id);
}
enum Direction {
sharedWithMe,
sharedByMe,
}

View File

@ -1,24 +1,26 @@
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/domain/models/user.model.dart';
import 'package:immich_mobile/infrastructure/utils/user.converter.dart';
import 'package:immich_mobile/interfaces/partner_api.interface.dart';
import 'package:immich_mobile/providers/api.provider.dart';
import 'package:immich_mobile/repositories/api.repository.dart';
import 'package:openapi/api.dart';
enum Direction {
sharedWithMe,
sharedByMe,
}
final partnerApiRepositoryProvider = Provider(
(ref) => PartnerApiRepository(
ref.watch(apiServiceProvider).partnersApi,
),
);
class PartnerApiRepository extends ApiRepository
implements IPartnerApiRepository {
class PartnerApiRepository extends ApiRepository {
final PartnersApi _api;
PartnerApiRepository(this._api);
@override
Future<List<UserDto>> getAll(Direction direction) async {
final response = await checkNull(
_api.getPartners(
@ -30,16 +32,13 @@ class PartnerApiRepository extends ApiRepository
return response.map(UserConverter.fromPartnerDto).toList();
}
@override
Future<UserDto> create(String id) async {
final dto = await checkNull(_api.createPartner(id));
return UserConverter.fromPartnerDto(dto);
}
@override
Future<void> delete(String id) => _api.removePartner(id);
@override
Future<UserDto> update(String id, {required bool inTimeline}) async {
final dto = await checkNull(
_api.updatePartner(

View File

@ -2,7 +2,6 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/domain/models/user.model.dart';
import 'package:immich_mobile/infrastructure/repositories/user.repository.dart';
import 'package:immich_mobile/interfaces/partner.interface.dart';
import 'package:immich_mobile/interfaces/partner_api.interface.dart';
import 'package:immich_mobile/providers/infrastructure/user.provider.dart';
import 'package:immich_mobile/repositories/partner.repository.dart';
import 'package:immich_mobile/repositories/partner_api.repository.dart';
@ -17,7 +16,7 @@ final partnerServiceProvider = Provider(
);
class PartnerService {
final IPartnerApiRepository _partnerApiRepository;
final PartnerApiRepository _partnerApiRepository;
final IPartnerRepository _partnerRepository;
final IsarUserRepository _isarUserRepository;
final Logger _log = Logger("PartnerService");

View File

@ -18,7 +18,6 @@ import 'package:immich_mobile/interfaces/asset.interface.dart';
import 'package:immich_mobile/interfaces/etag.interface.dart';
import 'package:immich_mobile/interfaces/local_files_manager.interface.dart';
import 'package:immich_mobile/interfaces/partner.interface.dart';
import 'package:immich_mobile/interfaces/partner_api.interface.dart';
import 'package:immich_mobile/providers/app_settings.provider.dart';
import 'package:immich_mobile/providers/infrastructure/exif.provider.dart';
import 'package:immich_mobile/providers/infrastructure/user.provider.dart';
@ -71,7 +70,7 @@ class SyncService {
final UserService _userService;
final IPartnerRepository _partnerRepository;
final IETagRepository _eTagRepository;
final IPartnerApiRepository _partnerApiRepository;
final PartnerApiRepository _partnerApiRepository;
final UserApiRepository _userApiRepository;
final AsyncMutex _lock = AsyncMutex();
final Logger _log = Logger('SyncService');

View File

@ -11,7 +11,7 @@ import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/infrastructure/repositories/log.repository.dart';
import 'package:immich_mobile/infrastructure/repositories/store.repository.dart';
import 'package:immich_mobile/interfaces/asset.interface.dart';
import 'package:immich_mobile/interfaces/partner_api.interface.dart';
import 'package:immich_mobile/repositories/partner_api.repository.dart';
import 'package:immich_mobile/services/sync.service.dart';
import 'package:mocktail/mocktail.dart';

View File

@ -10,7 +10,7 @@ import 'package:immich_mobile/interfaces/etag.interface.dart';
import 'package:immich_mobile/interfaces/file_media.interface.dart';
import 'package:immich_mobile/interfaces/local_files_manager.interface.dart';
import 'package:immich_mobile/interfaces/partner.interface.dart';
import 'package:immich_mobile/interfaces/partner_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';
import 'package:mocktail/mocktail.dart';
@ -44,7 +44,7 @@ class MockAuthRepository extends Mock implements IAuthRepository {}
class MockPartnerRepository extends Mock implements IPartnerRepository {}
class MockPartnerApiRepository extends Mock implements IPartnerApiRepository {}
class MockPartnerApiRepository extends Mock implements PartnerApiRepository {}
class MockLocalFilesManagerRepository extends Mock
implements ILocalFilesManager {}