sendRequest<T> method

Future<T> sendRequest<T>(
  1. RequestInput input
)

Implementation

Future<T> sendRequest<T>(RequestInput input) async {
  // Create request
  HttpClientRequest request = await HTTPRequestFactory.create(_client, input);

  // Add headers & body
  HeaderAdder.addHeaders(input, request);
  BodyAdder.addBody(request, input);

  // Send request
  HttpClientResponse response = await RequestCloser.closeRequest(request);

  // Parse response
  String body = await ByteParser.parseBytesToString(response);
  Map<String, dynamic> parsedData = StringParser.parseStringToJson(body);

  // Handle errors
  HTTPExceptionThrower.throwIfRequestFailed(response, parsedData);

  // Parse model
  T model = ModelExceptionThrower.throwIfModelNotRegistered(parsedData);

  return model;
}