request method
Implementation
Future<dynamic> request(APIRequest request) async {
try {
final url = request.baseUrl + request.endpoint;
logger.i(url, error: "Request │ ${request.method.name.toUpperCase()}");
logger.i(request.headers, error: "Headers");
logger.i(request.query, error: "Request Parameters");
logger.i(request.body, error: "Request Body");
final response = await _client.request<dynamic>(
url,
data: request.body ?? request.query,
options: Options(
contentType: request.contentType,
headers: request.headers,
method: request.method.name.toUpperCase(),
),
queryParameters: request.query?.isNotEmpty == true
? request.query
: null,
);
return _returnResponse(
response,
request,
isBaseResponse: request.isBaseResponse,
);
} on TimeoutException catch (e) {
throw TimeOutError(e.message, code: e.message);
} on SocketException catch (e) {
throw FetchDataError(e.message, code: e.message);
} on DioException catch (e) {
throw _handleDioError(e);
} catch (e) {
logger.e('Unhandled error in APIProvider: $e');
throw FetchDataError(e.toString(), code: e.runtimeType.toString());
}
}