send method

Future<Response> send({
  1. bool log = true,
})

Implementation

Future<Response> send({bool log = true}) async {
  String newUrl = url;

  newUrl = newUrl + endpoint;

  newUrl = newUrl.replaceAll('//', '/');
  newUrl = newUrl.replaceAll(':/', '://');

  Uri requestUrl = Uri.parse(newUrl);

  if (params != null) {
    requestUrl = requestUrl.replace(queryParameters: params);
  }

  if (log) {
    Log.info(requestUrl.toString());
  }

  Response serverResponse;

  if (method == 'GET') {
    serverResponse = await get(
      requestUrl,
      headers: _getRequestHeaders(headers),
    ).timeout(const Duration(seconds: 30));
  } else if (method == 'POST') {
    serverResponse = await post(
      requestUrl,
      body: body != null ? jsonEncode(_getRequestBody(body! as Map<String, dynamic>?)) : null,
      headers: _getRequestHeaders(headers),
    ).timeout(const Duration(seconds: 30));
  } else {
    throw Exception('Invalid HTTP method.');
  }

  if (log) {
    Log.info(serverResponse.body);
  }

  return serverResponse;
}