safeRequest<T> method

Future<GpApiResponse<T>> safeRequest<T>(
  1. Future<T> request()
)

Implementation

Future<GpApiResponse<T>> safeRequest<T>(Future<T> Function() request) async {
  try {
    final data = await request();
    return GpApiResponse.success(data);
  } on GpException catch (e) {
    return GpApiResponse.error(e.message, statusCode: e.code);
  } on DioException catch (e) {
    final mapped = GpHttpHelpers.extractGpException(e);
    if (mapped != null) {
      return GpApiResponse.error(mapped.message, statusCode: mapped.code);
    }
    return GpApiResponse.error(
      e.message ?? 'Error inesperado en la petición',
      statusCode: e.response?.statusCode,
    );
  } catch (e) {
    return GpApiResponse.error("Error inesperado: $e");
  }
}