createLmsApiClient function

LmsApi createLmsApiClient({
  1. required String bffCookie,
  2. String baseUrl = defaultBaseUrl,
  3. Client? httpClient,
  4. Authenticator? authenticator,
  5. ErrorConverter? errorConverter,
  6. Converter? converter,
  7. List<Interceptor>? interceptors,
  8. DebugResponseOptions? debugResponseOptions,
})

Implementation

LmsApi createLmsApiClient({
  required String bffCookie,
  String baseUrl = defaultBaseUrl,
  http.Client? httpClient,
  Authenticator? authenticator,
  ErrorConverter? errorConverter,
  Converter? converter,
  List<Interceptor>? interceptors,
  DebugResponseOptions? debugResponseOptions,
}) {
  if (bffCookie.isEmpty) {
    throw const BffCookieIsEmptyError();
  }

  final resolvedConverter = converter ?? $JsonSerializableConverter();
  final resolvedDebugResponses = DebugResponses(
    client: defaultUserAgent,
    sdkVersion: sdkVersion,
    specVersion: specVersion,
    options: debugResponseOptions ?? DebugResponseOptions.defaults,
  );
  final resolvedInterceptors = <Interceptor>[
    _BffCookieInterceptor(bffCookie),
    if (isDartVmRuntime) _UserAgentInterceptor(defaultUserAgent),
    ...?interceptors,
  ];

  return LmsApi.create(
    httpClient: httpClient,
    authenticator: authenticator,
    errorConverter: DebugResponseErrorConverter(
      delegate: errorConverter ?? _LmsApiErrorConverter(resolvedConverter),
      debugResponses: resolvedDebugResponses,
    ),
    converter: DebugResponseConverter(
      delegate: resolvedConverter,
      debugResponses: resolvedDebugResponses,
    ),
    baseUrl: Uri.parse(baseUrl),
    interceptors: resolvedInterceptors,
  );
}