60 lines
1.7 KiB
Dart
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,
|
|
);
|
|
}
|
|
}
|
|
}
|