getUserById method

Future<Map<String, dynamic>?> getUserById({
  1. required String token,
  2. required String userId,
})

Gets a user by ID.

token JWT authentication token. userId User ID. Returns a Map with the user data or null on error.

Example response:

{
  "id": "1a457e1a-121a-11ee-be56-0242ac120002",
  "username": "umami",
  "role": "admin"
}

Implementation

Future<Map<String, dynamic>?> getUserById({
  required String token,
  required String userId,
}) async {
  try {
    final response = await http.get(
      Uri.parse('$endpoint/api/users/$userId'),
      headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer $token',
      },
    );

    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 fetch user: ${response.statusCode}');
      debugPrint('Error JSON: $errorJson');
    } catch (e) {
      debugPrint('Failed to fetch user: ${response.statusCode} ${response.body}');
    }
    return null;
  } catch (e) {
    debugPrint('Get user by ID error: $e');
    return null;
  }
}