Neda/admin_panel/lib/services/api/user_api_service.dart
2026-03-07 19:18:52 +03:30

40 lines
1.1 KiB
Dart

import '../../models/user_model.dart';
import '../interfaces/user_service.dart';
import 'api_client.dart';
/// Real API implementation.
/// NOTE: The backend has no list-users endpoint, so [getUsers] returns only
/// users created during the current session (stored in memory).
class UserApiService implements UserService {
final ApiClient _client;
final List<UserModel> _sessionUsers = [];
UserApiService(this._client);
@override
Future<List<UserModel>> getUsers() async {
return List.unmodifiable(_sessionUsers);
}
@override
Future<CreateUserResult> createUser(String username, UserRole role) async {
final data = await _client.post('/admin/users', {
'username': username,
'role': role.apiValue,
});
final user = UserModel.fromJson(data['user'] as Map<String, dynamic>);
final secret = data['secret'] as String;
_sessionUsers.add(user);
return (user: user, secret: secret);
}
@override
Future<String> resetSecret(String userId) async {
final data = await _client.post(
'/admin/users/$userId/reset-secret',
{},
);
return data['secret'] as String;
}
}