request static method

Future<ApiResult> request({
  1. required Endpoint endpoint,
})

Implementation

static Future<ApiResult> request({required Endpoint endpoint}) async {
  try {
    final response = await endpoint.method.request(
      http: _networkProvider,
      endpoint: endpoint,
    );

    if (response.status! >= 200 && response.status! < 400) {
      return Success(
        data: response.data,
        statusCode: response.status,
      );
    }
    if (response.status == 400) {
      final data = response.data as Map<String, dynamic>;
      final errors = data['errors'] as List?;
      final errorList = errors
          ?.map<Map<String, dynamic>>(
            (dynamic p) => p as Map<String, dynamic>,
          )
          .toList();

      return ApiError(
        message: _validationErrorMessage(errorList) ?? data['message'] as String,
        errors: errorList,
        statusCode: 400,
      );
    }

    return ApiError.fromJson(response.data as Map<String, dynamic>);
  } catch (_) {
    return ApiError.internalError();
  }
}