put method

Future<Response?> put(
  1. String apiPath, {
  2. Object? body,
  3. bool jsonEncodeBody = true,
})

Executes a HTTP PUT request for the given apiPath.

If jsonEncodeBody is true, the body will be JSON-encoded.

Implementation

Future<Response?> put(
  String apiPath, {
  Object? body,
  bool jsonEncodeBody = true,
}) async {
  Logger.log(
    "--------> START OF PUT API CALL <--------",
    type: LogType.api,
    tag: "DF-API-CLIENT",
  );
  Object? requestBody = body;

  if (jsonEncodeBody && body != null) {
    requestBody = jsonEncode(body);
  }

  Uri apiUri = _generateApiUri(apiPath);
  return _processApiCall(
    apiPath: apiPath,
    httpApiConfig.maxRetryAttempts,
    apiCall: () async {
      return await httpClient
          .put(
            apiUri,
            encoding: httpApiConfig.encoding,
            body: requestBody,
            headers: httpApiConfig.headers,
          )
          .timeout(
            Duration(seconds: httpApiConfig.timeout),
            onTimeout: () => throw Exception(
              "API Timeout exception, no response from the server for: $apiPath",
            ),
          );
    },
  );
}