39 lines
1.4 KiB
Dart
39 lines
1.4 KiB
Dart
import 'package:finlytic_app/core/network/api_client.dart';
|
|
import 'package:finlytic_app/features/admin/models/admin_user_model.dart';
|
|
import 'package:finlytic_app/features/admin/models/admin_create_user_request_dto.dart';
|
|
import 'package:finlytic_app/features/admin/models/admin_update_user_request_dto.dart';
|
|
|
|
class AdminRepository {
|
|
final ApiClient apiClient;
|
|
|
|
AdminRepository({required this.apiClient});
|
|
|
|
Future<List<AdminUserModel>> fetchUsers() async {
|
|
try {
|
|
final res = await apiClient.get('/api/v1/admin/users');
|
|
if (res.statusCode == 200 && res.data != null) {
|
|
final List<dynamic> data = res.data;
|
|
return data.map((json) => AdminUserModel.fromJson(json)).toList();
|
|
}
|
|
return [];
|
|
} catch (e) {
|
|
print('Error fetching admin users: $e');
|
|
throw Exception('Nutzer konnten nicht geladen werden');
|
|
}
|
|
}
|
|
|
|
Future<void> createUser(AdminCreateUserRequestDto dto) async {
|
|
final res = await apiClient.post('/api/v1/admin/users', data: dto.toJson());
|
|
if (res.statusCode != 200 && res.statusCode != 201) {
|
|
throw Exception('Erstellen fehlgeschlagen');
|
|
}
|
|
}
|
|
|
|
Future<void> updateUser(String id, AdminUpdateUserRequestDto dto) async {
|
|
final res = await apiClient.put('/api/v1/admin/users/$id', data: dto.toJson());
|
|
if (res.statusCode != 200) {
|
|
throw Exception('Aktualisieren fehlgeschlagen');
|
|
}
|
|
}
|
|
}
|