import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../pages/home_view.dart'; import '../pages/login_view.dart'; import '../services/directus_service.dart'; class SigninController extends GetxController { final userNameController = TextEditingController(); final emailController = TextEditingController(); final passwordController = TextEditingController(); final cityController = TextEditingController(); final countryController = TextEditingController(); final directusService = DirectusService(); late String userIdentId = Get.arguments['userIdentId'] ?? ''; @override void onReady() {} @override void onClose() { userNameController.dispose(); emailController.dispose(); passwordController.dispose(); cityController.dispose(); countryController.dispose(); } void register() async { //Eingaben überprüfen if (!_checkInputs()) return; //Registrierungslogik var userName = userNameController.text; var email = emailController.text; var password = passwordController.text; var city = cityController.text; // Hier können Sie die Stadt aus den Eingaben abrufen, falls erforderlich var country = countryController.text; // Hier können Sie das Land aus den Eingaben abrufen, falls erforderlich // Testausgabe print( 'Registrieren mit Benutzername: $userName, E-Mail: $email, Passwort: $password, Stadt: $city, Land: $country', ); //directus Registrierung und login Logik hier einfügen bool registrationSuccess = await directusService.register(userName, email, password, city, country); //Nach erfolgreicher Registrierung Meldung und zur Startseite navigieren if (registrationSuccess) { Get.snackbar( 'Registrierung erfolgreich, sie werden weitergeleitet', 'Willkommen, $userName!', snackPosition: SnackPosition.BOTTOM, ); userIdentId = base64Encode(utf8.encode('$email:$password')); Get.offAndToNamed(HomePage.namedRoute, arguments: {'userIdentId': userIdentId}); } 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; } }