getUser method

  1. @override
Future<Response<UserJoinMeetingResponse>> getUser({
  1. required String apiKey,
  2. required UserJoinMeetingRequest request,
})
override

Implementation

@override
Future<Response<UserJoinMeetingResponse>> getUser({
  required String apiKey,
  required UserJoinMeetingRequest request,
}) async {
  return await _userClient
      .post<Map<String, dynamic>>(
    ApiConstants.redirectUser,
    data: request.toJson(),
    options: Options(
      headers: {'X-API-KEY': apiKey, 'Content-Type': 'application/json'},
    ),
  )
      .then((response) {
    return Response<UserJoinMeetingResponse>(
      data: UserJoinMeetingResponse.fromJson(response.data ?? {}),
      headers: response.headers,
      requestOptions: response.requestOptions,
      statusCode: response.statusCode,
      statusMessage: response.statusMessage,
      extra: response.extra,
    );
  })
      .catchError((error) {
    String errorMessage = 'Failed to get user details';
    if (error is DioException) {
      errorMessage = error.response?.data?['message'] ??
          error.message ??
          'Unable to fetch user information';
    }
    _showError(errorMessage);
    throw error;
  });
}