request<T> method

Future<FlintResponse<T>> request<T>(
  1. String method,
  2. String path, {
  3. dynamic body,
  4. Map<String, dynamic>? query,
  5. Map<String, String>? headers,
  6. JsonParser<T>? parser,
  7. ErrorHandler? onError,
  8. RequestDoneCallback<T>? onDone,
  9. Duration? timeout,
})

Sends a request using method and dispatches to the matching verb helper.

Implementation

Future<FlintResponse<T>> request<T>(
  String method,
  String path, {
  dynamic body,
  Map<String, dynamic>? query,
  Map<String, String>? headers,
  JsonParser<T>? parser,
  ErrorHandler? onError,
  RequestDoneCallback<T>? onDone,
  Duration? timeout,
}) {
  return switch (method.toUpperCase()) {
    'GET' => get<T>(
      path,
      query: query,
      headers: headers,
      parser: parser,
      onError: onError,
      onDone: onDone,
      timeout: timeout,
    ),
    'POST' => post<T>(
      path,
      body: body,
      query: query,
      headers: headers,
      parser: parser,
      onError: onError,
      onDone: onDone,
      timeout: timeout,
    ),
    'PUT' => put<T>(
      path,
      body: body,
      query: query,
      headers: headers,
      parser: parser,
      onError: onError,
      onDone: onDone,
      timeout: timeout,
    ),
    'PATCH' => patch<T>(
      path,
      body: body,
      query: query,
      headers: headers,
      parser: parser,
      onError: onError,
      onDone: onDone,
      timeout: timeout,
    ),
    'DELETE' => delete<T>(
      path,
      query: query,
      headers: headers,
      parser: parser,
      onError: onError,
      onDone: onDone,
      timeout: timeout,
    ),
    _ => throw ArgumentError.value(method, 'method', 'Unsupported method'),
  };
}