fetchToken method

Future<Map<String, dynamic>> fetchToken()

Fetch a JWT token for the session from the backend. Called once at startup before any other API call.

Implementation

Future<Map<String, dynamic>> fetchToken() async {
  final url = Uri.parse(
    '${config.baseUrl}/token/${config.sessionId}',
  );

  final response = await _client.get(
    url,
    headers: {
      'Accept': 'application/json',
      'api-key': config.apiKey,
    },
  );

  if (response.statusCode != 200) {
    throw DataleonApiException(
      'Failed to fetch token',
      statusCode: response.statusCode,
    );
  }

  final body = jsonDecode(response.body) as Map<String, dynamic>;
  final token = body['token'] as String?;
  if (token != null && token.isNotEmpty) {
    config.sessionToken = token;
  }
  return body;
}