forked from eatvio/eatvio_app
68 lines
1.9 KiB
Dart
68 lines
1.9 KiB
Dart
import 'package:eatvio_app/features/auth/models/credentials_model.dart';
|
||
import 'package:eatvio_app/features/auth/models/oauth_model.dart';
|
||
import 'package:eatvio_app/features/auth/models/token_model.dart';
|
||
import 'package:eatvio_app/features/auth/services/auth_service.dart';
|
||
import 'package:eatvio_app/features/auth/models/social_exchange_request.dart';
|
||
|
||
class AuthRepository {
|
||
final AuthService authService;
|
||
|
||
AuthRepository({required this.authService});
|
||
|
||
Future<TokenModel> getTokenByCredentials(String email, String password) async {
|
||
try {
|
||
return await authService.getTokenByCredentials(
|
||
credentials: CredentialsModel(email: email, password: password),
|
||
);
|
||
} catch (e) {
|
||
rethrow;
|
||
}
|
||
}
|
||
|
||
Future<TokenModel> getTokenBySocial({required String provider, required String accessToken}) async {
|
||
try {
|
||
return await authService.getTokenBySocial(
|
||
body: SocialExchangeRequest(provider: provider, accessToken: accessToken),
|
||
);
|
||
} catch (e) {
|
||
rethrow;
|
||
}
|
||
}
|
||
|
||
Future<String> getOAuthToken({
|
||
required String provider,
|
||
required String accessToken,
|
||
required String id,
|
||
required String refreshToken,
|
||
required String firstName,
|
||
required String lastName,
|
||
required String email,
|
||
required String phone,
|
||
required String dateOfBirth,
|
||
required String gender,
|
||
required int weight,
|
||
required int height,
|
||
}) async {
|
||
try {
|
||
return (await authService.getOAuthToken(
|
||
body: OAuthModel(
|
||
provider: provider,
|
||
accessToken: accessToken,
|
||
id: id,
|
||
refreshToken: refreshToken,
|
||
firstName: firstName,
|
||
lastName: lastName,
|
||
email: email,
|
||
phone: phone,
|
||
dateOfBirth: dateOfBirth,
|
||
gender: gender == 'М' ? 'male' : 'female',
|
||
weight: weight,
|
||
height: height,
|
||
),
|
||
))['token']! as String;
|
||
} catch (e) {
|
||
rethrow;
|
||
}
|
||
}
|
||
}
|