request method
Unified API request handler (supports GET & POST)
Implementation
Future<Response> request({
required String endPoint,
required String method, // 'GET' or 'POST'
Map<String, dynamic>? queryParameters,
dynamic body,
String? token,
bool isAuthorize = false,
Map<String, String>? extraHeaders,
CancelToken? cancelToken,
}) async {
try {
final headers = _buildHeaders(
token: token,
isAuthorize: isAuthorize,
extraHeaders: extraHeaders,
);
final response = await _dio.request(
endPoint,
queryParameters: queryParameters,
data: body,
options: Options(
method: method.toUpperCase(),
headers: headers,
),
cancelToken: cancelToken,
);
if (response.statusCode != null &&
response.statusCode! >= 200 &&
response.statusCode! < 300) {
return response;
} else {
throw DioException(
requestOptions: response.requestOptions,
response: response,
);
}
} on DioException catch (e) {
// if (e.type == DioExceptionType.cancel) {
// pagyLog("🛑 Request cancelled: ${e.message}", name: endPoint);
// rethrow; // or just return Future.error if you want
// }
pagyLog('${e.response}', name: endPoint);
return _handleApiError(e);
} catch (e) {
pagyLog('Unexpected error in $method request: $e', name: endPoint);
rethrow;
}
}