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 getTokenByCredentials(String email, String password) async { try { return await authService.getTokenByCredentials( credentials: CredentialsModel(email: email, password: password), ); } catch (e) { rethrow; } } Future 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 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; } } }