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