Skip to content

Commit 5c234d0

Browse files
committed
feat: object params in js/ts sdks
1 parent 6497464 commit 5c234d0

File tree

2 files changed

+48
-3
lines changed

2 files changed

+48
-3
lines changed

example.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ function getSSLPage($url) {
3838
}
3939

4040
// Leave the platform you want uncommented
41-
// $platform = 'client';
42-
$platform = 'console';
41+
$platform = 'client';
42+
// $platform = 'console';
4343
// $platform = 'server';
4444

4545
$version = '1.7.x';

templates/web/src/services/template.ts.twig

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,52 @@ export class {{ service.name | caseUcfirst }} {
4444
{%~ endif %}
4545
{%~ endif %}
4646
*/
47+
{%~ if method.parameters.all|length > 0 %}
48+
{{ method.name | caseCamel }}{{ method.responseModel | getGenerics(spec) | raw }}(params: { {% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required or parameter.nullable %}?{% endif %}: {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %}, {% endif %}{% endfor %} {% if 'multipart/form-data' in method.consumes %}, onProgress?: (progress: UploadProgress) => {}{% endif %} }): {{ method | getReturn(spec) | raw }};
49+
{{ method.name | caseCamel }}{{ method.responseModel | getGenerics(spec) | raw }}({% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required or parameter.nullable %}?{% endif %}: {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, onProgress?: (progress: UploadProgress) => {}{% endif %}): {{ method | getReturn(spec) | raw }};
50+
{{ method.name | caseCamel }}{{ method.responseModel | getGenerics(spec) | raw }}(
51+
{% if method.parameters.all|length > 0 %}paramsOrFirst{% if not method.parameters.all[0].required or method.parameters.all[0].nullable %}?{% endif %}: { {% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required or parameter.nullable %}?{% endif %}: {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, onProgress?: (progress: UploadProgress) => {} {% endif %} } | {{ method.parameters.all[0] | getPropertyType(method) | raw }}{% if method.parameters.all|length > 1 %},
52+
...rest: [{% for parameter in method.parameters.all[1:] %}({{ parameter | getPropertyType(method) | raw }})?{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %},((progress: UploadProgress) => {})?{% endif %}]{% endif %}{% endif %}
53+
54+
): {{ method | getReturn(spec) | raw }} {
55+
{%~ if method.parameters.all|length > 0 %}
56+
let params: { {% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required or parameter.nullable %}?{% endif %}: {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %}, {% endif %}{% endfor %} };
57+
{%~ if 'multipart/form-data' in method.consumes %}
58+
let onProgress: ((progress: UploadProgress) => {});
59+
{%~ endif %}
60+
61+
if (typeof paramsOrFirst === 'object' && paramsOrFirst !== null && !Array.isArray(paramsOrFirst)
62+
{% if method.parameters.all|length > 0 %}&& ({% for parameter in method.parameters.all %}'{{ parameter.name | caseCamel | escapeKeyword }}' in paramsOrFirst{% if not loop.last %} || {% endif %}{% endfor %} || Object.keys(paramsOrFirst).length === 0){% endif %}) {
63+
params = paramsOrFirst as { {% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required or parameter.nullable %}?{% endif %}: {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %}, {% endif %}{% endfor %} };
64+
{%~ if 'multipart/form-data' in method.consumes %}
65+
onProgress = paramsOrFirst.onProgress as ((progress: UploadProgress) => {});
66+
{%~ endif %}
67+
} else {
68+
params = {
69+
{%~ for parameter in method.parameters.all %}
70+
{{ parameter.name | caseCamel | escapeKeyword }}: {% if loop.index0 == 0 %}paramsOrFirst{% else %}rest[{{ loop.index0 - 1 }}]{% endif %} as {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %},
71+
{% endif %}
72+
{%~ endfor %}
73+
74+
};
75+
{%~ if 'multipart/form-data' in method.consumes %}
76+
onProgress = rest[{{ method.parameters.all|length - 1 }}] as ((progress: UploadProgress) => {});
77+
{%~ endif %}
78+
}
79+
80+
{%~ for parameter in method.parameters.all %}
81+
const {{ parameter.name | caseCamel | escapeKeyword }} = params.{{ parameter.name | caseCamel | escapeKeyword }};
82+
{%~ endfor %}
83+
{%~ else %}
84+
{%~ if 'multipart/form-data' in method.consumes %}
85+
if (typeof paramsOrFirst === 'function') {
86+
onProgress = paramsOrFirst;
87+
}
88+
{%~ endif %}
89+
{%~ endif %}
90+
{%~ else %}
4791
{{ method.name | caseCamel }}{{ method.responseModel | getGenerics(spec) | raw }}({% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required or parameter.nullable %}?{% endif %}: {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, onProgress = (progress: UploadProgress) => {}{% endif %}): {{ method | getReturn(spec) | raw }} {
92+
{%~ endif %}
4893
{%~ for parameter in method.parameters.all %}
4994
{%~ if parameter.required %}
5095
if (typeof {{ parameter.name | caseCamel | escapeKeyword }} === 'undefined') {
@@ -119,4 +164,4 @@ export class {{ service.name | caseUcfirst }} {
119164

120165
{%~ endif %}
121166
{%~ endfor %}
122-
}
167+
}

0 commit comments

Comments
 (0)