Skip to content

Commit edbbd05

Browse files
feat: support query, header, and body params that have identical names (#226)
1 parent 574fdf4 commit edbbd05

File tree

10 files changed

+76
-14
lines changed

10 files changed

+76
-14
lines changed

lib/orb/internal/type/base_model.rb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@ def dump(value)
258258
return super
259259
end
260260

261+
is_param = singleton_class <= Orb::Internal::Type::RequestParameters::Converter
261262
acc = {}
262263

263264
coerced.each do |key, val|
@@ -266,19 +267,21 @@ def dump(value)
266267
in nil
267268
acc.store(name, super(val))
268269
else
269-
mode, api_name, type_fn = field.fetch_values(:mode, :api_name, :type_fn)
270+
mode, type_fn = field.fetch_values(:mode, :type_fn)
270271
case mode
271272
in :coerce
272273
next
273274
else
274275
target = type_fn.call
276+
api_name = is_param ? name : field.fetch(:api_name)
275277
acc.store(api_name, Orb::Internal::Type::Converter.dump(target, val))
276278
end
277279
end
278280
end
279281

280-
known_fields.each_value do |field|
281-
mode, api_name, const = field.fetch_values(:mode, :api_name, :const)
282+
known_fields.each do |name, field|
283+
mode, const = field.fetch_values(:mode, :const)
284+
api_name = is_param ? name : field.fetch(:api_name)
282285
next if mode == :coerce || acc.key?(api_name) || const == Orb::Internal::OMIT
283286
acc.store(api_name, const)
284287
end

lib/orb/resources/alerts.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,12 @@ def list(params = {})
7777
@client.request(
7878
method: :get,
7979
path: "alerts",
80-
query: parsed,
80+
query: parsed.transform_keys(
81+
created_at_gt: :"created_at[gt]",
82+
created_at_gte: :"created_at[gte]",
83+
created_at_lt: :"created_at[lt]",
84+
created_at_lte: :"created_at[lte]"
85+
),
8186
page: Orb::Internal::Page,
8287
model: Orb::Models::Alert,
8388
options: options

lib/orb/resources/credit_notes.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,12 @@ def list(params = {})
4949
@client.request(
5050
method: :get,
5151
path: "credit_notes",
52-
query: parsed,
52+
query: parsed.transform_keys(
53+
created_at_gt: :"created_at[gt]",
54+
created_at_gte: :"created_at[gte]",
55+
created_at_lt: :"created_at[lt]",
56+
created_at_lte: :"created_at[lte]"
57+
),
5358
page: Orb::Internal::Page,
5459
model: Orb::Models::CreditNote,
5560
options: options

lib/orb/resources/customers.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,12 @@ def list(params = {})
128128
@client.request(
129129
method: :get,
130130
path: "customers",
131-
query: parsed,
131+
query: parsed.transform_keys(
132+
created_at_gt: :"created_at[gt]",
133+
created_at_gte: :"created_at[gte]",
134+
created_at_lt: :"created_at[lt]",
135+
created_at_lte: :"created_at[lte]"
136+
),
132137
page: Orb::Internal::Page,
133138
model: Orb::Models::Customer,
134139
options: options

lib/orb/resources/customers/balance_transactions.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,12 @@ def list(customer_id, params = {})
7777
@client.request(
7878
method: :get,
7979
path: ["customers/%1$s/balance_transactions", customer_id],
80-
query: parsed,
80+
query: parsed.transform_keys(
81+
operation_time_gt: :"operation_time[gt]",
82+
operation_time_gte: :"operation_time[gte]",
83+
operation_time_lt: :"operation_time[lt]",
84+
operation_time_lte: :"operation_time[lte]"
85+
),
8186
page: Orb::Internal::Page,
8287
model: Orb::Models::Customers::BalanceTransactionListResponse,
8388
options: options

lib/orb/resources/customers/credits/ledger.rb

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,12 @@ def list(customer_id, params = {})
110110
@client.request(
111111
method: :get,
112112
path: ["customers/%1$s/credits/ledger", customer_id],
113-
query: parsed,
113+
query: parsed.transform_keys(
114+
created_at_gt: :"created_at[gt]",
115+
created_at_gte: :"created_at[gte]",
116+
created_at_lt: :"created_at[lt]",
117+
created_at_lte: :"created_at[lte]"
118+
),
114119
page: Orb::Internal::Page,
115120
model: Orb::Models::Customers::Credits::LedgerListResponse,
116121
options: options
@@ -507,7 +512,12 @@ def list_by_external_id(external_customer_id, params = {})
507512
@client.request(
508513
method: :get,
509514
path: ["customers/external_customer_id/%1$s/credits/ledger", external_customer_id],
510-
query: parsed,
515+
query: parsed.transform_keys(
516+
created_at_gt: :"created_at[gt]",
517+
created_at_gte: :"created_at[gte]",
518+
created_at_lt: :"created_at[lt]",
519+
created_at_lte: :"created_at[lte]"
520+
),
511521
page: Orb::Internal::Page,
512522
model: Orb::Models::Customers::Credits::LedgerListByExternalIDResponse,
513523
options: options

lib/orb/resources/invoices.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,16 @@ def list(params = {})
104104
@client.request(
105105
method: :get,
106106
path: "invoices",
107-
query: parsed,
107+
query: parsed.transform_keys(
108+
amount_gt: :"amount[gt]",
109+
amount_lt: :"amount[lt]",
110+
due_date_gt: :"due_date[gt]",
111+
due_date_lt: :"due_date[lt]",
112+
invoice_date_gt: :"invoice_date[gt]",
113+
invoice_date_gte: :"invoice_date[gte]",
114+
invoice_date_lt: :"invoice_date[lt]",
115+
invoice_date_lte: :"invoice_date[lte]"
116+
),
108117
page: Orb::Internal::Page,
109118
model: Orb::Models::Invoice,
110119
options: options

lib/orb/resources/metrics.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,12 @@ def list(params = {})
7676
@client.request(
7777
method: :get,
7878
path: "metrics",
79-
query: parsed,
79+
query: parsed.transform_keys(
80+
created_at_gt: :"created_at[gt]",
81+
created_at_gte: :"created_at[gte]",
82+
created_at_lt: :"created_at[lt]",
83+
created_at_lte: :"created_at[lte]"
84+
),
8085
page: Orb::Internal::Page,
8186
model: Orb::Models::BillableMetric,
8287
options: options

lib/orb/resources/plans.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,12 @@ def list(params = {})
7979
@client.request(
8080
method: :get,
8181
path: "plans",
82-
query: parsed,
82+
query: parsed.transform_keys(
83+
created_at_gt: :"created_at[gt]",
84+
created_at_gte: :"created_at[gte]",
85+
created_at_lt: :"created_at[lt]",
86+
created_at_lte: :"created_at[lte]"
87+
),
8388
page: Orb::Internal::Page,
8489
model: Orb::Models::Plan,
8590
options: options

lib/orb/resources/subscriptions.rb

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,12 @@ def list(params = {})
368368
@client.request(
369369
method: :get,
370370
path: "subscriptions",
371-
query: parsed,
371+
query: parsed.transform_keys(
372+
created_at_gt: :"created_at[gt]",
373+
created_at_gte: :"created_at[gte]",
374+
created_at_lt: :"created_at[lt]",
375+
created_at_lte: :"created_at[lte]"
376+
),
372377
page: Orb::Internal::Page,
373378
model: Orb::Models::Subscription,
374379
options: options
@@ -537,7 +542,12 @@ def fetch_schedule(subscription_id, params = {})
537542
@client.request(
538543
method: :get,
539544
path: ["subscriptions/%1$s/schedule", subscription_id],
540-
query: parsed,
545+
query: parsed.transform_keys(
546+
start_date_gt: :"start_date[gt]",
547+
start_date_gte: :"start_date[gte]",
548+
start_date_lt: :"start_date[lt]",
549+
start_date_lte: :"start_date[lte]"
550+
),
541551
page: Orb::Internal::Page,
542552
model: Orb::Models::SubscriptionFetchScheduleResponse,
543553
options: options

0 commit comments

Comments
 (0)