Skip to content

Commit 17075c7

Browse files
committed
refactor ruby templates
1 parent e5949c5 commit 17075c7

File tree

4 files changed

+60
-56
lines changed

4 files changed

+60
-56
lines changed

templates/ruby/base/params.twig

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{% if method.parameters.all | length %}
2+
{% for parameter in method.parameters.all %}
3+
{% if parameter.required %}
4+
if {% if parameter.isGlobal %}@{% endif %}{{ parameter.name | caseSnake | escapeKeyword }}.nil?
5+
raise {{spec.title | caseUcfirst}}::Exception.new('Missing required parameter: "{{ parameter.name | caseCamel | escapeKeyword }}"')
6+
end
7+
8+
{% endif %}
9+
{% endfor %}
10+
{% for parameter in method.parameters.path %}
11+
.gsub('{{ '{' }}{{ parameter.name }}{{ '}' }}', {% if parameter.isGlobal %}@{% endif %}{{ parameter.name | caseSnake | escapeKeyword }})
12+
{% endfor %}
13+
14+
params = {
15+
{% for parameter in method.parameters.query | merge(method.parameters.body) %}
16+
{{ parameter.name }}: {% if parameter.isGlobal %}@{% endif %}{{ parameter.name | caseSnake | escapeKeyword }},
17+
{% endfor %}
18+
}
19+
20+
headers = {
21+
{% for parameter in method.parameters.header %}
22+
"{{ parameter.name }}": {{ parameter.name | caseCamel | escapeKeyword }},
23+
{% endfor %}
24+
{% for key, header in method.headers %}
25+
"{{ key }}": '{{ header }}',
26+
{% endfor %}
27+
}
28+
{% endif %}

templates/ruby/base/requests/api.twig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@client.call(
2+
method: '{{ method.method | caseUpper }}',
3+
path: path,
4+
headers: headers,
5+
params: params,
6+
{% if method.responseModel and method.responseModel != 'any' %}
7+
response_type: Models::{{method.responseModel | caseUcfirst}}
8+
{% endif %}
9+
)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
id_param_name = {% if method.parameters.all | filter(p => p.isUploadID) | length > 0 %}{% for parameter in method.parameters.all | filter(parameter => parameter.isUploadID) %}"{{ parameter.name }}"{% endfor %}{% else %}nil{% endif %}
2+
3+
{% for parameter in method.parameters.all %}
4+
{% if parameter.type == 'file' %}
5+
param_name = '{{ parameter.name }}'
6+
7+
{% endif %}
8+
{% endfor %}
9+
@client.chunked_upload(
10+
path: path,
11+
headers: headers,
12+
params: params,
13+
param_name: param_name,
14+
id_param_name: id_param_name,
15+
on_progress: on_progress,
16+
{% if method.responseModel and method.responseModel != 'any' %}
17+
response_type: Models::{{method.responseModel | caseUcfirst}}
18+
{% endif %}
19+
)

templates/ruby/lib/container/services/service.rb.twig

Lines changed: 4 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -25,67 +25,15 @@ module {{spec.title | caseUcfirst}}
2525
#
2626
# @return [{{ method.responseModel | caseUcfirst }}]
2727
def {{ method.name | caseSnake }}({% for parameter in method.parameters.all | filter((param) => not param.isGlobal) %}{{ parameter.name | caseSnake | escapeKeyword }}:{% if not parameter.required %} nil{% endif %}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, on_progress: nil{% endif %})
28-
{% for parameter in method.parameters.all %}
29-
{% if parameter.required %}
30-
if {% if parameter.isGlobal %}@{% endif %}{{ parameter.name | caseSnake | escapeKeyword }}.nil?
31-
raise {{spec.title | caseUcfirst}}::Exception.new('Missing required parameter: "{{ parameter.name | caseCamel | escapeKeyword }}"')
32-
end
3328

34-
{% endif %}
35-
{% endfor %}
3629
path = '{{ method.path }}'
37-
{% for parameter in method.parameters.path %}
38-
.gsub('{{ '{' }}{{ parameter.name }}{{ '}' }}', {% if parameter.isGlobal %}@{% endif %}{{ parameter.name | caseSnake | escapeKeyword }})
39-
{% endfor %}
40-
41-
params = {
42-
{% for parameter in method.parameters.query | merge(method.parameters.body) %}
43-
{{ parameter.name }}: {% if parameter.isGlobal %}@{% endif %}{{ parameter.name | caseSnake | escapeKeyword }},
44-
{% endfor %}
45-
}
46-
47-
headers = {
48-
{% for parameter in method.parameters.header %}
49-
"{{ parameter.name }}": {{ parameter.name | caseCamel | escapeKeyword }},
50-
{% endfor %}
51-
{% for key, header in method.headers %}
52-
"{{ key }}": '{{ header }}',
53-
{% endfor %}
54-
}
55-
30+
{{ include('ruby/base/params.twig')}}
5631
{% if 'multipart/form-data' in method.consumes %}
57-
id_param_name = {% if method.parameters.all | filter(p => p.isUploadID) | length > 0 %}{% for parameter in method.parameters.all | filter(parameter => parameter.isUploadID) %}"{{ parameter.name }}"{% endfor %}{% else %}nil{% endif %}
58-
59-
{% for parameter in method.parameters.all %}
60-
{% if parameter.type == 'file' %}
61-
param_name = '{{ parameter.name }}'
62-
63-
{% endif %}
64-
{% endfor %}
65-
@client.chunked_upload(
66-
path: path,
67-
headers: headers,
68-
params: params,
69-
param_name: param_name,
70-
id_param_name: id_param_name,
71-
on_progress: on_progress,
72-
{% if method.responseModel and method.responseModel != 'any' %}
73-
response_type: Models::{{method.responseModel | caseUcfirst}}
74-
{% endif %}
75-
)
32+
{{ include('ruby/base/requests/file.twig')}}
7633
{% else %}
77-
@client.call(
78-
method: '{{ method.method | caseUpper }}',
79-
path: path,
80-
headers: headers,
81-
params: params,
82-
{% if method.responseModel and method.responseModel != 'any' %}
83-
response_type: Models::{{method.responseModel | caseUcfirst}}
84-
{% endif %}
85-
)
86-
{% endif %}
34+
{{ include('ruby/base/requests/api.twig')}}
8735
end
88-
36+
{% endif %}
8937
{% endfor %}
9038
end
9139
end

0 commit comments

Comments
 (0)