login and begin listView

This commit is contained in:
2026-04-11 00:05:06 +02:00
parent 122ae48754
commit da7f59f47e
8 changed files with 122 additions and 47 deletions

View File

@@ -1,32 +1,43 @@
import 'package:get/get.dart';
import 'dart:convert';
class ServiceRepos extends GetConnect {
@override
void onInit() {
super.onInit();
// Setze die Basis-URL für deine API
httpClient.baseUrl = 'https://node.joshihomeserver.ipv64.net/api';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;
import '../models/user_model.dart';
class ServiceRepos{
final http.Client httpClient;
final String baseUrl = 'https://node.joshihomeserver.ipv64.net/api';
ServiceRepos({required this.httpClient});
Future<http.Response> getUsersList() {
return httpClient.get(
Uri.parse('$baseUrl/GetFilamentUsers'),
headers: {'Content-Type': 'application/json'},
);
}
Future<Response> getUsersList() => get('$baseUrl/GetFilamentUsers', headers: {'Content-Type': 'application/json'});
Future<UserModel> loginService(String username, String password) async {
Future<Response> getUserIsValide(String username, String password) =>
getUsersList().then((response) {
if (response.statusCode == 200 && response.body is List) {
final users = response.body as List;
final user = users.firstWhere(
(u) => u['benutzer'] == username && u['kennwort'] == password,
orElse: () => null,
);
return Response(
statusCode: user != null ? 200 : 401,
body: user != null ? {'valid': true} : {'valid': false},
);
} else {
return Response(statusCode: response.statusCode, body: response.body);
}
});
final responseUser = await getUsersList();
Future<Response> getFilamentsList(String username) =>
post('$baseUrl/GetFilamentDataByUser', {'username': username});
}
if (responseUser.statusCode != 200) {
return UserModel(uuid: '', username: '', passwort: '');
}
final users = responseUser.body.isNotEmpty
? List<Map<String, dynamic>>.from(json.decode(responseUser.body))
: <Map<String, dynamic>>[];
List<UserModel> userModels = users.map((u) => UserModel.fromMap(u)).toList();
final UserModel? searchUser = userModels.firstWhereOrNull(
(u) => u.username == username && u.passwort == password);
if (searchUser == null || searchUser.uuid.isEmpty) {
return UserModel(uuid: '', username: '', passwort: '');
}
return searchUser;
}
}