checkout method

Implementation

Future<NetworkResponse<CheckoutResponse>> checkout(
    CheckoutRequest request) async {
  return _safeCall(() async {
    final resp = await _dio.post(
      '/api/v3/orders/checkout',
      data: request.toJson(),
    );
    final map = _requireJsonMap(resp.data);
    if (map['success'] == false) {
      return NetworkError(
        _envelopeError(map) ?? 'Checkout failed',
        code: resp.statusCode,
      );
    }
    final data = asJsonMap(map['data']) ?? map;
    return NetworkSuccess(CheckoutResponse.fromJson(data));
  });
}