Files
flutter_mssql_node_filament…/lib/controllers/home_controller.dart
2026-04-11 00:05:06 +02:00

60 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import '../helpers/services_repos.dart';
import '../pages/list_view.dart';
import '../pages/signin_view.dart';
import 'package:get/get.dart';
class HomeController extends GetxController {
final benutzerController = TextEditingController();
final passwordController = TextEditingController();
final serviceRepos = ServiceRepos(httpClient: http.Client());
@override
void onClose() {
benutzerController.dispose();
passwordController.dispose();
super.onClose();
}
void navigateToSignIn() {
Get.toNamed(SignInPage.namedRoute);
}
bool validateLogin() {
final benutzer = benutzerController.text.trim();
final password = passwordController.text.trim();
if (benutzer.isEmpty || password.isEmpty) {
Get.snackbar(
'Fehler',
'Bitte alle Felder ausfüllen',
snackPosition: SnackPosition.BOTTOM,
backgroundColor: Get.theme.colorScheme.error.withAlpha(26),
colorText: Get.theme.colorScheme.error,
);
return false;
}
return true;
}
Future<void> logInAndloadFilaments() async {
if (!validateLogin()) return;
String benutzer = benutzerController.text.trim();
String password = passwordController.text.trim();
var user = await serviceRepos.loginService(benutzer, password);
if (user.uuid != '') {
// Navigiere zur Listenseite
Get.offAllNamed(ListPage.namedRoute, arguments: user.username);
} else {
Get.snackbar(
'Fehler',
'Ungültiger Benutzername oder Passwort',
snackPosition: SnackPosition.BOTTOM,
backgroundColor: Get.theme.colorScheme.error.withAlpha(26),
colorText: Get.theme.colorScheme.error,
);
}
}
}