login method

  1. @override
Future<AuthResult<UserModel>> login(
  1. LoginCredentials credentials
)
override

Implementation

@override
Future<AuthResult<UserModel>> login(LoginCredentials credentials) async {
  try {
    final body = <String, dynamic>{
      'password': credentials.password,
    };
    if (credentials.email != null) body['email'] = credentials.email;
    if (credentials.phoneNumber != null) body['phoneNumber'] = credentials.phoneNumber;

    final response = await _client.post(
      Uri.parse('$baseUrl/auth/login'),
      headers: _headers,
      body: jsonEncode(body),
    );
    return _handleResponse<UserModel>(response, UserModel.fromMap);
  } catch (e) {
    return AuthResult.failure(AuthException(e.toString(), code: 'network-error'));
  }
}