forked from eatvio/eatvio_app
77 lines
2.2 KiB
Dart
77 lines
2.2 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/oauth_login_request.dart';
|
||
import 'package:eatvio_app/features/auth/models/token_model.dart';
|
||
import 'package:eatvio_app/features/auth/services/auth_service.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> signInViaSocialMedia({
|
||
required String provider,
|
||
required String accessToken,
|
||
required String refreshToken,
|
||
required String clientId,
|
||
}) async {
|
||
try {
|
||
return await authService.signInViaSocialMedia(
|
||
body: OAuthLoginRequest(provider: provider, accessToken: accessToken, refreshToken: refreshToken, clientId: clientId),
|
||
);
|
||
} catch (e) {
|
||
rethrow;
|
||
}
|
||
}
|
||
|
||
Future<String> signUpViaSocialMedia({
|
||
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,
|
||
required String clientId,
|
||
}) async {
|
||
try {
|
||
return (await authService.signUpViaSocialMedia(
|
||
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,
|
||
clientId: clientId,
|
||
),
|
||
))['token']!
|
||
as String;
|
||
} catch (e) {
|
||
rethrow;
|
||
}
|
||
}
|
||
}
|