Skip to content

Commit b55db47

Browse files
authored
Adds 2025-01 REST api resources and change the latest version (#1355)
* Adds 2025-01 REST api resources and change the latest version * Adds changelog entry * Fixes fulfillment notify_customer type * Fixes test cases * fixes fulfillment.rb for 2025-01 version
1 parent c6f95f0 commit b55db47

File tree

148 files changed

+35737
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

148 files changed

+35737
-1
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
Note: For changes to the API, see https://shopify.dev/changelog?filter=api
44
## Unreleased
55

6+
- [#1355](https://github.com/Shopify/shopify-api-ruby/pull/1355) Add support for 2025-01 API version
7+
68
## 14.7.0
79

810
- [#1347](https://github.com/Shopify/shopify-api-ruby/pull/1347) Extend webhook registration to support filters

lib/shopify_api/admin_versions.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ module ShopifyAPI
55
module AdminVersions
66
SUPPORTED_ADMIN_VERSIONS = T.let([
77
"unstable",
8+
"2025-01",
89
"2024-10",
910
"2024-07",
1011
"2024-04",
@@ -19,7 +20,7 @@ module AdminVersions
1920
"2022-01",
2021
], T::Array[String])
2122

22-
LATEST_SUPPORTED_ADMIN_VERSION = T.let("2024-10", String)
23+
LATEST_SUPPORTED_ADMIN_VERSION = T.let("2025-01", String)
2324
end
2425

2526
SUPPORTED_ADMIN_VERSIONS = ShopifyAPI::AdminVersions::SUPPORTED_ADMIN_VERSIONS
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
# typed: false
2+
# frozen_string_literal: true
3+
4+
########################################################################################################################
5+
# This file is auto-generated. If you have an issue, please create a GitHub issue. #
6+
########################################################################################################################
7+
8+
module ShopifyAPI
9+
class AbandonedCheckout < ShopifyAPI::Rest::Base
10+
extend T::Sig
11+
12+
@prev_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
13+
@next_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
14+
15+
@api_call_limit = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
16+
@retry_request_after = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
17+
18+
sig { params(session: T.nilable(ShopifyAPI::Auth::Session), from_hash: T.nilable(T::Hash[T.untyped, T.untyped])).void }
19+
def initialize(session: ShopifyAPI::Context.active_session, from_hash: nil)
20+
21+
@abandoned_checkout_url = T.let(nil, T.nilable(String))
22+
@billing_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
23+
@buyer_accepts_marketing = T.let(nil, T.nilable(T::Boolean))
24+
@buyer_accepts_sms_marketing = T.let(nil, T.nilable(T::Boolean))
25+
@cart_token = T.let(nil, T.nilable(String))
26+
@closed_at = T.let(nil, T.nilable(String))
27+
@completed_at = T.let(nil, T.nilable(String))
28+
@created_at = T.let(nil, T.nilable(String))
29+
@currency = T.let(nil, T.nilable(Currency))
30+
@customer = T.let(nil, T.nilable(Customer))
31+
@customer_locale = T.let(nil, T.nilable(String))
32+
@device_id = T.let(nil, T.nilable(Integer))
33+
@discount_codes = T.let(nil, T.nilable(T::Array[T.untyped]))
34+
@email = T.let(nil, T.nilable(String))
35+
@gateway = T.let(nil, T.nilable(String))
36+
@id = T.let(nil, T.nilable(Integer))
37+
@landing_site = T.let(nil, T.nilable(String))
38+
@line_items = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
39+
@location_id = T.let(nil, T.nilable(Integer))
40+
@note = T.let(nil, T.nilable(String))
41+
@phone = T.let(nil, T.nilable(String))
42+
@presentment_currency = T.let(nil, T.nilable(String))
43+
@referring_site = T.let(nil, T.nilable(String))
44+
@shipping_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
45+
@shipping_lines = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
46+
@sms_marketing_phone = T.let(nil, T.nilable(String))
47+
@source_name = T.let(nil, T.nilable(String))
48+
@subtotal_price = T.let(nil, T.nilable(String))
49+
@tax_lines = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
50+
@taxes_included = T.let(nil, T.nilable(T::Boolean))
51+
@token = T.let(nil, T.nilable(String))
52+
@total_discounts = T.let(nil, T.nilable(String))
53+
@total_duties = T.let(nil, T.nilable(String))
54+
@total_line_items_price = T.let(nil, T.nilable(String))
55+
@total_price = T.let(nil, T.nilable(String))
56+
@total_tax = T.let(nil, T.nilable(String))
57+
@total_weight = T.let(nil, T.nilable(Integer))
58+
@updated_at = T.let(nil, T.nilable(String))
59+
@user_id = T.let(nil, T.nilable(Integer))
60+
61+
super(session: session, from_hash: from_hash)
62+
end
63+
64+
@has_one = T.let({
65+
currency: Currency,
66+
customer: Customer
67+
}, T::Hash[Symbol, Class])
68+
@has_many = T.let({
69+
discount_codes: DiscountCode
70+
}, T::Hash[Symbol, Class])
71+
@paths = T.let([
72+
{http_method: :get, operation: :checkouts, ids: [], path: "checkouts.json"},
73+
{http_method: :get, operation: :checkouts, ids: [], path: "checkouts.json"}
74+
], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
75+
76+
sig { returns(T.nilable(String)) }
77+
attr_reader :abandoned_checkout_url
78+
sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
79+
attr_reader :billing_address
80+
sig { returns(T.nilable(T::Boolean)) }
81+
attr_reader :buyer_accepts_marketing
82+
sig { returns(T.nilable(T::Boolean)) }
83+
attr_reader :buyer_accepts_sms_marketing
84+
sig { returns(T.nilable(String)) }
85+
attr_reader :cart_token
86+
sig { returns(T.nilable(String)) }
87+
attr_reader :closed_at
88+
sig { returns(T.nilable(String)) }
89+
attr_reader :completed_at
90+
sig { returns(T.nilable(String)) }
91+
attr_reader :created_at
92+
sig { returns(T.nilable(Currency)) }
93+
attr_reader :currency
94+
sig { returns(T.nilable(Customer)) }
95+
attr_reader :customer
96+
sig { returns(T.nilable(String)) }
97+
attr_reader :customer_locale
98+
sig { returns(T.nilable(Integer)) }
99+
attr_reader :device_id
100+
sig { returns(T.nilable(T::Array[DiscountCode])) }
101+
attr_reader :discount_codes
102+
sig { returns(T.nilable(String)) }
103+
attr_reader :email
104+
sig { returns(T.nilable(String)) }
105+
attr_reader :gateway
106+
sig { returns(T.nilable(Integer)) }
107+
attr_reader :id
108+
sig { returns(T.nilable(String)) }
109+
attr_reader :landing_site
110+
sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
111+
attr_reader :line_items
112+
sig { returns(T.nilable(Integer)) }
113+
attr_reader :location_id
114+
sig { returns(T.nilable(String)) }
115+
attr_reader :note
116+
sig { returns(T.nilable(String)) }
117+
attr_reader :phone
118+
sig { returns(T.nilable(String)) }
119+
attr_reader :presentment_currency
120+
sig { returns(T.nilable(String)) }
121+
attr_reader :referring_site
122+
sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
123+
attr_reader :shipping_address
124+
sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
125+
attr_reader :shipping_lines
126+
sig { returns(T.nilable(String)) }
127+
attr_reader :sms_marketing_phone
128+
sig { returns(T.nilable(String)) }
129+
attr_reader :source_name
130+
sig { returns(T.nilable(String)) }
131+
attr_reader :subtotal_price
132+
sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
133+
attr_reader :tax_lines
134+
sig { returns(T.nilable(T::Boolean)) }
135+
attr_reader :taxes_included
136+
sig { returns(T.nilable(String)) }
137+
attr_reader :token
138+
sig { returns(T.nilable(String)) }
139+
attr_reader :total_discounts
140+
sig { returns(T.nilable(String)) }
141+
attr_reader :total_duties
142+
sig { returns(T.nilable(String)) }
143+
attr_reader :total_line_items_price
144+
sig { returns(T.nilable(String)) }
145+
attr_reader :total_price
146+
sig { returns(T.nilable(String)) }
147+
attr_reader :total_tax
148+
sig { returns(T.nilable(Integer)) }
149+
attr_reader :total_weight
150+
sig { returns(T.nilable(String)) }
151+
attr_reader :updated_at
152+
sig { returns(T.nilable(Integer)) }
153+
attr_reader :user_id
154+
155+
class << self
156+
sig do
157+
params(
158+
since_id: T.untyped,
159+
created_at_min: T.untyped,
160+
created_at_max: T.untyped,
161+
updated_at_min: T.untyped,
162+
updated_at_max: T.untyped,
163+
status: T.untyped,
164+
limit: T.untyped,
165+
session: Auth::Session,
166+
kwargs: T.untyped
167+
).returns(T.untyped)
168+
end
169+
def checkouts(
170+
since_id: nil,
171+
created_at_min: nil,
172+
created_at_max: nil,
173+
updated_at_min: nil,
174+
updated_at_max: nil,
175+
status: nil,
176+
limit: nil,
177+
session: ShopifyAPI::Context.active_session,
178+
**kwargs
179+
)
180+
request(
181+
http_method: :get,
182+
operation: :checkouts,
183+
session: session,
184+
ids: {},
185+
params: {since_id: since_id, created_at_min: created_at_min, created_at_max: created_at_max, updated_at_min: updated_at_min, updated_at_max: updated_at_max, status: status, limit: limit}.merge(kwargs).compact,
186+
body: {},
187+
entity: nil,
188+
)
189+
end
190+
191+
end
192+
193+
end
194+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# typed: false
2+
# frozen_string_literal: true
3+
4+
########################################################################################################################
5+
# This file is auto-generated. If you have an issue, please create a GitHub issue. #
6+
########################################################################################################################
7+
8+
module ShopifyAPI
9+
class AccessScope < ShopifyAPI::Rest::Base
10+
extend T::Sig
11+
12+
@prev_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
13+
@next_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
14+
15+
@api_call_limit = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
16+
@retry_request_after = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
17+
18+
sig { params(session: T.nilable(ShopifyAPI::Auth::Session), from_hash: T.nilable(T::Hash[T.untyped, T.untyped])).void }
19+
def initialize(session: ShopifyAPI::Context.active_session, from_hash: nil)
20+
21+
@handle = T.let(nil, T.nilable(String))
22+
@access_scopes = T.let(nil, T.nilable(T::Array[T.untyped]))
23+
24+
super(session: session, from_hash: from_hash)
25+
end
26+
27+
@has_one = T.let({}, T::Hash[Symbol, Class])
28+
@has_many = T.let({}, T::Hash[Symbol, Class])
29+
@custom_prefix = T.let("/admin/oauth", T.nilable(String))
30+
@paths = T.let([
31+
{http_method: :get, operation: :get, ids: [], path: "access_scopes.json"}
32+
], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
33+
34+
sig { returns(T.nilable(String)) }
35+
attr_reader :handle
36+
sig { returns(T.nilable(T::Array[T::Hash[T.untyped, T.untyped]])) }
37+
attr_reader :access_scopes
38+
39+
class << self
40+
sig do
41+
params(
42+
session: Auth::Session,
43+
kwargs: T.untyped
44+
).returns(T::Array[AccessScope])
45+
end
46+
def all(
47+
session: ShopifyAPI::Context.active_session,
48+
**kwargs
49+
)
50+
response = base_find(
51+
session: session,
52+
ids: {},
53+
params: {}.merge(kwargs).compact,
54+
)
55+
56+
T.cast(response, T::Array[AccessScope])
57+
end
58+
59+
end
60+
61+
end
62+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# typed: false
2+
# frozen_string_literal: true
3+
4+
########################################################################################################################
5+
# This file is auto-generated. If you have an issue, please create a GitHub issue. #
6+
########################################################################################################################
7+
8+
module ShopifyAPI
9+
class ApplePayCertificate < ShopifyAPI::Rest::Base
10+
extend T::Sig
11+
12+
@prev_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
13+
@next_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
14+
15+
@api_call_limit = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
16+
@retry_request_after = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
17+
18+
sig { params(session: T.nilable(ShopifyAPI::Auth::Session), from_hash: T.nilable(T::Hash[T.untyped, T.untyped])).void }
19+
def initialize(session: ShopifyAPI::Context.active_session, from_hash: nil)
20+
21+
@id = T.let(nil, T.nilable(Integer))
22+
@merchant_id = T.let(nil, T.nilable(String))
23+
@status = T.let(nil, T.nilable(String))
24+
25+
super(session: session, from_hash: from_hash)
26+
end
27+
28+
@has_one = T.let({}, T::Hash[Symbol, Class])
29+
@has_many = T.let({}, T::Hash[Symbol, Class])
30+
@paths = T.let([
31+
{http_method: :delete, operation: :delete, ids: [:id], path: "apple_pay_certificates/<id>.json"},
32+
{http_method: :get, operation: :csr, ids: [:id], path: "apple_pay_certificates/<id>/csr.json"},
33+
{http_method: :get, operation: :get, ids: [:id], path: "apple_pay_certificates/<id>.json"},
34+
{http_method: :post, operation: :post, ids: [], path: "apple_pay_certificates.json"},
35+
{http_method: :put, operation: :put, ids: [:id], path: "apple_pay_certificates/<id>.json"}
36+
], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
37+
38+
sig { returns(T.nilable(Integer)) }
39+
attr_reader :id
40+
sig { returns(T.nilable(String)) }
41+
attr_reader :merchant_id
42+
sig { returns(T.nilable(String)) }
43+
attr_reader :status
44+
45+
class << self
46+
sig do
47+
params(
48+
id: T.any(Integer, String),
49+
session: Auth::Session
50+
).returns(T.nilable(ApplePayCertificate))
51+
end
52+
def find(
53+
id:,
54+
session: ShopifyAPI::Context.active_session
55+
)
56+
result = base_find(
57+
session: session,
58+
ids: {id: id},
59+
params: {},
60+
)
61+
T.cast(result[0], T.nilable(ApplePayCertificate))
62+
end
63+
64+
sig do
65+
params(
66+
id: T.any(Integer, String),
67+
session: Auth::Session
68+
).returns(T.untyped)
69+
end
70+
def delete(
71+
id:,
72+
session: ShopifyAPI::Context.active_session
73+
)
74+
request(
75+
http_method: :delete,
76+
operation: :delete,
77+
session: session,
78+
ids: {id: id},
79+
params: {},
80+
)
81+
end
82+
83+
sig do
84+
params(
85+
id: T.any(Integer, String),
86+
session: Auth::Session,
87+
kwargs: T.untyped
88+
).returns(T.untyped)
89+
end
90+
def csr(
91+
id:,
92+
session: ShopifyAPI::Context.active_session,
93+
**kwargs
94+
)
95+
request(
96+
http_method: :get,
97+
operation: :csr,
98+
session: session,
99+
ids: {id: id},
100+
params: {}.merge(kwargs).compact,
101+
body: {},
102+
entity: nil,
103+
)
104+
end
105+
106+
end
107+
108+
end
109+
end

0 commit comments

Comments
 (0)