request<T> method

Future<ResponseModel<T>> request<T>({
  1. required String endpoint,
  2. required T fromJson(
    1. dynamic data
    ),
  3. String method = 'GET',
  4. Map<String, dynamic>? queryParameters,
  5. dynamic body,
  6. Map<String, dynamic>? headers,
})

Implementation

Future<ResponseModel<T>> request<T>({
  required String endpoint,
  required T Function(dynamic data) fromJson,
  String method = 'GET',
  Map<String, dynamic>? queryParameters,
  dynamic body,
  Map<String, dynamic>? headers,
}) async {
  try {
    final response = await _dio.request(
      endpoint,
      data: body,
      queryParameters: queryParameters,
      options: Options(
        method: method,
        headers: headers,
      ),
    );

    final responseData = response.data;

    return ResponseModel<T>(
      success: true,
      data: fromJson(responseData),
      message: responseData["message"], // ✅ auto-extract message
      statusCode: response.statusCode,
    );
  } on DioException catch (e) {
    throw _handleError(e);
  }
}