Skip to content

Commit f495bbf

Browse files
committed
test: decouple request parameter validation
1 parent e4e4309 commit f495bbf

18 files changed

Lines changed: 201 additions & 104 deletions

‎codegen/layouts/partials/client-method.hbs‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
{{/if}}
1111
def {{name}}{{#if hasSignature}}({{signatureParams}}){{/if}}
1212
{{#if requiresAtLeastOneParameter}}
13-
if {{#each atLeastOneParameterNames}}{{this}}.nil?{{#unless @last}} && {{/unless}}{{/each}}
14-
raise TypeError, "At least one parameter is required for {{path}}"
15-
end
13+
Seam::RequestParameters.require_at_least_one(
14+
"{{path}}",
15+
{{bodyParams}},
16+
[{{#each atLeastOneParameterNames}}:{{this}}{{#unless @last}}, {{/unless}}{{/each}}]
17+
)
1618

1719
{{/if}} {{#if usesRes}}res = {{/if}}@client.{{httpMethod}}("{{path}}"{{#if hasParams}}, {{bodyParams}}.compact{{/if}})
1820
{{#if isResource}}

‎lib/seam.rb‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
require_relative "seam/errors"
44
require_relative "seam/null"
5+
require_relative "seam/request_parameters"
56
require_relative "seam/url_search_params"
67
require_relative "seam/strict_url_search_params_serializer"
78
require_relative "seam/http"

‎lib/seam/request_parameters.rb‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# frozen_string_literal: true
2+
3+
module Seam
4+
module RequestParameters
5+
def self.require_at_least_one(path, parameters, parameter_names)
6+
return if parameter_names.any? { |name| !parameters[name].nil? }
7+
8+
raise TypeError, "At least one parameter is required for #{path}"
9+
end
10+
end
11+
end

‎lib/seam/routes/access_codes.rb‎

Lines changed: 5 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎lib/seam/routes/access_codes_unmanaged.rb‎

Lines changed: 5 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎lib/seam/routes/access_grants.rb‎

Lines changed: 15 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎lib/seam/routes/access_methods.rb‎

Lines changed: 10 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎lib/seam/routes/acs_users.rb‎

Lines changed: 35 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎lib/seam/routes/client_sessions.rb‎

Lines changed: 5 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎lib/seam/routes/connected_accounts.rb‎

Lines changed: 5 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)