terminal-shop 3.6.1 → 3.6.2
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 +4 -4
- data/CHANGELOG.md +13 -0
- data/README.md +3 -3
- data/lib/terminal_shop/file_part.rb +2 -2
- data/lib/terminal_shop/internal/type/enum.rb +4 -4
- data/lib/terminal_shop/internal/type/request_parameters.rb +4 -4
- data/lib/terminal_shop/internal/util.rb +1 -1
- data/lib/terminal_shop/models/address.rb +3 -3
- data/lib/terminal_shop/models/address_get_response.rb +3 -3
- data/lib/terminal_shop/models/address_list_response.rb +3 -3
- data/lib/terminal_shop/models/app.rb +3 -3
- data/lib/terminal_shop/models/app_get_response.rb +3 -3
- data/lib/terminal_shop/models/app_list_response.rb +3 -3
- data/lib/terminal_shop/models/card.rb +7 -7
- data/lib/terminal_shop/models/card_collect_response.rb +0 -1
- data/lib/terminal_shop/models/card_create_params.rb +0 -1
- data/lib/terminal_shop/models/card_get_response.rb +3 -3
- data/lib/terminal_shop/models/card_list_response.rb +3 -3
- data/lib/terminal_shop/models/cart.rb +13 -13
- data/lib/terminal_shop/models/cart_convert_response.rb +3 -3
- data/lib/terminal_shop/models/cart_get_response.rb +3 -3
- data/lib/terminal_shop/models/cart_set_item_response.rb +3 -3
- data/lib/terminal_shop/models/order.rb +24 -24
- data/lib/terminal_shop/models/order_get_response.rb +3 -3
- data/lib/terminal_shop/models/order_list_response.rb +3 -3
- data/lib/terminal_shop/models/product.rb +14 -14
- data/lib/terminal_shop/models/product_get_response.rb +3 -3
- data/lib/terminal_shop/models/product_list_response.rb +3 -3
- data/lib/terminal_shop/models/product_variant.rb +6 -6
- data/lib/terminal_shop/models/profile.rb +6 -6
- data/lib/terminal_shop/models/profile_me_response.rb +3 -3
- data/lib/terminal_shop/models/profile_update_response.rb +3 -3
- data/lib/terminal_shop/models/subscription.rb +9 -9
- data/lib/terminal_shop/models/subscription_get_response.rb +3 -3
- data/lib/terminal_shop/models/subscription_list_response.rb +3 -3
- data/lib/terminal_shop/models/subscription_update_params.rb +6 -6
- data/lib/terminal_shop/models/subscription_update_response.rb +3 -3
- data/lib/terminal_shop/models/token.rb +3 -3
- data/lib/terminal_shop/models/token_create_response.rb +0 -1
- data/lib/terminal_shop/models/token_get_response.rb +3 -4
- data/lib/terminal_shop/models/token_list_response.rb +3 -3
- data/lib/terminal_shop/models/view_init_response.rb +30 -31
- data/lib/terminal_shop/resources/address.rb +1 -1
- data/lib/terminal_shop/resources/app.rb +1 -1
- data/lib/terminal_shop/resources/card.rb +1 -2
- data/lib/terminal_shop/resources/cart.rb +3 -3
- data/lib/terminal_shop/resources/email.rb +1 -1
- data/lib/terminal_shop/resources/order.rb +1 -1
- data/lib/terminal_shop/resources/profile.rb +1 -1
- data/lib/terminal_shop/resources/subscription.rb +5 -5
- data/lib/terminal_shop/version.rb +1 -1
- data/lib/terminal_shop.rb +1 -0
- data/rbi/terminal_shop/client.rbi +9 -5
- data/rbi/terminal_shop/errors.rbi +35 -16
- data/rbi/terminal_shop/file_part.rbi +9 -6
- data/rbi/terminal_shop/internal/transport/base_client.rbi +140 -75
- data/rbi/terminal_shop/internal/transport/pooled_net_requester.rbi +26 -12
- data/rbi/terminal_shop/internal/type/array_of.rbi +34 -24
- data/rbi/terminal_shop/internal/type/base_model.rbi +131 -64
- data/rbi/terminal_shop/internal/type/base_page.rbi +13 -8
- data/rbi/terminal_shop/internal/type/boolean.rbi +16 -14
- data/rbi/terminal_shop/internal/type/converter.rbi +70 -28
- data/rbi/terminal_shop/internal/type/enum.rbi +23 -13
- data/rbi/terminal_shop/internal/type/file_input.rbi +8 -4
- data/rbi/terminal_shop/internal/type/hash_of.rbi +34 -24
- data/rbi/terminal_shop/internal/type/request_parameters.rbi +14 -4
- data/rbi/terminal_shop/internal/type/union.rbi +52 -22
- data/rbi/terminal_shop/internal/type/unknown.rbi +16 -6
- data/rbi/terminal_shop/internal/util.rbi +210 -88
- data/rbi/terminal_shop/models/address.rbi +23 -19
- data/rbi/terminal_shop/models/address_create_params.rbi +23 -19
- data/rbi/terminal_shop/models/address_create_response.rbi +9 -3
- data/rbi/terminal_shop/models/address_delete_params.rbi +13 -5
- data/rbi/terminal_shop/models/address_delete_response.rbi +8 -3
- data/rbi/terminal_shop/models/address_get_params.rbi +13 -5
- data/rbi/terminal_shop/models/address_get_response.rbi +12 -7
- data/rbi/terminal_shop/models/address_list_params.rbi +13 -5
- data/rbi/terminal_shop/models/address_list_response.rbi +13 -6
- data/rbi/terminal_shop/models/app.rbi +21 -4
- data/rbi/terminal_shop/models/app_create_params.rbi +16 -6
- data/rbi/terminal_shop/models/app_create_response.rbi +27 -9
- data/rbi/terminal_shop/models/app_delete_params.rbi +13 -5
- data/rbi/terminal_shop/models/app_delete_response.rbi +8 -3
- data/rbi/terminal_shop/models/app_get_params.rbi +13 -5
- data/rbi/terminal_shop/models/app_get_response.rbi +12 -7
- data/rbi/terminal_shop/models/app_list_params.rbi +13 -5
- data/rbi/terminal_shop/models/app_list_response.rbi +13 -6
- data/rbi/terminal_shop/models/card.rbi +30 -14
- data/rbi/terminal_shop/models/card_collect_params.rbi +13 -5
- data/rbi/terminal_shop/models/card_collect_response.rbi +30 -9
- data/rbi/terminal_shop/models/card_create_params.rbi +15 -6
- data/rbi/terminal_shop/models/card_create_response.rbi +9 -3
- data/rbi/terminal_shop/models/card_delete_params.rbi +13 -5
- data/rbi/terminal_shop/models/card_delete_response.rbi +8 -3
- data/rbi/terminal_shop/models/card_get_params.rbi +13 -5
- data/rbi/terminal_shop/models/card_get_response.rbi +12 -7
- data/rbi/terminal_shop/models/card_list_params.rbi +13 -5
- data/rbi/terminal_shop/models/card_list_response.rbi +13 -6
- data/rbi/terminal_shop/models/cart.rbi +79 -36
- data/rbi/terminal_shop/models/cart_clear_params.rbi +13 -5
- data/rbi/terminal_shop/models/cart_clear_response.rbi +8 -3
- data/rbi/terminal_shop/models/cart_convert_params.rbi +13 -5
- data/rbi/terminal_shop/models/cart_convert_response.rbi +12 -7
- data/rbi/terminal_shop/models/cart_get_params.rbi +13 -5
- data/rbi/terminal_shop/models/cart_get_response.rbi +12 -7
- data/rbi/terminal_shop/models/cart_set_address_params.rbi +15 -6
- data/rbi/terminal_shop/models/cart_set_address_response.rbi +8 -3
- data/rbi/terminal_shop/models/cart_set_card_params.rbi +15 -6
- data/rbi/terminal_shop/models/cart_set_card_response.rbi +8 -3
- data/rbi/terminal_shop/models/cart_set_item_params.rbi +17 -11
- data/rbi/terminal_shop/models/cart_set_item_response.rbi +12 -7
- data/rbi/terminal_shop/models/email_create_params.rbi +15 -6
- data/rbi/terminal_shop/models/email_create_response.rbi +8 -3
- data/rbi/terminal_shop/models/order.rbi +153 -87
- data/rbi/terminal_shop/models/order_create_params.rbi +18 -14
- data/rbi/terminal_shop/models/order_create_response.rbi +9 -3
- data/rbi/terminal_shop/models/order_get_params.rbi +13 -5
- data/rbi/terminal_shop/models/order_get_response.rbi +12 -7
- data/rbi/terminal_shop/models/order_list_params.rbi +13 -5
- data/rbi/terminal_shop/models/order_list_response.rbi +13 -6
- data/rbi/terminal_shop/models/product.rbi +71 -44
- data/rbi/terminal_shop/models/product_get_params.rbi +13 -5
- data/rbi/terminal_shop/models/product_get_response.rbi +12 -7
- data/rbi/terminal_shop/models/product_list_params.rbi +13 -5
- data/rbi/terminal_shop/models/product_list_response.rbi +13 -6
- data/rbi/terminal_shop/models/product_variant.rbi +39 -15
- data/rbi/terminal_shop/models/profile.rbi +32 -21
- data/rbi/terminal_shop/models/profile_me_params.rbi +13 -5
- data/rbi/terminal_shop/models/profile_me_response.rbi +12 -7
- data/rbi/terminal_shop/models/profile_update_params.rbi +18 -6
- data/rbi/terminal_shop/models/profile_update_response.rbi +12 -7
- data/rbi/terminal_shop/models/region.rbi +7 -6
- data/rbi/terminal_shop/models/subscription.rbi +70 -46
- data/rbi/terminal_shop/models/subscription_create_params.rbi +13 -5
- data/rbi/terminal_shop/models/subscription_create_response.rbi +8 -3
- data/rbi/terminal_shop/models/subscription_delete_params.rbi +13 -5
- data/rbi/terminal_shop/models/subscription_delete_response.rbi +8 -3
- data/rbi/terminal_shop/models/subscription_get_params.rbi +13 -5
- data/rbi/terminal_shop/models/subscription_get_response.rbi +14 -7
- data/rbi/terminal_shop/models/subscription_list_params.rbi +13 -5
- data/rbi/terminal_shop/models/subscription_list_response.rbi +15 -6
- data/rbi/terminal_shop/models/subscription_update_params.rbi +66 -42
- data/rbi/terminal_shop/models/subscription_update_response.rbi +14 -7
- data/rbi/terminal_shop/models/token.rbi +14 -4
- data/rbi/terminal_shop/models/token_create_params.rbi +13 -5
- data/rbi/terminal_shop/models/token_create_response.rbi +29 -9
- data/rbi/terminal_shop/models/token_delete_params.rbi +13 -5
- data/rbi/terminal_shop/models/token_delete_response.rbi +8 -3
- data/rbi/terminal_shop/models/token_get_params.rbi +13 -5
- data/rbi/terminal_shop/models/token_get_response.rbi +12 -7
- data/rbi/terminal_shop/models/token_list_params.rbi +13 -5
- data/rbi/terminal_shop/models/token_list_response.rbi +13 -6
- data/rbi/terminal_shop/models/view_init_params.rbi +13 -5
- data/rbi/terminal_shop/models/view_init_response.rbi +62 -47
- data/rbi/terminal_shop/request_options.rbi +16 -7
- data/rbi/terminal_shop/resources/address.rbi +28 -13
- data/rbi/terminal_shop/resources/app.rbi +30 -12
- data/rbi/terminal_shop/resources/card.rbi +37 -14
- data/rbi/terminal_shop/resources/cart.rbi +45 -16
- data/rbi/terminal_shop/resources/email.rbi +9 -4
- data/rbi/terminal_shop/resources/order.rbi +21 -10
- data/rbi/terminal_shop/resources/product.rbi +16 -6
- data/rbi/terminal_shop/resources/profile.rbi +16 -6
- data/rbi/terminal_shop/resources/subscription.rbi +43 -27
- data/rbi/terminal_shop/resources/token.rbi +30 -11
- data/rbi/terminal_shop/resources/view.rbi +9 -3
- data/sig/terminal_shop/internal/type/request_parameters.rbs +5 -1
- data/sig/terminal_shop/models/address.rbs +0 -2
- data/sig/terminal_shop/models/address_create_params.rbs +0 -2
- data/sig/terminal_shop/models/address_create_response.rbs +0 -2
- data/sig/terminal_shop/models/address_delete_params.rbs +0 -2
- data/sig/terminal_shop/models/address_delete_response.rbs +0 -2
- data/sig/terminal_shop/models/address_get_params.rbs +0 -2
- data/sig/terminal_shop/models/address_get_response.rbs +3 -5
- data/sig/terminal_shop/models/address_list_params.rbs +0 -2
- data/sig/terminal_shop/models/address_list_response.rbs +3 -6
- data/sig/terminal_shop/models/app.rbs +0 -2
- data/sig/terminal_shop/models/app_create_params.rbs +0 -2
- data/sig/terminal_shop/models/app_create_response.rbs +0 -4
- data/sig/terminal_shop/models/app_delete_params.rbs +0 -2
- data/sig/terminal_shop/models/app_delete_response.rbs +0 -2
- data/sig/terminal_shop/models/app_get_params.rbs +0 -2
- data/sig/terminal_shop/models/app_get_response.rbs +3 -5
- data/sig/terminal_shop/models/app_list_params.rbs +0 -2
- data/sig/terminal_shop/models/app_list_response.rbs +3 -5
- data/sig/terminal_shop/models/card.rbs +3 -7
- data/sig/terminal_shop/models/card_collect_params.rbs +0 -2
- data/sig/terminal_shop/models/card_collect_response.rbs +0 -4
- data/sig/terminal_shop/models/card_create_params.rbs +0 -2
- data/sig/terminal_shop/models/card_create_response.rbs +0 -2
- data/sig/terminal_shop/models/card_delete_params.rbs +0 -2
- data/sig/terminal_shop/models/card_delete_response.rbs +0 -2
- data/sig/terminal_shop/models/card_get_params.rbs +0 -2
- data/sig/terminal_shop/models/card_get_response.rbs +3 -5
- data/sig/terminal_shop/models/card_list_params.rbs +0 -2
- data/sig/terminal_shop/models/card_list_response.rbs +3 -5
- data/sig/terminal_shop/models/cart.rbs +11 -19
- data/sig/terminal_shop/models/cart_clear_params.rbs +0 -2
- data/sig/terminal_shop/models/cart_clear_response.rbs +0 -2
- data/sig/terminal_shop/models/cart_convert_params.rbs +0 -2
- data/sig/terminal_shop/models/cart_convert_response.rbs +3 -5
- data/sig/terminal_shop/models/cart_get_params.rbs +0 -2
- data/sig/terminal_shop/models/cart_get_response.rbs +3 -5
- data/sig/terminal_shop/models/cart_set_address_params.rbs +0 -2
- data/sig/terminal_shop/models/cart_set_address_response.rbs +0 -2
- data/sig/terminal_shop/models/cart_set_card_params.rbs +0 -2
- data/sig/terminal_shop/models/cart_set_card_response.rbs +0 -2
- data/sig/terminal_shop/models/cart_set_item_params.rbs +0 -2
- data/sig/terminal_shop/models/cart_set_item_response.rbs +3 -5
- data/sig/terminal_shop/models/email_create_params.rbs +0 -2
- data/sig/terminal_shop/models/email_create_response.rbs +0 -2
- data/sig/terminal_shop/models/order.rbs +18 -28
- data/sig/terminal_shop/models/order_create_params.rbs +0 -2
- data/sig/terminal_shop/models/order_create_response.rbs +0 -2
- data/sig/terminal_shop/models/order_get_params.rbs +0 -2
- data/sig/terminal_shop/models/order_get_response.rbs +3 -5
- data/sig/terminal_shop/models/order_list_params.rbs +0 -2
- data/sig/terminal_shop/models/order_list_response.rbs +3 -5
- data/sig/terminal_shop/models/product.rbs +14 -18
- data/sig/terminal_shop/models/product_get_params.rbs +0 -2
- data/sig/terminal_shop/models/product_get_response.rbs +3 -5
- data/sig/terminal_shop/models/product_list_params.rbs +0 -2
- data/sig/terminal_shop/models/product_list_response.rbs +3 -6
- data/sig/terminal_shop/models/product_variant.rbs +5 -9
- data/sig/terminal_shop/models/profile.rbs +3 -7
- data/sig/terminal_shop/models/profile_me_params.rbs +0 -2
- data/sig/terminal_shop/models/profile_me_response.rbs +3 -5
- data/sig/terminal_shop/models/profile_update_params.rbs +0 -2
- data/sig/terminal_shop/models/profile_update_response.rbs +3 -5
- data/sig/terminal_shop/models/subscription.rbs +8 -14
- data/sig/terminal_shop/models/subscription_create_params.rbs +0 -2
- data/sig/terminal_shop/models/subscription_create_response.rbs +0 -2
- data/sig/terminal_shop/models/subscription_delete_params.rbs +0 -2
- data/sig/terminal_shop/models/subscription_delete_response.rbs +0 -2
- data/sig/terminal_shop/models/subscription_get_params.rbs +0 -2
- data/sig/terminal_shop/models/subscription_get_response.rbs +3 -6
- data/sig/terminal_shop/models/subscription_list_params.rbs +0 -2
- data/sig/terminal_shop/models/subscription_list_response.rbs +3 -7
- data/sig/terminal_shop/models/subscription_update_params.rbs +3 -9
- data/sig/terminal_shop/models/subscription_update_response.rbs +3 -6
- data/sig/terminal_shop/models/token.rbs +0 -2
- data/sig/terminal_shop/models/token_create_params.rbs +0 -2
- data/sig/terminal_shop/models/token_create_response.rbs +0 -4
- data/sig/terminal_shop/models/token_delete_params.rbs +0 -2
- data/sig/terminal_shop/models/token_delete_response.rbs +0 -2
- data/sig/terminal_shop/models/token_get_params.rbs +0 -2
- data/sig/terminal_shop/models/token_get_response.rbs +3 -5
- data/sig/terminal_shop/models/token_list_params.rbs +0 -2
- data/sig/terminal_shop/models/token_list_response.rbs +3 -5
- data/sig/terminal_shop/models/view_init_params.rbs +0 -2
- data/sig/terminal_shop/models/view_init_response.rbs +27 -31
- data/sig/terminal_shop/request_options.rbs +1 -1
- metadata +2 -2
@@ -10,7 +10,7 @@ module TerminalShop
|
|
10
10
|
#
|
11
11
|
# @overload create(id:, address_id:, card_id:, created:, price:, product_variant_id:, quantity:, next_: nil, schedule: nil, request_options: {})
|
12
12
|
#
|
13
|
-
# @param id [String] Unique object identifier.
|
13
|
+
# @param id [String] Unique object identifier.
|
14
14
|
#
|
15
15
|
# @param address_id [String] ID of the shipping address used for the subscription.
|
16
16
|
#
|
@@ -26,7 +26,7 @@ module TerminalShop
|
|
26
26
|
#
|
27
27
|
# @param next_ [String] Next shipment and billing date for the subscription.
|
28
28
|
#
|
29
|
-
# @param schedule [TerminalShop::
|
29
|
+
# @param schedule [TerminalShop::SubscriptionAPI::Schedule::Fixed, TerminalShop::SubscriptionAPI::Schedule::Weekly] Schedule of the subscription.
|
30
30
|
#
|
31
31
|
# @param request_options [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil]
|
32
32
|
#
|
@@ -34,7 +34,7 @@ module TerminalShop
|
|
34
34
|
#
|
35
35
|
# @see TerminalShop::Models::SubscriptionCreateParams
|
36
36
|
def create(params)
|
37
|
-
parsed, options = TerminalShop::
|
37
|
+
parsed, options = TerminalShop::SubscriptionCreateParams.dump_request(params)
|
38
38
|
@client.request(
|
39
39
|
method: :post,
|
40
40
|
path: "subscription",
|
@@ -54,7 +54,7 @@ module TerminalShop
|
|
54
54
|
#
|
55
55
|
# @param card_id [String] New payment method ID for the subscription.
|
56
56
|
#
|
57
|
-
# @param schedule [TerminalShop::
|
57
|
+
# @param schedule [TerminalShop::SubscriptionUpdateParams::Schedule::Fixed, TerminalShop::SubscriptionUpdateParams::Schedule::Weekly] New schedule for the subscription.
|
58
58
|
#
|
59
59
|
# @param request_options [TerminalShop::RequestOptions, Hash{Symbol=>Object}, nil]
|
60
60
|
#
|
@@ -62,7 +62,7 @@ module TerminalShop
|
|
62
62
|
#
|
63
63
|
# @see TerminalShop::Models::SubscriptionUpdateParams
|
64
64
|
def update(id, params = {})
|
65
|
-
parsed, options = TerminalShop::
|
65
|
+
parsed, options = TerminalShop::SubscriptionUpdateParams.dump_request(params)
|
66
66
|
@client.request(
|
67
67
|
method: :put,
|
68
68
|
path: ["subscription/%1$s", id],
|
data/lib/terminal_shop.rb
CHANGED
@@ -131,6 +131,7 @@ require_relative "terminal_shop/models/token_list_params"
|
|
131
131
|
require_relative "terminal_shop/models/token_list_response"
|
132
132
|
require_relative "terminal_shop/models/view_init_params"
|
133
133
|
require_relative "terminal_shop/models/view_init_response"
|
134
|
+
require_relative "terminal_shop/models"
|
134
135
|
require_relative "terminal_shop/resources/address"
|
135
136
|
require_relative "terminal_shop/resources/app"
|
136
137
|
require_relative "terminal_shop/resources/card"
|
@@ -12,7 +12,10 @@ module TerminalShop
|
|
12
12
|
|
13
13
|
ENVIRONMENTS =
|
14
14
|
T.let(
|
15
|
-
{
|
15
|
+
{
|
16
|
+
production: "https://api.terminal.shop",
|
17
|
+
dev: "https://api.dev.terminal.shop"
|
18
|
+
},
|
16
19
|
T::Hash[Symbol, String]
|
17
20
|
)
|
18
21
|
|
@@ -57,7 +60,8 @@ module TerminalShop
|
|
57
60
|
|
58
61
|
# @api private
|
59
62
|
sig { override.returns(T::Hash[String, String]) }
|
60
|
-
private def auth_headers
|
63
|
+
private def auth_headers
|
64
|
+
end
|
61
65
|
|
62
66
|
# Creates and returns a new client for interacting with the API.
|
63
67
|
sig do
|
@@ -70,8 +74,7 @@ module TerminalShop
|
|
70
74
|
timeout: Float,
|
71
75
|
initial_retry_delay: Float,
|
72
76
|
max_retry_delay: Float
|
73
|
-
)
|
74
|
-
.returns(T.attached_class)
|
77
|
+
).returns(T.attached_class)
|
75
78
|
end
|
76
79
|
def self.new(
|
77
80
|
# Defaults to `ENV["TERMINAL_BEARER_TOKEN"]`
|
@@ -92,6 +95,7 @@ module TerminalShop
|
|
92
95
|
timeout: TerminalShop::Client::DEFAULT_TIMEOUT_IN_SECONDS,
|
93
96
|
initial_retry_delay: TerminalShop::Client::DEFAULT_INITIAL_RETRY_DELAY,
|
94
97
|
max_retry_delay: TerminalShop::Client::DEFAULT_MAX_RETRY_DELAY
|
95
|
-
)
|
98
|
+
)
|
99
|
+
end
|
96
100
|
end
|
97
101
|
end
|
@@ -29,10 +29,17 @@ module TerminalShop
|
|
29
29
|
request: NilClass,
|
30
30
|
response: NilClass,
|
31
31
|
message: T.nilable(String)
|
32
|
-
)
|
33
|
-
|
32
|
+
).returns(T.attached_class)
|
33
|
+
end
|
34
|
+
def self.new(
|
35
|
+
url:,
|
36
|
+
status: nil,
|
37
|
+
body: nil,
|
38
|
+
request: nil,
|
39
|
+
response: nil,
|
40
|
+
message: nil
|
41
|
+
)
|
34
42
|
end
|
35
|
-
def self.new(url:, status: nil, body: nil, request: nil, response: nil, message: nil); end
|
36
43
|
end
|
37
44
|
|
38
45
|
class APIConnectionError < TerminalShop::Errors::APIError
|
@@ -51,10 +58,16 @@ module TerminalShop
|
|
51
58
|
request: NilClass,
|
52
59
|
response: NilClass,
|
53
60
|
message: T.nilable(String)
|
54
|
-
)
|
55
|
-
.returns(T.attached_class)
|
61
|
+
).returns(T.attached_class)
|
56
62
|
end
|
57
|
-
def self.new(
|
63
|
+
def self.new(
|
64
|
+
url:,
|
65
|
+
status: nil,
|
66
|
+
body: nil,
|
67
|
+
request: nil,
|
68
|
+
response: nil,
|
69
|
+
message: "Connection error."
|
70
|
+
)
|
58
71
|
end
|
59
72
|
end
|
60
73
|
|
@@ -68,10 +81,16 @@ module TerminalShop
|
|
68
81
|
request: NilClass,
|
69
82
|
response: NilClass,
|
70
83
|
message: T.nilable(String)
|
71
|
-
)
|
72
|
-
.returns(T.attached_class)
|
84
|
+
).returns(T.attached_class)
|
73
85
|
end
|
74
|
-
def self.new(
|
86
|
+
def self.new(
|
87
|
+
url:,
|
88
|
+
status: nil,
|
89
|
+
body: nil,
|
90
|
+
request: nil,
|
91
|
+
response: nil,
|
92
|
+
message: "Request timed out."
|
93
|
+
)
|
75
94
|
end
|
76
95
|
end
|
77
96
|
|
@@ -85,10 +104,10 @@ module TerminalShop
|
|
85
104
|
request: NilClass,
|
86
105
|
response: NilClass,
|
87
106
|
message: T.nilable(String)
|
88
|
-
)
|
89
|
-
|
107
|
+
).returns(T.attached_class)
|
108
|
+
end
|
109
|
+
def self.for(url:, status:, body:, request:, response:, message: nil)
|
90
110
|
end
|
91
|
-
def self.for(url:, status:, body:, request:, response:, message: nil); end
|
92
111
|
|
93
112
|
sig { returns(Integer) }
|
94
113
|
attr_accessor :status
|
@@ -102,10 +121,10 @@ module TerminalShop
|
|
102
121
|
request: NilClass,
|
103
122
|
response: NilClass,
|
104
123
|
message: T.nilable(String)
|
105
|
-
)
|
106
|
-
|
124
|
+
).returns(T.attached_class)
|
125
|
+
end
|
126
|
+
def self.new(url:, status:, body:, request:, response:, message: nil)
|
107
127
|
end
|
108
|
-
def self.new(url:, status:, body:, request:, response:, message: nil); end
|
109
128
|
end
|
110
129
|
|
111
130
|
class BadRequestError < TerminalShop::Errors::APIStatusError
|
@@ -137,7 +156,7 @@ module TerminalShop
|
|
137
156
|
end
|
138
157
|
|
139
158
|
class InternalServerError < TerminalShop::Errors::APIStatusError
|
140
|
-
HTTP_STATUS = T.let(500
|
159
|
+
HTTP_STATUS = T.let((500..), T::Range[Integer])
|
141
160
|
end
|
142
161
|
end
|
143
162
|
end
|
@@ -13,22 +13,25 @@ module TerminalShop
|
|
13
13
|
|
14
14
|
# @api private
|
15
15
|
sig { returns(String) }
|
16
|
-
private def read
|
16
|
+
private def read
|
17
|
+
end
|
17
18
|
|
18
19
|
sig { params(a: T.anything).returns(String) }
|
19
|
-
def to_json(*a)
|
20
|
+
def to_json(*a)
|
21
|
+
end
|
20
22
|
|
21
23
|
sig { params(a: T.anything).returns(String) }
|
22
|
-
def to_yaml(*a)
|
24
|
+
def to_yaml(*a)
|
25
|
+
end
|
23
26
|
|
24
27
|
sig do
|
25
28
|
params(
|
26
29
|
content: T.any(Pathname, StringIO, IO, String),
|
27
30
|
filename: T.nilable(String),
|
28
31
|
content_type: T.nilable(String)
|
29
|
-
)
|
30
|
-
|
32
|
+
).returns(T.attached_class)
|
33
|
+
end
|
34
|
+
def self.new(content, filename: nil, content_type: nil)
|
31
35
|
end
|
32
|
-
def self.new(content, filename: nil, content_type: nil); end
|
33
36
|
end
|
34
37
|
end
|
@@ -12,30 +12,44 @@ module TerminalShop
|
|
12
12
|
{
|
13
13
|
method: Symbol,
|
14
14
|
path: T.any(String, T::Array[String]),
|
15
|
-
query:
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
15
|
+
query:
|
16
|
+
T.nilable(
|
17
|
+
T::Hash[String, T.nilable(T.any(T::Array[String], String))]
|
18
|
+
),
|
19
|
+
headers:
|
20
|
+
T.nilable(
|
21
|
+
T::Hash[
|
22
|
+
String,
|
23
|
+
T.nilable(
|
24
|
+
T.any(
|
25
|
+
String,
|
26
|
+
Integer,
|
27
|
+
T::Array[T.nilable(T.any(String, Integer))]
|
28
|
+
)
|
29
|
+
)
|
30
|
+
]
|
31
|
+
),
|
26
32
|
body: T.nilable(T.anything),
|
27
|
-
unwrap:
|
28
|
-
T.
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
unwrap:
|
34
|
+
T.nilable(
|
35
|
+
T.any(
|
36
|
+
Symbol,
|
37
|
+
Integer,
|
38
|
+
T::Array[T.any(Symbol, Integer)],
|
39
|
+
T.proc.params(arg0: T.anything).returns(T.anything)
|
40
|
+
)
|
41
|
+
),
|
42
|
+
page:
|
43
|
+
T.nilable(
|
44
|
+
T::Class[
|
45
|
+
TerminalShop::Internal::Type::BasePage[
|
46
|
+
TerminalShop::Internal::Type::BaseModel
|
47
|
+
]
|
48
|
+
]
|
49
|
+
),
|
36
50
|
stream: T.nilable(T::Class[T.anything]),
|
37
51
|
model: T.nilable(TerminalShop::Internal::Type::Converter::Input),
|
38
|
-
options: T.nilable(TerminalShop::
|
52
|
+
options: T.nilable(TerminalShop::RequestOptions::OrHash)
|
39
53
|
}
|
40
54
|
end
|
41
55
|
|
@@ -58,41 +72,48 @@ module TerminalShop
|
|
58
72
|
|
59
73
|
class << self
|
60
74
|
# @api private
|
61
|
-
sig
|
62
|
-
|
75
|
+
sig do
|
76
|
+
params(
|
77
|
+
req:
|
78
|
+
TerminalShop::Internal::Transport::BaseClient::RequestComponentsShape
|
79
|
+
).void
|
80
|
+
end
|
81
|
+
def validate!(req)
|
82
|
+
end
|
63
83
|
|
64
84
|
# @api private
|
65
85
|
sig do
|
66
86
|
params(
|
67
87
|
status: Integer,
|
68
|
-
headers: T.any(
|
69
|
-
T::Hash[String, String],
|
70
|
-
Net::HTTPHeader
|
71
|
-
)
|
88
|
+
headers: T.any(T::Hash[String, String], Net::HTTPHeader)
|
72
89
|
).returns(T::Boolean)
|
73
90
|
end
|
74
|
-
def should_retry?(status, headers:)
|
91
|
+
def should_retry?(status, headers:)
|
92
|
+
end
|
75
93
|
|
76
94
|
# @api private
|
77
95
|
sig do
|
78
96
|
params(
|
79
|
-
request:
|
97
|
+
request:
|
98
|
+
TerminalShop::Internal::Transport::BaseClient::RequestInputShape,
|
80
99
|
status: Integer,
|
81
100
|
response_headers: T.any(T::Hash[String, String], Net::HTTPHeader)
|
101
|
+
).returns(
|
102
|
+
TerminalShop::Internal::Transport::BaseClient::RequestInputShape
|
82
103
|
)
|
83
|
-
.returns(TerminalShop::Internal::Transport::BaseClient::RequestInputShape)
|
84
104
|
end
|
85
|
-
def follow_redirect(request, status:, response_headers:)
|
105
|
+
def follow_redirect(request, status:, response_headers:)
|
106
|
+
end
|
86
107
|
|
87
108
|
# @api private
|
88
109
|
sig do
|
89
110
|
params(
|
90
111
|
status: T.any(Integer, TerminalShop::Errors::APIConnectionError),
|
91
112
|
stream: T.nilable(T::Enumerable[String])
|
92
|
-
)
|
93
|
-
|
113
|
+
).void
|
114
|
+
end
|
115
|
+
def reap_connection!(status, stream:)
|
94
116
|
end
|
95
|
-
def reap_connection!(status, stream:); end
|
96
117
|
end
|
97
118
|
|
98
119
|
# @api private
|
@@ -107,11 +128,19 @@ module TerminalShop
|
|
107
128
|
max_retries: Integer,
|
108
129
|
initial_retry_delay: Float,
|
109
130
|
max_retry_delay: Float,
|
110
|
-
headers:
|
111
|
-
|
131
|
+
headers:
|
132
|
+
T::Hash[
|
133
|
+
String,
|
134
|
+
T.nilable(
|
135
|
+
T.any(
|
136
|
+
String,
|
137
|
+
Integer,
|
138
|
+
T::Array[T.nilable(T.any(String, Integer))]
|
139
|
+
)
|
140
|
+
)
|
141
|
+
],
|
112
142
|
idempotency_header: T.nilable(String)
|
113
|
-
)
|
114
|
-
.returns(T.attached_class)
|
143
|
+
).returns(T.attached_class)
|
115
144
|
end
|
116
145
|
def self.new(
|
117
146
|
base_url:,
|
@@ -121,41 +150,61 @@ module TerminalShop
|
|
121
150
|
max_retry_delay: 0.0,
|
122
151
|
headers: {},
|
123
152
|
idempotency_header: nil
|
124
|
-
)
|
153
|
+
)
|
154
|
+
end
|
155
|
+
|
125
156
|
# @api private
|
126
157
|
sig { overridable.returns(T::Hash[String, String]) }
|
127
|
-
private def auth_headers
|
158
|
+
private def auth_headers
|
159
|
+
end
|
128
160
|
|
129
161
|
# @api private
|
130
162
|
sig { returns(String) }
|
131
|
-
private def generate_idempotency_key
|
163
|
+
private def generate_idempotency_key
|
164
|
+
end
|
132
165
|
|
133
166
|
# @api private
|
134
167
|
sig do
|
135
168
|
overridable
|
136
169
|
.params(
|
137
|
-
req:
|
170
|
+
req:
|
171
|
+
TerminalShop::Internal::Transport::BaseClient::RequestComponentsShape,
|
138
172
|
opts: TerminalShop::Internal::AnyHash
|
139
173
|
)
|
140
|
-
.returns(
|
174
|
+
.returns(
|
175
|
+
TerminalShop::Internal::Transport::BaseClient::RequestInputShape
|
176
|
+
)
|
177
|
+
end
|
178
|
+
private def build_request(req, opts)
|
141
179
|
end
|
142
|
-
private def build_request(req, opts); end
|
143
180
|
|
144
181
|
# @api private
|
145
|
-
sig
|
146
|
-
|
182
|
+
sig do
|
183
|
+
params(
|
184
|
+
headers: T::Hash[String, String],
|
185
|
+
retry_count: Integer
|
186
|
+
).returns(Float)
|
187
|
+
end
|
188
|
+
private def retry_delay(headers, retry_count:)
|
189
|
+
end
|
147
190
|
|
148
191
|
# @api private
|
149
192
|
sig do
|
150
193
|
params(
|
151
|
-
request:
|
194
|
+
request:
|
195
|
+
TerminalShop::Internal::Transport::BaseClient::RequestInputShape,
|
152
196
|
redirect_count: Integer,
|
153
197
|
retry_count: Integer,
|
154
198
|
send_retry_header: T::Boolean
|
155
|
-
)
|
156
|
-
|
199
|
+
).returns([Integer, Net::HTTPResponse, T::Enumerable[String]])
|
200
|
+
end
|
201
|
+
private def send_request(
|
202
|
+
request,
|
203
|
+
redirect_count:,
|
204
|
+
retry_count:,
|
205
|
+
send_retry_header:
|
206
|
+
)
|
157
207
|
end
|
158
|
-
private def send_request(request, redirect_count:, retry_count:, send_retry_header:); end
|
159
208
|
|
160
209
|
# Execute the request specified by `req`. This is the method that all resource
|
161
210
|
# methods call into.
|
@@ -165,32 +214,45 @@ module TerminalShop
|
|
165
214
|
params(
|
166
215
|
method: Symbol,
|
167
216
|
path: T.any(String, T::Array[String]),
|
168
|
-
query:
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
217
|
+
query:
|
218
|
+
T.nilable(
|
219
|
+
T::Hash[String, T.nilable(T.any(T::Array[String], String))]
|
220
|
+
),
|
221
|
+
headers:
|
222
|
+
T.nilable(
|
223
|
+
T::Hash[
|
224
|
+
String,
|
225
|
+
T.nilable(
|
226
|
+
T.any(
|
227
|
+
String,
|
228
|
+
Integer,
|
229
|
+
T::Array[T.nilable(T.any(String, Integer))]
|
230
|
+
)
|
231
|
+
)
|
232
|
+
]
|
233
|
+
),
|
179
234
|
body: T.nilable(T.anything),
|
180
|
-
unwrap:
|
181
|
-
T.
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
235
|
+
unwrap:
|
236
|
+
T.nilable(
|
237
|
+
T.any(
|
238
|
+
Symbol,
|
239
|
+
Integer,
|
240
|
+
T::Array[T.any(Symbol, Integer)],
|
241
|
+
T.proc.params(arg0: T.anything).returns(T.anything)
|
242
|
+
)
|
243
|
+
),
|
244
|
+
page:
|
245
|
+
T.nilable(
|
246
|
+
T::Class[
|
247
|
+
TerminalShop::Internal::Type::BasePage[
|
248
|
+
TerminalShop::Internal::Type::BaseModel
|
249
|
+
]
|
250
|
+
]
|
251
|
+
),
|
189
252
|
stream: T.nilable(T::Class[T.anything]),
|
190
253
|
model: T.nilable(TerminalShop::Internal::Type::Converter::Input),
|
191
|
-
options: T.nilable(TerminalShop::
|
192
|
-
)
|
193
|
-
.returns(T.anything)
|
254
|
+
options: T.nilable(TerminalShop::RequestOptions::OrHash)
|
255
|
+
).returns(T.anything)
|
194
256
|
end
|
195
257
|
def request(
|
196
258
|
method,
|
@@ -203,10 +265,13 @@ module TerminalShop
|
|
203
265
|
stream: nil,
|
204
266
|
model: TerminalShop::Internal::Type::Unknown,
|
205
267
|
options: {}
|
206
|
-
)
|
268
|
+
)
|
269
|
+
end
|
270
|
+
|
207
271
|
# @api private
|
208
272
|
sig { returns(String) }
|
209
|
-
def inspect
|
273
|
+
def inspect
|
274
|
+
end
|
210
275
|
end
|
211
276
|
end
|
212
277
|
end
|
@@ -23,37 +23,51 @@ module TerminalShop
|
|
23
23
|
class << self
|
24
24
|
# @api private
|
25
25
|
sig { params(url: URI::Generic).returns(Net::HTTP) }
|
26
|
-
def connect(url)
|
26
|
+
def connect(url)
|
27
|
+
end
|
27
28
|
|
28
29
|
# @api private
|
29
30
|
sig { params(conn: Net::HTTP, deadline: Float).void }
|
30
|
-
def calibrate_socket_timeout(conn, deadline)
|
31
|
+
def calibrate_socket_timeout(conn, deadline)
|
32
|
+
end
|
31
33
|
|
32
34
|
# @api private
|
33
35
|
sig do
|
34
36
|
params(
|
35
|
-
request:
|
37
|
+
request:
|
38
|
+
TerminalShop::Internal::Transport::PooledNetRequester::RequestShape,
|
36
39
|
blk: T.proc.params(arg0: String).void
|
37
|
-
)
|
38
|
-
|
40
|
+
).returns([Net::HTTPGenericRequest, T.proc.void])
|
41
|
+
end
|
42
|
+
def build_request(request, &blk)
|
39
43
|
end
|
40
|
-
def build_request(request, &blk); end
|
41
44
|
end
|
42
45
|
|
43
46
|
# @api private
|
44
|
-
sig
|
45
|
-
|
47
|
+
sig do
|
48
|
+
params(
|
49
|
+
url: URI::Generic,
|
50
|
+
deadline: Float,
|
51
|
+
blk: T.proc.params(arg0: Net::HTTP).void
|
52
|
+
).void
|
53
|
+
end
|
54
|
+
private def with_pool(url, deadline:, &blk)
|
55
|
+
end
|
46
56
|
|
47
57
|
# @api private
|
48
58
|
sig do
|
49
|
-
params(
|
50
|
-
|
59
|
+
params(
|
60
|
+
request:
|
61
|
+
TerminalShop::Internal::Transport::PooledNetRequester::RequestShape
|
62
|
+
).returns([Integer, Net::HTTPResponse, T::Enumerable[String]])
|
63
|
+
end
|
64
|
+
def execute(request)
|
51
65
|
end
|
52
|
-
def execute(request); end
|
53
66
|
|
54
67
|
# @api private
|
55
68
|
sig { params(size: Integer).returns(T.attached_class) }
|
56
|
-
def self.new(size: Etc.nprocessors)
|
69
|
+
def self.new(size: Etc.nprocessors)
|
70
|
+
end
|
57
71
|
end
|
58
72
|
end
|
59
73
|
end
|