35 lines
1.3 KiB
Dart
35 lines
1.3 KiB
Dart
import 'package:shuffle/core/result/result.dart';
|
|
import 'package:shuffle/features/auth/domain/auth_failure.dart';
|
|
import 'package:shuffle/features/auth/domain/auth_status.dart';
|
|
import 'package:shuffle/features/auth/domain/email_link_type.dart';
|
|
import 'package:shuffle/features/auth/domain/registration_input.dart';
|
|
|
|
/// Zugriff auf die Anmeldung (Implementierung: Supabase/GoTrue).
|
|
abstract interface class AuthRepository {
|
|
/// Aktueller Status gefolgt von allen Änderungen.
|
|
Stream<AuthStatus> watchStatus();
|
|
|
|
/// Aktueller Status, synchron (für Router-Redirects).
|
|
AuthStatus get currentStatus;
|
|
|
|
/// Registriert ein Konto. Jede 200-Antwort ist Erfolg; ob die Adresse schon
|
|
/// existiert, wird nicht ausgewertet (KTO-01 Kriterium 4).
|
|
Future<Result<void, AuthFailure>> signUp(RegistrationInput input);
|
|
|
|
Future<Result<void, AuthFailure>> resendConfirmation(String email);
|
|
|
|
Future<Result<void, AuthFailure>> signIn(String email, String password);
|
|
|
|
Future<Result<void, AuthFailure>> requestPasswordReset(String email);
|
|
|
|
Future<Result<void, AuthFailure>> verifyEmailLink(
|
|
String tokenHash,
|
|
EmailLinkType type,
|
|
);
|
|
|
|
Future<Result<void, AuthFailure>> setNewPassword(String password);
|
|
|
|
/// Meldet lokal ab (u. a. beim Abbruch der Recovery). Fehler werden nur
|
|
/// geloggt.
|
|
Future<void> signOut();
|
|
}
|