request method

Future<ApiResponse> request(
  1. String endpoint, {
  2. required RequestType requestType,
  3. dynamic data,
  4. Map<String, dynamic>? queryParameters,
  5. Map<String, dynamic>? headers,
})

Implementation

Future<ApiResponse> request(
    String endpoint, {
      required RequestType requestType,
      dynamic data,
      Map<String, dynamic>? queryParameters,
      Map<String, dynamic>? headers,
    }) async {
  _dio.options.headers.addAll(headers ?? {});
  try {
    Response response;
    switch (requestType) {
      case RequestType.get:
        response = await _dio.get(
          endpoint,
          queryParameters: queryParameters,
          options: Options(headers: headers),
        );
        break;
      case RequestType.post:
        response = await _dio.post(
          endpoint,
          data: data,
          queryParameters: queryParameters,
          options: Options(headers: headers),
        );
        break;
      case RequestType.put:
        response = await _dio.put(
          endpoint,
          data: data,
          queryParameters: queryParameters,
          options: Options(headers: headers),
        );
        break;
      case RequestType.delete:
        response = await _dio.delete(
          endpoint,
          data: data,
          queryParameters: queryParameters,
          options: Options(headers: headers),
        );
        break;
      case RequestType.postMultipart:
        response = await _dio.post(
          endpoint,
          data: data,
          queryParameters: queryParameters,
          options: Options(headers: headers),
        );
        break;
    }
    return _handleResponse(response);
  } on DioException catch (e) {
    throw _handleError(e);
  }
}