signUp method

Future<void> signUp({
  1. required String email,
  2. required String password,
  3. required Profile profile,
})
inherited

Implementation

Future<void> signUp({
  required String email,
  required String password,
  required Profile profile,
}) async {
  setLoading(isLoading: true, error: null);

  final payload = SignupPayload(
    email: email,
    password: password,
    phoneNumber: state.phone,
    verificationToken: state.verifyOtpResponse?.data.verificationToken,
    profile: SignupProfilePayload(
      firstName: profile.firstName,
      lastName: profile.lastName,
      displayName: profile.displayName,
      dateOfBirth: profile.dateOfBirth,
      username: profile.username,
      gender: profile.gender,
    ),
  );

  final result = await authService.signup(payload);

  await result.when(
    success: (tokens) async {
      await applyAuthTokens(tokens, isNewUser: true);
      if (!ref.mounted) return;
      setLoading(isLoading: false);
    },
    failure: (error) {
      if (!ref.mounted) return;
      setLoading(isLoading: false, error: error.message);
    },
  );
}