Skip to content

Commit 4fa584a

Browse files
feat: support query, header, and body params that have identical names (#118)
1 parent 469c82c commit 4fa584a

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

lib/finch_api/internal/type/base_model.rb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ def dump(value)
265265
return super
266266
end
267267

268+
is_param = singleton_class <= FinchAPI::Internal::Type::RequestParameters::Converter
268269
acc = {}
269270

270271
coerced.each do |key, val|
@@ -273,19 +274,21 @@ def dump(value)
273274
in nil
274275
acc.store(name, super(val))
275276
else
276-
mode, api_name, type_fn = field.fetch_values(:mode, :api_name, :type_fn)
277+
mode, type_fn = field.fetch_values(:mode, :type_fn)
277278
case mode
278279
in :coerce
279280
next
280281
else
281282
target = type_fn.call
283+
api_name = is_param ? name : field.fetch(:api_name)
282284
acc.store(api_name, FinchAPI::Internal::Type::Converter.dump(target, val))
283285
end
284286
end
285287
end
286288

287-
known_fields.each_value do |field|
288-
mode, api_name, const = field.fetch_values(:mode, :api_name, :const)
289+
known_fields.each do |name, field|
290+
mode, const = field.fetch_values(:mode, :const)
291+
api_name = is_param ? name : field.fetch(:api_name)
289292
next if mode == :coerce || acc.key?(api_name) || const == FinchAPI::Internal::OMIT
290293
acc.store(api_name, const)
291294
end

lib/finch_api/resources/hris/company/pay_statement_item/rules.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def update(rule_id, params = {})
5555
@client.request(
5656
method: :put,
5757
path: ["employer/pay-statement-item/rule/%1$s", rule_id],
58-
body: parsed,
58+
body: parsed.transform_keys(optional_property: :optionalProperty),
5959
model: FinchAPI::Models::HRIS::Company::PayStatementItem::RuleUpdateResponse,
6060
options: options
6161
)

lib/finch_api/resources/request_forwarding.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def forward(params)
2525
@client.request(
2626
method: :post,
2727
path: "forward",
28-
body: parsed,
28+
body: parsed.transform_keys(method_: :method),
2929
model: FinchAPI::Models::RequestForwardingForwardResponse,
3030
options: options
3131
)

0 commit comments

Comments
 (0)