Files
flutter_tank_web_app/lib/controller/signin_controller.dart
2026-01-23 07:33:20 +01:00

88 lines
2.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../pages/home_view.dart';
import '../pages/login_view.dart';
import '../services/appwrite_service.dart';
class SigninController extends GetxController {
final userNameController = TextEditingController();
final emailController = TextEditingController();
final passwordController = TextEditingController();
final appwriteService = AppwriteService();
@override
void onReady() {}
@override
void onClose() {
userNameController.dispose();
emailController.dispose();
passwordController.dispose();
}
void register() async {
//Eingaben überprüfen
if (!_checkInputs()) return;
//Registrierungslogik
var userName = userNameController.text;
var email = emailController.text;
var password = passwordController.text;
// Testausgabe
print(
'Registrieren mit Benutzername: $userName, E-Mail: $email, Passwort: $password',
);
//appwrite Registrierung und login Logik hier einfügen
var registrationSuccess = await appwriteService.register(
userName,
email,
password,
);
//Nach erfolgreicher Registrierung Meldung und zur Startseite navigieren
if (registrationSuccess) {
Get.snackbar(
'Registrierung erfolgreich, sie werden weitergeleitet',
'Willkommen, $userName!',
snackPosition: SnackPosition.BOTTOM,
);
Get.offAndToNamed(HomePage.namedRoute);
} else {
Get.snackbar(
'Registrierung fehlgeschlagen',
'Bitte überprüfen Sie Ihre Eingaben und versuchen Sie es erneut.',
snackPosition: SnackPosition.BOTTOM,
);
}
}
void goToLoginPage() {
Get.offAndToNamed(LoginPage.namedRoute);
}
bool _checkInputs() {
var isOk = false;
if (userNameController.text.isEmpty ||
emailController.text.isEmpty ||
passwordController.text.isEmpty) {
Get.snackbar(
'Fehler',
'Bitte alle Felder ausfüllen',
snackPosition: SnackPosition.BOTTOM,
);
isOk = false;
} else {
isOk = true;
}
if (passwordController.text.length < 6) {
Get.snackbar(
'Fehler',
'Passwort muss mindestens 6 Zeichen lang sein',
snackPosition: SnackPosition.BOTTOM,
);
isOk = false;
} else {
isOk = true;
}
return isOk;
}
}