terminal-shop 0.1.0.pre.alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +127 -0
- data/lib/terminal-shop/base_client.rb +452 -0
- data/lib/terminal-shop/base_model.rb +1189 -0
- data/lib/terminal-shop/base_page.rb +44 -0
- data/lib/terminal-shop/client.rb +135 -0
- data/lib/terminal-shop/errors.rb +187 -0
- data/lib/terminal-shop/extern.rb +10 -0
- data/lib/terminal-shop/models/address.rb +101 -0
- data/lib/terminal-shop/models/address_create_params.rb +86 -0
- data/lib/terminal-shop/models/address_create_response.rb +26 -0
- data/lib/terminal-shop/models/address_delete_params.rb +18 -0
- data/lib/terminal-shop/models/address_delete_response.rb +25 -0
- data/lib/terminal-shop/models/address_list_params.rb +18 -0
- data/lib/terminal-shop/models/address_list_response.rb +26 -0
- data/lib/terminal-shop/models/app.rb +44 -0
- data/lib/terminal-shop/models/app_create_params.rb +18 -0
- data/lib/terminal-shop/models/app_create_response.rb +54 -0
- data/lib/terminal-shop/models/app_delete_params.rb +18 -0
- data/lib/terminal-shop/models/app_delete_response.rb +25 -0
- data/lib/terminal-shop/models/app_get_params.rb +18 -0
- data/lib/terminal-shop/models/app_get_response.rb +26 -0
- data/lib/terminal-shop/models/app_list_params.rb +18 -0
- data/lib/terminal-shop/models/app_list_response.rb +26 -0
- data/lib/terminal-shop/models/card.rb +83 -0
- data/lib/terminal-shop/models/card_collect_params.rb +18 -0
- data/lib/terminal-shop/models/card_collect_response.rb +50 -0
- data/lib/terminal-shop/models/card_create_params.rb +26 -0
- data/lib/terminal-shop/models/card_create_response.rb +26 -0
- data/lib/terminal-shop/models/card_delete_params.rb +18 -0
- data/lib/terminal-shop/models/card_delete_response.rb +25 -0
- data/lib/terminal-shop/models/card_list_params.rb +18 -0
- data/lib/terminal-shop/models/card_list_response.rb +26 -0
- data/lib/terminal-shop/models/cart.rb +200 -0
- data/lib/terminal-shop/models/cart_convert_params.rb +18 -0
- data/lib/terminal-shop/models/cart_convert_response.rb +26 -0
- data/lib/terminal-shop/models/cart_get_params.rb +18 -0
- data/lib/terminal-shop/models/cart_get_response.rb +26 -0
- data/lib/terminal-shop/models/cart_set_address_params.rb +25 -0
- data/lib/terminal-shop/models/cart_set_address_response.rb +25 -0
- data/lib/terminal-shop/models/cart_set_card_params.rb +25 -0
- data/lib/terminal-shop/models/cart_set_card_response.rb +25 -0
- data/lib/terminal-shop/models/cart_set_item_params.rb +32 -0
- data/lib/terminal-shop/models/cart_set_item_response.rb +26 -0
- data/lib/terminal-shop/models/email_create_params.rb +25 -0
- data/lib/terminal-shop/models/email_create_response.rb +25 -0
- data/lib/terminal-shop/models/order.rb +303 -0
- data/lib/terminal-shop/models/order_get_params.rb +18 -0
- data/lib/terminal-shop/models/order_get_response.rb +26 -0
- data/lib/terminal-shop/models/order_list_params.rb +18 -0
- data/lib/terminal-shop/models/order_list_response.rb +26 -0
- data/lib/terminal-shop/models/product.rb +141 -0
- data/lib/terminal-shop/models/product_list_params.rb +18 -0
- data/lib/terminal-shop/models/product_list_response.rb +26 -0
- data/lib/terminal-shop/models/product_variant.rb +44 -0
- data/lib/terminal-shop/models/profile.rb +83 -0
- data/lib/terminal-shop/models/profile_me_params.rb +18 -0
- data/lib/terminal-shop/models/profile_me_response.rb +26 -0
- data/lib/terminal-shop/models/profile_update_params.rb +32 -0
- data/lib/terminal-shop/models/profile_update_response.rb +26 -0
- data/lib/terminal-shop/models/subscription.rb +113 -0
- data/lib/terminal-shop/models/subscription_create_params.rb +18 -0
- data/lib/terminal-shop/models/subscription_create_response.rb +25 -0
- data/lib/terminal-shop/models/subscription_delete_params.rb +18 -0
- data/lib/terminal-shop/models/subscription_delete_response.rb +25 -0
- data/lib/terminal-shop/models/subscription_list_params.rb +18 -0
- data/lib/terminal-shop/models/subscription_list_response.rb +26 -0
- data/lib/terminal-shop/models/token.rb +68 -0
- data/lib/terminal-shop/models/token_create_params.rb +18 -0
- data/lib/terminal-shop/models/token_create_response.rb +55 -0
- data/lib/terminal-shop/models/token_delete_params.rb +18 -0
- data/lib/terminal-shop/models/token_delete_response.rb +25 -0
- data/lib/terminal-shop/models/token_get_params.rb +18 -0
- data/lib/terminal-shop/models/token_get_response.rb +27 -0
- data/lib/terminal-shop/models/token_list_params.rb +18 -0
- data/lib/terminal-shop/models/token_list_response.rb +26 -0
- data/lib/terminal-shop/models/view_init_params.rb +18 -0
- data/lib/terminal-shop/models/view_init_response.rb +103 -0
- data/lib/terminal-shop/pooled_net_requester.rb +94 -0
- data/lib/terminal-shop/request_options.rb +115 -0
- data/lib/terminal-shop/resources/address.rb +84 -0
- data/lib/terminal-shop/resources/app.rb +93 -0
- data/lib/terminal-shop/resources/card.rb +89 -0
- data/lib/terminal-shop/resources/cart.rb +112 -0
- data/lib/terminal-shop/resources/email.rb +34 -0
- data/lib/terminal-shop/resources/order.rb +49 -0
- data/lib/terminal-shop/resources/product.rb +30 -0
- data/lib/terminal-shop/resources/profile.rb +53 -0
- data/lib/terminal-shop/resources/subscription.rb +82 -0
- data/lib/terminal-shop/resources/token.rb +85 -0
- data/lib/terminal-shop/resources/view.rb +31 -0
- data/lib/terminal-shop/util.rb +460 -0
- data/lib/terminal-shop/version.rb +5 -0
- data/lib/terminal-shop.rb +110 -0
- data/manifest.yaml +12 -0
- data/rbi/lib/terminal-shop/base_client.rbi +145 -0
- data/rbi/lib/terminal-shop/base_model.rbi +514 -0
- data/rbi/lib/terminal-shop/base_page.rbi +38 -0
- data/rbi/lib/terminal-shop/client.rbi +80 -0
- data/rbi/lib/terminal-shop/errors.rbi +133 -0
- data/rbi/lib/terminal-shop/extern.rbi +7 -0
- data/rbi/lib/terminal-shop/models/address.rbi +77 -0
- data/rbi/lib/terminal-shop/models/address_create_params.rbi +87 -0
- data/rbi/lib/terminal-shop/models/address_create_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/address_delete_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/address_delete_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/address_list_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/address_list_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/app.rbi +24 -0
- data/rbi/lib/terminal-shop/models/app_create_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/app_create_response.rbi +34 -0
- data/rbi/lib/terminal-shop/models/app_delete_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/app_delete_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/app_get_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/app_get_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/app_list_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/app_list_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/card.rbi +59 -0
- data/rbi/lib/terminal-shop/models/card_collect_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/card_collect_response.rbi +31 -0
- data/rbi/lib/terminal-shop/models/card_create_params.rbi +26 -0
- data/rbi/lib/terminal-shop/models/card_create_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/card_delete_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/card_delete_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/card_list_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/card_list_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/cart.rbi +127 -0
- data/rbi/lib/terminal-shop/models/cart_convert_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/cart_convert_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/cart_get_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/cart_get_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/cart_set_address_params.rbi +26 -0
- data/rbi/lib/terminal-shop/models/cart_set_address_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/cart_set_card_params.rbi +26 -0
- data/rbi/lib/terminal-shop/models/cart_set_card_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/cart_set_item_params.rbi +38 -0
- data/rbi/lib/terminal-shop/models/cart_set_item_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/email_create_params.rbi +26 -0
- data/rbi/lib/terminal-shop/models/email_create_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/order.rbi +216 -0
- data/rbi/lib/terminal-shop/models/order_get_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/order_get_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/order_list_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/order_list_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/product.rbi +94 -0
- data/rbi/lib/terminal-shop/models/product_list_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/product_list_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/product_variant.rbi +24 -0
- data/rbi/lib/terminal-shop/models/profile.rbi +61 -0
- data/rbi/lib/terminal-shop/models/profile_me_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/profile_me_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/profile_update_params.rbi +38 -0
- data/rbi/lib/terminal-shop/models/profile_update_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/subscription.rbi +75 -0
- data/rbi/lib/terminal-shop/models/subscription_create_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/subscription_create_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/subscription_delete_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/subscription_delete_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/subscription_list_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/subscription_list_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/token.rbi +37 -0
- data/rbi/lib/terminal-shop/models/token_create_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/token_create_response.rbi +34 -0
- data/rbi/lib/terminal-shop/models/token_delete_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/token_delete_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/token_get_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/token_get_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/token_list_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/token_list_response.rbi +18 -0
- data/rbi/lib/terminal-shop/models/view_init_params.rbi +18 -0
- data/rbi/lib/terminal-shop/models/view_init_response.rbi +91 -0
- data/rbi/lib/terminal-shop/request_options.rbi +40 -0
- data/rbi/lib/terminal-shop/resources/address.rbi +60 -0
- data/rbi/lib/terminal-shop/resources/app.rbi +54 -0
- data/rbi/lib/terminal-shop/resources/card.rbi +57 -0
- data/rbi/lib/terminal-shop/resources/cart.rbi +67 -0
- data/rbi/lib/terminal-shop/resources/email.rbi +20 -0
- data/rbi/lib/terminal-shop/resources/order.rbi +34 -0
- data/rbi/lib/terminal-shop/resources/product.rbi +25 -0
- data/rbi/lib/terminal-shop/resources/profile.rbi +35 -0
- data/rbi/lib/terminal-shop/resources/subscription.rbi +58 -0
- data/rbi/lib/terminal-shop/resources/token.rbi +57 -0
- data/rbi/lib/terminal-shop/resources/view.rbi +25 -0
- data/rbi/lib/terminal-shop/util.rbi +128 -0
- data/rbi/lib/terminal-shop/version.rbi +5 -0
- data/sig/terminal-shop/base_client.rbs +100 -0
- data/sig/terminal-shop/base_model.rbs +246 -0
- data/sig/terminal-shop/base_page.rbs +20 -0
- data/sig/terminal-shop/client.rbs +52 -0
- data/sig/terminal-shop/errors.rbs +98 -0
- data/sig/terminal-shop/extern.rbs +4 -0
- data/sig/terminal-shop/models/address.rbs +60 -0
- data/sig/terminal-shop/models/address_create_params.rbs +62 -0
- data/sig/terminal-shop/models/address_create_response.rbs +18 -0
- data/sig/terminal-shop/models/address_delete_params.rbs +19 -0
- data/sig/terminal-shop/models/address_delete_response.rbs +18 -0
- data/sig/terminal-shop/models/address_list_params.rbs +19 -0
- data/sig/terminal-shop/models/address_list_response.rbs +19 -0
- data/sig/terminal-shop/models/app.rbs +21 -0
- data/sig/terminal-shop/models/app_create_params.rbs +19 -0
- data/sig/terminal-shop/models/app_create_response.rbs +36 -0
- data/sig/terminal-shop/models/app_delete_params.rbs +19 -0
- data/sig/terminal-shop/models/app_delete_response.rbs +18 -0
- data/sig/terminal-shop/models/app_get_params.rbs +18 -0
- data/sig/terminal-shop/models/app_get_response.rbs +17 -0
- data/sig/terminal-shop/models/app_list_params.rbs +18 -0
- data/sig/terminal-shop/models/app_list_response.rbs +18 -0
- data/sig/terminal-shop/models/card.rbs +51 -0
- data/sig/terminal-shop/models/card_collect_params.rbs +19 -0
- data/sig/terminal-shop/models/card_collect_response.rbs +34 -0
- data/sig/terminal-shop/models/card_create_params.rbs +22 -0
- data/sig/terminal-shop/models/card_create_response.rbs +18 -0
- data/sig/terminal-shop/models/card_delete_params.rbs +19 -0
- data/sig/terminal-shop/models/card_delete_response.rbs +18 -0
- data/sig/terminal-shop/models/card_list_params.rbs +18 -0
- data/sig/terminal-shop/models/card_list_response.rbs +18 -0
- data/sig/terminal-shop/models/cart.rbs +119 -0
- data/sig/terminal-shop/models/cart_convert_params.rbs +19 -0
- data/sig/terminal-shop/models/cart_convert_response.rbs +18 -0
- data/sig/terminal-shop/models/cart_get_params.rbs +18 -0
- data/sig/terminal-shop/models/cart_get_response.rbs +18 -0
- data/sig/terminal-shop/models/cart_set_address_params.rbs +25 -0
- data/sig/terminal-shop/models/cart_set_address_response.rbs +18 -0
- data/sig/terminal-shop/models/cart_set_card_params.rbs +22 -0
- data/sig/terminal-shop/models/cart_set_card_response.rbs +18 -0
- data/sig/terminal-shop/models/cart_set_item_params.rbs +29 -0
- data/sig/terminal-shop/models/cart_set_item_response.rbs +18 -0
- data/sig/terminal-shop/models/email_create_params.rbs +22 -0
- data/sig/terminal-shop/models/email_create_response.rbs +18 -0
- data/sig/terminal-shop/models/order.rbs +179 -0
- data/sig/terminal-shop/models/order_get_params.rbs +18 -0
- data/sig/terminal-shop/models/order_get_response.rbs +18 -0
- data/sig/terminal-shop/models/order_list_params.rbs +19 -0
- data/sig/terminal-shop/models/order_list_response.rbs +18 -0
- data/sig/terminal-shop/models/product.rbs +76 -0
- data/sig/terminal-shop/models/product_list_params.rbs +19 -0
- data/sig/terminal-shop/models/product_list_response.rbs +19 -0
- data/sig/terminal-shop/models/product_variant.rbs +21 -0
- data/sig/terminal-shop/models/profile.rbs +53 -0
- data/sig/terminal-shop/models/profile_me_params.rbs +19 -0
- data/sig/terminal-shop/models/profile_me_response.rbs +18 -0
- data/sig/terminal-shop/models/profile_update_params.rbs +28 -0
- data/sig/terminal-shop/models/profile_update_response.rbs +18 -0
- data/sig/terminal-shop/models/subscription.rbs +60 -0
- data/sig/terminal-shop/models/subscription_create_params.rbs +19 -0
- data/sig/terminal-shop/models/subscription_create_response.rbs +18 -0
- data/sig/terminal-shop/models/subscription_delete_params.rbs +19 -0
- data/sig/terminal-shop/models/subscription_delete_response.rbs +18 -0
- data/sig/terminal-shop/models/subscription_list_params.rbs +19 -0
- data/sig/terminal-shop/models/subscription_list_response.rbs +19 -0
- data/sig/terminal-shop/models/token.rbs +40 -0
- data/sig/terminal-shop/models/token_create_params.rbs +19 -0
- data/sig/terminal-shop/models/token_create_response.rbs +36 -0
- data/sig/terminal-shop/models/token_delete_params.rbs +19 -0
- data/sig/terminal-shop/models/token_delete_response.rbs +18 -0
- data/sig/terminal-shop/models/token_get_params.rbs +18 -0
- data/sig/terminal-shop/models/token_get_response.rbs +18 -0
- data/sig/terminal-shop/models/token_list_params.rbs +19 -0
- data/sig/terminal-shop/models/token_list_response.rbs +18 -0
- data/sig/terminal-shop/models/view_init_params.rbs +18 -0
- data/sig/terminal-shop/models/view_init_response.rbs +71 -0
- data/sig/terminal-shop/request_options.rbs +42 -0
- data/sig/terminal-shop/resources/address.rbs +41 -0
- data/sig/terminal-shop/resources/app.rbs +46 -0
- data/sig/terminal-shop/resources/card.rbs +42 -0
- data/sig/terminal-shop/resources/cart.rbs +51 -0
- data/sig/terminal-shop/resources/email.rbs +16 -0
- data/sig/terminal-shop/resources/order.rbs +25 -0
- data/sig/terminal-shop/resources/product.rbs +15 -0
- data/sig/terminal-shop/resources/profile.rbs +25 -0
- data/sig/terminal-shop/resources/subscription.rbs +43 -0
- data/sig/terminal-shop/resources/token.rbs +43 -0
- data/sig/terminal-shop/resources/view.rbs +15 -0
- data/sig/terminal-shop/util.rbs +85 -0
- data/sig/terminal-shop/version.rbs +3 -0
- metadata +333 -0
@@ -0,0 +1,103 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TerminalShop
|
4
|
+
module Models
|
5
|
+
# @example
|
6
|
+
# ```ruby
|
7
|
+
# view_init_response => {
|
8
|
+
# data: TerminalShop::Models::ViewInitResponse::Data
|
9
|
+
# }
|
10
|
+
# ```
|
11
|
+
class ViewInitResponse < TerminalShop::BaseModel
|
12
|
+
# @!attribute data
|
13
|
+
# Initial app data.
|
14
|
+
#
|
15
|
+
# @return [TerminalShop::Models::ViewInitResponse::Data]
|
16
|
+
required :data, -> { TerminalShop::Models::ViewInitResponse::Data }
|
17
|
+
|
18
|
+
# @!parse
|
19
|
+
# # @param data [TerminalShop::Models::ViewInitResponse::Data]
|
20
|
+
# #
|
21
|
+
# def initialize(data:, **) = super
|
22
|
+
|
23
|
+
# def initialize: (Hash | TerminalShop::BaseModel) -> void
|
24
|
+
|
25
|
+
# @example
|
26
|
+
# ```ruby
|
27
|
+
# data => {
|
28
|
+
# addresses: -> { TerminalShop::ArrayOf[TerminalShop::Models::AddressAPI] === _1 },
|
29
|
+
# apps: -> { TerminalShop::ArrayOf[TerminalShop::Models::AppAPI] === _1 },
|
30
|
+
# cards: -> { TerminalShop::ArrayOf[TerminalShop::Models::CardAPI] === _1 },
|
31
|
+
# cart: TerminalShop::Models::CartAPI,
|
32
|
+
# orders: -> { TerminalShop::ArrayOf[TerminalShop::Models::OrderAPI] === _1 },
|
33
|
+
# **_
|
34
|
+
# }
|
35
|
+
# ```
|
36
|
+
class Data < TerminalShop::BaseModel
|
37
|
+
# @!attribute addresses
|
38
|
+
#
|
39
|
+
# @return [Array<TerminalShop::Models::AddressAPI>]
|
40
|
+
required :addresses, -> { TerminalShop::ArrayOf[TerminalShop::Models::AddressAPI] }
|
41
|
+
|
42
|
+
# @!attribute apps
|
43
|
+
#
|
44
|
+
# @return [Array<TerminalShop::Models::AppAPI>]
|
45
|
+
required :apps, -> { TerminalShop::ArrayOf[TerminalShop::Models::AppAPI] }
|
46
|
+
|
47
|
+
# @!attribute cards
|
48
|
+
#
|
49
|
+
# @return [Array<TerminalShop::Models::CardAPI>]
|
50
|
+
required :cards, -> { TerminalShop::ArrayOf[TerminalShop::Models::CardAPI] }
|
51
|
+
|
52
|
+
# @!attribute cart
|
53
|
+
# The current Terminal shop user's cart.
|
54
|
+
#
|
55
|
+
# @return [TerminalShop::Models::CartAPI]
|
56
|
+
required :cart, -> { TerminalShop::Models::CartAPI }
|
57
|
+
|
58
|
+
# @!attribute orders
|
59
|
+
#
|
60
|
+
# @return [Array<TerminalShop::Models::OrderAPI>]
|
61
|
+
required :orders, -> { TerminalShop::ArrayOf[TerminalShop::Models::OrderAPI] }
|
62
|
+
|
63
|
+
# @!attribute products
|
64
|
+
#
|
65
|
+
# @return [Array<TerminalShop::Models::ProductAPI>]
|
66
|
+
required :products, -> { TerminalShop::ArrayOf[TerminalShop::Models::ProductAPI] }
|
67
|
+
|
68
|
+
# @!attribute profile
|
69
|
+
# A Terminal shop user's profile. (We have users, btw.)
|
70
|
+
#
|
71
|
+
# @return [TerminalShop::Models::ProfileAPI]
|
72
|
+
required :profile, -> { TerminalShop::Models::ProfileAPI }
|
73
|
+
|
74
|
+
# @!attribute subscriptions
|
75
|
+
#
|
76
|
+
# @return [Array<TerminalShop::Models::SubscriptionAPI>]
|
77
|
+
required :subscriptions, -> { TerminalShop::ArrayOf[TerminalShop::Models::SubscriptionAPI] }
|
78
|
+
|
79
|
+
# @!attribute tokens
|
80
|
+
#
|
81
|
+
# @return [Array<TerminalShop::Models::TokenAPI>]
|
82
|
+
required :tokens, -> { TerminalShop::ArrayOf[TerminalShop::Models::TokenAPI] }
|
83
|
+
|
84
|
+
# @!parse
|
85
|
+
# # Initial app data.
|
86
|
+
# #
|
87
|
+
# # @param addresses [Array<TerminalShop::Models::AddressAPI>]
|
88
|
+
# # @param apps [Array<TerminalShop::Models::AppAPI>]
|
89
|
+
# # @param cards [Array<TerminalShop::Models::CardAPI>]
|
90
|
+
# # @param cart [TerminalShop::Models::CartAPI]
|
91
|
+
# # @param orders [Array<TerminalShop::Models::OrderAPI>]
|
92
|
+
# # @param products [Array<TerminalShop::Models::ProductAPI>]
|
93
|
+
# # @param profile [TerminalShop::Models::ProfileAPI]
|
94
|
+
# # @param subscriptions [Array<TerminalShop::Models::SubscriptionAPI>]
|
95
|
+
# # @param tokens [Array<TerminalShop::Models::TokenAPI>]
|
96
|
+
# #
|
97
|
+
# def initialize(addresses:, apps:, cards:, cart:, orders:, products:, profile:, subscriptions:, tokens:, **) = super
|
98
|
+
|
99
|
+
# def initialize: (Hash | TerminalShop::BaseModel) -> void
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TerminalShop
|
4
|
+
# @private
|
5
|
+
#
|
6
|
+
class PooledNetRequester
|
7
|
+
def initialize
|
8
|
+
@mutex = Mutex.new
|
9
|
+
@pools = {}
|
10
|
+
end
|
11
|
+
|
12
|
+
# @private
|
13
|
+
#
|
14
|
+
# @param url [URL::Generic]
|
15
|
+
# @param timeout [Float]
|
16
|
+
#
|
17
|
+
# @return [ConnectionPool]
|
18
|
+
#
|
19
|
+
private def get_pool(url)
|
20
|
+
origin = TerminalShop::Util.uri_origin(url)
|
21
|
+
@mutex.synchronize do
|
22
|
+
@pools[origin] ||= ConnectionPool.new(size: Etc.nprocessors) do
|
23
|
+
port =
|
24
|
+
case [url.port, url.scheme]
|
25
|
+
in [Integer, _]
|
26
|
+
url.port
|
27
|
+
in [nil, "http" | "ws"]
|
28
|
+
Net::HTTP.http_default_port
|
29
|
+
in [nil, "https" | "wss"]
|
30
|
+
Net::HTTP.https_default_port
|
31
|
+
end
|
32
|
+
|
33
|
+
session = Net::HTTP.new(url.host, port)
|
34
|
+
session.use_ssl = %w[https wss].include?(url.scheme)
|
35
|
+
session.max_retries = 0
|
36
|
+
session
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# @private
|
42
|
+
#
|
43
|
+
# @param req [Hash{Symbol => Object}]
|
44
|
+
# @option req [Symbol] :method
|
45
|
+
# @option req [URI::Generic] :url
|
46
|
+
# @option req [Hash{String => String}] :headers
|
47
|
+
# @option req [String, Hash] :body
|
48
|
+
# @option req [Float] :timeout
|
49
|
+
#
|
50
|
+
# @return [Net::HTTPResponse]
|
51
|
+
#
|
52
|
+
def execute(req)
|
53
|
+
method, url, headers, body, timeout = req.fetch_values(:method, :url, :headers, :body, :timeout)
|
54
|
+
|
55
|
+
request = Net::HTTPGenericRequest.new(
|
56
|
+
method.to_s.upcase,
|
57
|
+
!body.nil?,
|
58
|
+
![:head, :options].include?(method),
|
59
|
+
url.to_s
|
60
|
+
)
|
61
|
+
|
62
|
+
headers.each { |k, v| request[k] = v }
|
63
|
+
case body
|
64
|
+
in String | nil
|
65
|
+
request.body = body
|
66
|
+
in IO | StringIO
|
67
|
+
request.body_stream = body
|
68
|
+
end
|
69
|
+
|
70
|
+
# This timeout is for acquiring a connection from the pool
|
71
|
+
# The default 5 seconds seems too short, lets just have a nearly unbounded queue for now
|
72
|
+
#
|
73
|
+
# TODO: revisit this around granular timeout / concurrency control
|
74
|
+
get_pool(url).with(timeout: 600) do |conn|
|
75
|
+
conn.open_timeout = timeout
|
76
|
+
conn.read_timeout = timeout
|
77
|
+
conn.write_timeout = timeout
|
78
|
+
conn.continue_timeout = timeout
|
79
|
+
|
80
|
+
conn.start unless conn.started?
|
81
|
+
|
82
|
+
conn.request(request)
|
83
|
+
# rubocop:disable Lint/RescueException
|
84
|
+
rescue Exception => e
|
85
|
+
# rubocop:enable Lint/RescueException
|
86
|
+
# should close connection on all errors to ensure no invalid state persists
|
87
|
+
conn.finish if conn.started?
|
88
|
+
raise e
|
89
|
+
end
|
90
|
+
rescue ConnectionPool::TimeoutError
|
91
|
+
raise TerminalShop::APITimeoutError.new(url: url)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,115 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TerminalShop
|
4
|
+
# @private
|
5
|
+
#
|
6
|
+
# @abstract
|
7
|
+
#
|
8
|
+
module RequestParameters
|
9
|
+
# @!parse
|
10
|
+
# # Options to specify HTTP behaviour for this request.
|
11
|
+
# # @return [TerminalShop::RequestOptions, Hash{Symbol=>Object}]
|
12
|
+
# attr_accessor :request_options
|
13
|
+
|
14
|
+
# @param mod [Module]
|
15
|
+
#
|
16
|
+
def self.included(mod)
|
17
|
+
return unless mod <= TerminalShop::BaseModel
|
18
|
+
|
19
|
+
mod.extend(TerminalShop::RequestParameters::Converter)
|
20
|
+
mod.optional(:request_options, TerminalShop::RequestOptions)
|
21
|
+
end
|
22
|
+
|
23
|
+
# @private
|
24
|
+
#
|
25
|
+
module Converter
|
26
|
+
# @private
|
27
|
+
#
|
28
|
+
# @param params [Object]
|
29
|
+
#
|
30
|
+
# @return [Array(Object, Hash{Symbol=>Object})]
|
31
|
+
#
|
32
|
+
def dump_request(params)
|
33
|
+
case (dumped = dump(params))
|
34
|
+
in Hash
|
35
|
+
[dumped.except(:request_options), dumped[:request_options]]
|
36
|
+
else
|
37
|
+
[dumped, nil]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Specify HTTP behaviour to use for a specific request. These options supplement
|
44
|
+
# or override those provided at the client level.
|
45
|
+
#
|
46
|
+
# When making a request, you can pass an actual {RequestOptions} instance, or
|
47
|
+
# simply pass a Hash with symbol keys matching the attributes on this class.
|
48
|
+
class RequestOptions < TerminalShop::BaseModel
|
49
|
+
# @private
|
50
|
+
#
|
51
|
+
# @param opts [TerminalShop::RequestOptions, Hash{Symbol=>Object}]
|
52
|
+
#
|
53
|
+
# @raise [ArgumentError]
|
54
|
+
#
|
55
|
+
def self.validate!(opts)
|
56
|
+
case opts
|
57
|
+
in TerminalShop::RequestOptions | Hash
|
58
|
+
opts.to_h.each_key do |k|
|
59
|
+
unless fields.include?(k)
|
60
|
+
raise ArgumentError.new("Request `opts` keys must be one of #{fields.keys}, got #{k.inspect}")
|
61
|
+
end
|
62
|
+
end
|
63
|
+
else
|
64
|
+
raise ArgumentError.new("Request `opts` must be a Hash or RequestOptions, got #{opts.inspect}")
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# @!attribute idempotency_key
|
69
|
+
# Idempotency key to send with request and all associated retries. Will only be
|
70
|
+
# sent for write requests.
|
71
|
+
#
|
72
|
+
# @return [String, nil]
|
73
|
+
optional :idempotency_key, String
|
74
|
+
|
75
|
+
# @!attribute extra_query
|
76
|
+
# Extra query params to send with the request. These are `.merge`’d into any
|
77
|
+
# `query` given at the client level.
|
78
|
+
#
|
79
|
+
# @return [Hash{String=>Array<String>, String, nil}, nil]
|
80
|
+
optional :extra_query, TerminalShop::HashOf[TerminalShop::ArrayOf[String]]
|
81
|
+
|
82
|
+
# @!attribute extra_headers
|
83
|
+
# Extra headers to send with the request. These are `.merged`’d into any
|
84
|
+
# `extra_headers` given at the client level.
|
85
|
+
#
|
86
|
+
# @return [Hash{String=>String, nil}, nil]
|
87
|
+
optional :extra_headers, TerminalShop::HashOf[String, nil?: true]
|
88
|
+
|
89
|
+
# @!attribute extra_body
|
90
|
+
# Extra data to send with the request. These are deep merged into any data
|
91
|
+
# generated as part of the normal request.
|
92
|
+
#
|
93
|
+
# @return [Hash{Symbol=>Object}, nil]
|
94
|
+
optional :extra_body, TerminalShop::HashOf[TerminalShop::Unknown]
|
95
|
+
|
96
|
+
# @!attribute max_retries
|
97
|
+
# Maximum number of retries to attempt after a failed initial request.
|
98
|
+
#
|
99
|
+
# @return [Integer, nil]
|
100
|
+
optional :max_retries, Integer
|
101
|
+
|
102
|
+
# @!attribute timeout
|
103
|
+
# Request timeout in seconds.
|
104
|
+
#
|
105
|
+
# @return [Float, nil]
|
106
|
+
optional :timeout, Float
|
107
|
+
|
108
|
+
# @!parse
|
109
|
+
# # Returns a new instance of RequestOptions.
|
110
|
+
# #
|
111
|
+
# # @param values [Hash{Symbol=>Object}]
|
112
|
+
# #
|
113
|
+
# def initialize(values = {}) = super
|
114
|
+
end
|
115
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TerminalShop
|
4
|
+
module Resources
|
5
|
+
class Address
|
6
|
+
# Create and add a shipping address to the current user.
|
7
|
+
#
|
8
|
+
# @param params [TerminalShop::Models::AddressCreateParams, Hash{Symbol=>Object}] .
|
9
|
+
#
|
10
|
+
# @option params [String] :city City of the address.
|
11
|
+
#
|
12
|
+
# @option params [String] :country ISO 3166-1 alpha-2 country code of the address.
|
13
|
+
#
|
14
|
+
# @option params [String] :name The recipient's name.
|
15
|
+
#
|
16
|
+
# @option params [String] :street1 Street of the address.
|
17
|
+
#
|
18
|
+
# @option params [String] :zip Zip code of the address.
|
19
|
+
#
|
20
|
+
# @option params [String] :phone Phone number of the recipient.
|
21
|
+
#
|
22
|
+
# @option params [String] :province Province or state of the address.
|
23
|
+
#
|
24
|
+
# @option params [String] :street2 Apartment, suite, etc. of the address.
|
25
|
+
#
|
26
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
27
|
+
#
|
28
|
+
# @return [TerminalShop::Models::AddressCreateResponse]
|
29
|
+
#
|
30
|
+
def create(params)
|
31
|
+
parsed, options = TerminalShop::Models::AddressCreateParams.dump_request(params)
|
32
|
+
@client.request(
|
33
|
+
method: :post,
|
34
|
+
path: "address",
|
35
|
+
body: parsed,
|
36
|
+
model: TerminalShop::Models::AddressCreateResponse,
|
37
|
+
options: options
|
38
|
+
)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Get the shipping addresses associated with the current user.
|
42
|
+
#
|
43
|
+
# @param params [TerminalShop::Models::AddressListParams, Hash{Symbol=>Object}] .
|
44
|
+
#
|
45
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
46
|
+
#
|
47
|
+
# @return [TerminalShop::Models::AddressListResponse]
|
48
|
+
#
|
49
|
+
def list(params = {})
|
50
|
+
@client.request(
|
51
|
+
method: :get,
|
52
|
+
path: "address",
|
53
|
+
model: TerminalShop::Models::AddressListResponse,
|
54
|
+
options: params[:request_options]
|
55
|
+
)
|
56
|
+
end
|
57
|
+
|
58
|
+
# Delete a shipping address from the current user.
|
59
|
+
#
|
60
|
+
# @param id [String] ID of the shipping address to delete.
|
61
|
+
#
|
62
|
+
# @param params [TerminalShop::Models::AddressDeleteParams, Hash{Symbol=>Object}] .
|
63
|
+
#
|
64
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
65
|
+
#
|
66
|
+
# @return [TerminalShop::Models::AddressDeleteResponse]
|
67
|
+
#
|
68
|
+
def delete(id, params = {})
|
69
|
+
@client.request(
|
70
|
+
method: :delete,
|
71
|
+
path: ["address/%0s", id],
|
72
|
+
model: TerminalShop::Models::AddressDeleteResponse,
|
73
|
+
options: params[:request_options]
|
74
|
+
)
|
75
|
+
end
|
76
|
+
|
77
|
+
# @param client [TerminalShop::Client]
|
78
|
+
#
|
79
|
+
def initialize(client:)
|
80
|
+
@client = client
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TerminalShop
|
4
|
+
module Resources
|
5
|
+
class App
|
6
|
+
# Create an app.
|
7
|
+
#
|
8
|
+
# @param params [TerminalShop::Models::AppCreateParams, Hash{Symbol=>Object}] .
|
9
|
+
#
|
10
|
+
# @option params [String] :id Unique object identifier. The format and length of IDs may change over time.
|
11
|
+
#
|
12
|
+
# @option params [String] :name Name of the app.
|
13
|
+
#
|
14
|
+
# @option params [String] :redirect_uri Redirect URI of the app.
|
15
|
+
#
|
16
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
17
|
+
#
|
18
|
+
# @return [TerminalShop::Models::AppCreateResponse]
|
19
|
+
#
|
20
|
+
def create(params)
|
21
|
+
parsed, options = TerminalShop::Models::AppCreateParams.dump_request(params)
|
22
|
+
@client.request(
|
23
|
+
method: :post,
|
24
|
+
path: "app",
|
25
|
+
body: parsed,
|
26
|
+
model: TerminalShop::Models::AppCreateResponse,
|
27
|
+
options: options
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
# List the current user's registered apps.
|
32
|
+
#
|
33
|
+
# @param params [TerminalShop::Models::AppListParams, Hash{Symbol=>Object}] .
|
34
|
+
#
|
35
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
36
|
+
#
|
37
|
+
# @return [TerminalShop::Models::AppListResponse]
|
38
|
+
#
|
39
|
+
def list(params = {})
|
40
|
+
@client.request(
|
41
|
+
method: :get,
|
42
|
+
path: "app",
|
43
|
+
model: TerminalShop::Models::AppListResponse,
|
44
|
+
options: params[:request_options]
|
45
|
+
)
|
46
|
+
end
|
47
|
+
|
48
|
+
# Delete the app with the given ID.
|
49
|
+
#
|
50
|
+
# @param id [String] ID of the app to delete.
|
51
|
+
#
|
52
|
+
# @param params [TerminalShop::Models::AppDeleteParams, Hash{Symbol=>Object}] .
|
53
|
+
#
|
54
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
55
|
+
#
|
56
|
+
# @return [TerminalShop::Models::AppDeleteResponse]
|
57
|
+
#
|
58
|
+
def delete(id, params = {})
|
59
|
+
@client.request(
|
60
|
+
method: :delete,
|
61
|
+
path: ["app/%0s", id],
|
62
|
+
model: TerminalShop::Models::AppDeleteResponse,
|
63
|
+
options: params[:request_options]
|
64
|
+
)
|
65
|
+
end
|
66
|
+
|
67
|
+
# Get the app with the given ID.
|
68
|
+
#
|
69
|
+
# @param id [String] ID of the app to get.
|
70
|
+
#
|
71
|
+
# @param params [TerminalShop::Models::AppGetParams, Hash{Symbol=>Object}] .
|
72
|
+
#
|
73
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
74
|
+
#
|
75
|
+
# @return [TerminalShop::Models::AppGetResponse]
|
76
|
+
#
|
77
|
+
def get(id, params = {})
|
78
|
+
@client.request(
|
79
|
+
method: :get,
|
80
|
+
path: ["app/%0s", id],
|
81
|
+
model: TerminalShop::Models::AppGetResponse,
|
82
|
+
options: params[:request_options]
|
83
|
+
)
|
84
|
+
end
|
85
|
+
|
86
|
+
# @param client [TerminalShop::Client]
|
87
|
+
#
|
88
|
+
def initialize(client:)
|
89
|
+
@client = client
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TerminalShop
|
4
|
+
module Resources
|
5
|
+
class Card
|
6
|
+
# Attach a credit card (tokenized via Stripe) to the current user.
|
7
|
+
#
|
8
|
+
# @param params [TerminalShop::Models::CardCreateParams, Hash{Symbol=>Object}] .
|
9
|
+
#
|
10
|
+
# @option params [String] :token Stripe card token. Learn how to
|
11
|
+
# [create one here](https://docs.stripe.com/api/tokens/create_card).
|
12
|
+
#
|
13
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
14
|
+
#
|
15
|
+
# @return [TerminalShop::Models::CardCreateResponse]
|
16
|
+
#
|
17
|
+
def create(params)
|
18
|
+
parsed, options = TerminalShop::Models::CardCreateParams.dump_request(params)
|
19
|
+
@client.request(
|
20
|
+
method: :post,
|
21
|
+
path: "card",
|
22
|
+
body: parsed,
|
23
|
+
model: TerminalShop::Models::CardCreateResponse,
|
24
|
+
options: options
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
# List the credit cards associated with the current user.
|
29
|
+
#
|
30
|
+
# @param params [TerminalShop::Models::CardListParams, Hash{Symbol=>Object}] .
|
31
|
+
#
|
32
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
33
|
+
#
|
34
|
+
# @return [TerminalShop::Models::CardListResponse]
|
35
|
+
#
|
36
|
+
def list(params = {})
|
37
|
+
@client.request(
|
38
|
+
method: :get,
|
39
|
+
path: "card",
|
40
|
+
model: TerminalShop::Models::CardListResponse,
|
41
|
+
options: params[:request_options]
|
42
|
+
)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Delete a credit card associated with the current user.
|
46
|
+
#
|
47
|
+
# @param id [String] ID of the card to delete.
|
48
|
+
#
|
49
|
+
# @param params [TerminalShop::Models::CardDeleteParams, Hash{Symbol=>Object}] .
|
50
|
+
#
|
51
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
52
|
+
#
|
53
|
+
# @return [TerminalShop::Models::CardDeleteResponse]
|
54
|
+
#
|
55
|
+
def delete(id, params = {})
|
56
|
+
@client.request(
|
57
|
+
method: :delete,
|
58
|
+
path: ["card/%0s", id],
|
59
|
+
model: TerminalShop::Models::CardDeleteResponse,
|
60
|
+
options: params[:request_options]
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Create a temporary URL for collecting credit card information for the current
|
65
|
+
# user.
|
66
|
+
#
|
67
|
+
# @param params [TerminalShop::Models::CardCollectParams, Hash{Symbol=>Object}] .
|
68
|
+
#
|
69
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
70
|
+
#
|
71
|
+
# @return [TerminalShop::Models::CardCollectResponse]
|
72
|
+
#
|
73
|
+
def collect(params = {})
|
74
|
+
@client.request(
|
75
|
+
method: :post,
|
76
|
+
path: "card/collect",
|
77
|
+
model: TerminalShop::Models::CardCollectResponse,
|
78
|
+
options: params[:request_options]
|
79
|
+
)
|
80
|
+
end
|
81
|
+
|
82
|
+
# @param client [TerminalShop::Client]
|
83
|
+
#
|
84
|
+
def initialize(client:)
|
85
|
+
@client = client
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TerminalShop
|
4
|
+
module Resources
|
5
|
+
class Cart
|
6
|
+
# Convert the current user's cart to an order.
|
7
|
+
#
|
8
|
+
# @param params [TerminalShop::Models::CartConvertParams, Hash{Symbol=>Object}] .
|
9
|
+
#
|
10
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
11
|
+
#
|
12
|
+
# @return [TerminalShop::Models::CartConvertResponse]
|
13
|
+
#
|
14
|
+
def convert(params = {})
|
15
|
+
@client.request(
|
16
|
+
method: :post,
|
17
|
+
path: "cart/convert",
|
18
|
+
model: TerminalShop::Models::CartConvertResponse,
|
19
|
+
options: params[:request_options]
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Get the current user's cart.
|
24
|
+
#
|
25
|
+
# @param params [TerminalShop::Models::CartGetParams, Hash{Symbol=>Object}] .
|
26
|
+
#
|
27
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
28
|
+
#
|
29
|
+
# @return [TerminalShop::Models::CartGetResponse]
|
30
|
+
#
|
31
|
+
def get(params = {})
|
32
|
+
@client.request(
|
33
|
+
method: :get,
|
34
|
+
path: "cart",
|
35
|
+
model: TerminalShop::Models::CartGetResponse,
|
36
|
+
options: params[:request_options]
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Set the shipping address for the current user's cart.
|
41
|
+
#
|
42
|
+
# @param params [TerminalShop::Models::CartSetAddressParams, Hash{Symbol=>Object}] .
|
43
|
+
#
|
44
|
+
# @option params [String] :address_id ID of the shipping address to set for the current user's cart.
|
45
|
+
#
|
46
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
47
|
+
#
|
48
|
+
# @return [TerminalShop::Models::CartSetAddressResponse]
|
49
|
+
#
|
50
|
+
def set_address(params)
|
51
|
+
parsed, options = TerminalShop::Models::CartSetAddressParams.dump_request(params)
|
52
|
+
@client.request(
|
53
|
+
method: :put,
|
54
|
+
path: "cart/address",
|
55
|
+
body: parsed,
|
56
|
+
model: TerminalShop::Models::CartSetAddressResponse,
|
57
|
+
options: options
|
58
|
+
)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Set the credit card for the current user's cart.
|
62
|
+
#
|
63
|
+
# @param params [TerminalShop::Models::CartSetCardParams, Hash{Symbol=>Object}] .
|
64
|
+
#
|
65
|
+
# @option params [String] :card_id ID of the credit card to set for the current user's cart.
|
66
|
+
#
|
67
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
68
|
+
#
|
69
|
+
# @return [TerminalShop::Models::CartSetCardResponse]
|
70
|
+
#
|
71
|
+
def set_card(params)
|
72
|
+
parsed, options = TerminalShop::Models::CartSetCardParams.dump_request(params)
|
73
|
+
@client.request(
|
74
|
+
method: :put,
|
75
|
+
path: "cart/card",
|
76
|
+
body: parsed,
|
77
|
+
model: TerminalShop::Models::CartSetCardResponse,
|
78
|
+
options: options
|
79
|
+
)
|
80
|
+
end
|
81
|
+
|
82
|
+
# Add an item to the current user's cart.
|
83
|
+
#
|
84
|
+
# @param params [TerminalShop::Models::CartSetItemParams, Hash{Symbol=>Object}] .
|
85
|
+
#
|
86
|
+
# @option params [String] :product_variant_id ID of the product variant to add to the cart.
|
87
|
+
#
|
88
|
+
# @option params [Integer] :quantity Quantity of the item to add to the cart.
|
89
|
+
#
|
90
|
+
# @option params [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
|
91
|
+
#
|
92
|
+
# @return [TerminalShop::Models::CartSetItemResponse]
|
93
|
+
#
|
94
|
+
def set_item(params)
|
95
|
+
parsed, options = TerminalShop::Models::CartSetItemParams.dump_request(params)
|
96
|
+
@client.request(
|
97
|
+
method: :put,
|
98
|
+
path: "cart/item",
|
99
|
+
body: parsed,
|
100
|
+
model: TerminalShop::Models::CartSetItemResponse,
|
101
|
+
options: options
|
102
|
+
)
|
103
|
+
end
|
104
|
+
|
105
|
+
# @param client [TerminalShop::Client]
|
106
|
+
#
|
107
|
+
def initialize(client:)
|
108
|
+
@client = client
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|