constructRequest method

Future<Response> constructRequest(
  1. Dio client,
  2. RequestMethod method,
  3. dynamic encodedData
)

Adds data to dio, adds autharization headers if needed and returns Future with request results

Implementation

Future<dio.Response> constructRequest(
  dio.Dio client,
  RequestMethod method,
  dynamic encodedData,
) async {
  dynamic data;

  if (encodedData != null) {
    data = encodedData;
  }

  if (requiresLogin) {
    onAuthorization(client);
  }

  cancelToken = dio.CancelToken();

  switch (method) {
    case RequestMethod.get:
      return client.getUri(
        _fixDioUrlForQueryUri(query ?? {}, url ?? ''),
        cancelToken: cancelToken,
      );
    case RequestMethod.post:
      return client.postUri(
        _fixDioUrlForQueryUri(query ?? {}, url ?? ''),
        data: data,
        cancelToken: cancelToken,
      );
    case RequestMethod.put:
      return client.putUri(
        _fixDioUrlForQueryUri(query ?? {}, url ?? ''),
        data: data,
        cancelToken: cancelToken,
      );
    case RequestMethod.delete:
      return client.deleteUri(
        _fixDioUrlForQueryUri(query ?? {}, url ?? ''),
        data: data,
        cancelToken: cancelToken,
      );
    case RequestMethod.patch:
      return client.patchUri(
        _fixDioUrlForQueryUri(query ?? {}, url ?? ''),
        data: data,
        cancelToken: cancelToken,
      );
  }
}