delete<TModel extends RestModel> method

  1. @override
Future<Response?> delete<TModel extends RestModel>(
  1. TModel instance, {
  2. Query? query,
  3. ModelRepository<RestModel>? repository,
})

Sends a DELETE request method to the endpoint

Implementation

@override
Future<http.Response?> delete<TModel extends RestModel>(instance, {query, repository}) async {
  final adapter = modelDictionary.adapterFor[TModel]!;
  final fromAdapter =
      adapter.restRequest != null ? adapter.restRequest!(query, instance).delete : null;
  final request = (query?.providerArgs['request'] as RestRequest?) ?? fromAdapter;

  final url = request?.url;
  if (url == null) return null;

  final resp = await _brickRequestToHttpRequest(
    request!,
    QueryAction.delete,
    query: query,
  );

  if (statusCodeIsSuccessful(resp.statusCode)) {
    return resp;
  } else {
    logger.warning('#delete: url=$url statusCode=${resp.statusCode} body=${resp.body}');
    throw RestException(resp);
  }
}