mirror of
https://github.com/immich-app/immich.git
synced 2024-12-28 22:51:59 +00:00
58 lines
1.6 KiB
Dart
58 lines
1.6 KiB
Dart
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:immich_mobile/interfaces/auth_api.interface.dart';
|
|
import 'package:immich_mobile/models/auth/login_response.model.dart';
|
|
import 'package:immich_mobile/providers/api.provider.dart';
|
|
import 'package:immich_mobile/repositories/api.repository.dart';
|
|
import 'package:immich_mobile/services/api.service.dart';
|
|
import 'package:openapi/api.dart';
|
|
|
|
final authApiRepositoryProvider =
|
|
Provider((ref) => AuthApiRepository(ref.watch(apiServiceProvider)));
|
|
|
|
class AuthApiRepository extends ApiRepository implements IAuthApiRepository {
|
|
final ApiService _apiService;
|
|
|
|
AuthApiRepository(this._apiService);
|
|
|
|
@override
|
|
Future<void> changePassword(String newPassword) async {
|
|
await _apiService.usersApi.updateMyUser(
|
|
UserUpdateMeDto(
|
|
password: newPassword,
|
|
),
|
|
);
|
|
}
|
|
|
|
@override
|
|
Future<LoginResponse> login(String email, String password) async {
|
|
final loginResponseDto = await checkNull(
|
|
_apiService.authenticationApi.login(
|
|
LoginCredentialDto(
|
|
email: email,
|
|
password: password,
|
|
),
|
|
),
|
|
);
|
|
|
|
return _mapLoginReponse(loginResponseDto);
|
|
}
|
|
|
|
@override
|
|
Future<void> logout() async {
|
|
await _apiService.authenticationApi
|
|
.logout()
|
|
.timeout(const Duration(seconds: 7));
|
|
}
|
|
|
|
_mapLoginReponse(LoginResponseDto dto) {
|
|
return LoginResponse(
|
|
accessToken: dto.accessToken,
|
|
isAdmin: dto.isAdmin,
|
|
name: dto.name,
|
|
profileImagePath: dto.profileImagePath,
|
|
shouldChangePassword: dto.shouldChangePassword,
|
|
userEmail: dto.userEmail,
|
|
userId: dto.userId,
|
|
);
|
|
}
|
|
}
|