createSession method
Implementation
Future<AuthUserSessionDto> createSession(CreateSessionRequest request) async {
_ensureInitialised();
if (_useMockData) {
await Future.delayed(const Duration(milliseconds: 500));
// Return a mock session specifically for the requested user
return AuthUserSessionDto.fromJson(_generateMockSession(request.userId));
}
try {
final client = await _createClientWithAuthHeaders();
final response = await client.post(
url: '$_sessionServiceUrl/userSession/api/session/createUserSession',
requestData: request.toJson(),
user: _user,
);
if (response?.statusCode == 200 && response?.data != null) {
return AuthUserSessionDto.fromJson(response!.data['sessionResult']);
} else {
throw AuthException(
AuthenticationErrorCodes.sessionCreationFailed,
cause: response?.data,
);
}
} catch (e, s) {
logger.error(
this,
'Exception while creating session',
error: e,
stackTrace: s,
);
rethrow;
}
}