createUser method
Creates a new user.
token JWT authentication token.
username The user's username.
password The user's password.
role User role (admin, user, view-only).
Returns a Map with the user data or null on error.
Example response:
{
"id": "1a457e1a-121a-11ee-be56-0242ac120002",
"username": "umami",
"role": "admin",
"createdAt": "2023-04-13T20:22:55.756Z"
}
Implementation
Future<Map<String, dynamic>?> createUser({
required String token,
required String username,
required String password,
required String role,
}) async {
try {
final response = await http.post(
Uri.parse('$endpoint/api/users'),
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer $token',
},
body: jsonEncode({
'username': username,
'password': password,
'role': role,
}),
);
if (response.statusCode == 200) {
return jsonDecode(response.body) as Map<String, dynamic>;
}
// Tenta decodificar o JSON de erro
try {
final errorJson = jsonDecode(response.body);
debugPrint('Failed to create user: ${response.statusCode}');
debugPrint('Error JSON: $errorJson');
} catch (e) {
debugPrint('Failed to create user: ${response.statusCode} ${response.body}');
}
return null;
} catch (e) {
debugPrint('Create user error: $e');
return null;
}
}