mirror of
https://github.com/immich-app/immich.git
synced 2024-11-15 18:08:48 -07:00
52 lines
1.4 KiB
Dart
52 lines
1.4 KiB
Dart
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:immich_mobile/entities/user.entity.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';
|
|
|
|
final partnerApiRepositoryProvider = Provider(
|
|
(ref) => PartnerApiRepository(
|
|
ref.watch(apiServiceProvider).partnersApi,
|
|
),
|
|
);
|
|
|
|
class PartnerApiRepository extends ApiRepository
|
|
implements IPartnerApiRepository {
|
|
final PartnersApi _api;
|
|
|
|
PartnerApiRepository(this._api);
|
|
|
|
@override
|
|
Future<List<User>> getAll(Direction direction) async {
|
|
final response = await checkNull(
|
|
_api.getPartners(
|
|
direction == Direction.sharedByMe
|
|
? PartnerDirection.by
|
|
: PartnerDirection.with_,
|
|
),
|
|
);
|
|
return response.map(User.fromPartnerDto).toList();
|
|
}
|
|
|
|
@override
|
|
Future<User> create(String id) async {
|
|
final dto = await checkNull(_api.createPartner(id));
|
|
return User.fromPartnerDto(dto);
|
|
}
|
|
|
|
@override
|
|
Future<void> delete(String id) => _api.removePartner(id);
|
|
|
|
@override
|
|
Future<User> update(String id, {required bool inTimeline}) async {
|
|
final dto = await checkNull(
|
|
_api.updatePartner(
|
|
id,
|
|
UpdatePartnerDto(inTimeline: inTimeline),
|
|
),
|
|
);
|
|
return User.fromPartnerDto(dto);
|
|
}
|
|
}
|