fromHttpResponse static method

Future<AuthResponse> fromHttpResponse(
  1. Response response
)

Implementation

static Future<AuthResponse> fromHttpResponse(Response response) async {
  if (response.statusCode >= HttpStatus.badRequest || response.body.isEmpty) {
    throw ApiException(response.statusCode, await _decodeBodyBytes(response));
  }

  final result =
      jsonDecode(utf8.decode(response.bodyBytes)) as Map<String, dynamic>;
  final token = result['data']['shortSession']['value'] as String;
  final setCookieString = response.headers['set-cookie'] as String;
  final cookieRegex = RegExp(r'cbo_long_session=(\w+);.*');
  final refreshToken = cookieRegex.firstMatch(setCookieString);

  if (refreshToken == null) {
    throw Exception('RefreshToken could not be parsed.');
  }

  return AuthResponse(
    token: token,
    refreshToken: refreshToken.group(1)!,
  );
}