Skip to content

Commit 7551778

Browse files
committed
Service-level params for Node
1 parent b4fb01a commit 7551778

File tree

2 files changed

+46
-13
lines changed

2 files changed

+46
-13
lines changed

templates/node/lib/services/service.js.twig

Lines changed: 40 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,39 @@ const { promisify } = require('util');
77
const fs = require('fs');
88

99
class {{ service.name | caseUcfirst }} extends Service {
10+
{% if service.globalParams | length %}
11+
{% for parameter in service.globalParams %}
12+
{{ parameter.name | caseCamel | escapeKeyword }};
13+
/**
14+
* Set {{ parameter.name }}.
15+
*
16+
* @param {{ '{' }}{{ parameter.type | typeName }}{{ '}' }} {{ parameter.name | caseCamel | escapeKeyword }}
17+
*
18+
* @return void
19+
*/
20+
set{{ parameter.name | caseUcfirst | escapeKeyword }}({{ parameter.name | caseCamel | escapeKeyword }})
21+
{
22+
this.{{ parameter.name | caseCamel | escapeKeyword }} = {{ parameter.name | caseCamel | escapeKeyword }};
23+
}
24+
/**
25+
* Get {{ parameter.name }}.
26+
*
27+
* @return {{ parameter.type | typeName }}
28+
*/
29+
get{{ parameter.name | caseUcfirst | escapeKeyword }}({{ parameter.name | caseCamel | escapeKeyword }})
30+
{
31+
return this.{{ parameter.name | caseCamel | escapeKeyword }};
32+
}
33+
{% endfor %}
34+
constructor(client, {% for parameter in service.globalParams %} {{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required %} = null{% endif %}{% if not loop.last %}, {% endif %}{% endfor %})
35+
{
36+
super(client);
37+
38+
{% for parameter in service.globalParams %}
39+
this.{{ parameter.name | caseCamel | escapeKeyword }} = {{ parameter.name | caseCamel | escapeKeyword }};
40+
{% endfor %}
41+
}
42+
{% endif %}
1043
{% for method in service.methods %}
1144

1245
/**
@@ -16,14 +49,14 @@ class {{ service.name | caseUcfirst }} extends Service {
1649
{{ method.description|comment1 }}
1750
*
1851
{% endif %}
19-
{% for parameter in method.parameters.all %}
52+
{% for parameter in method.parameters.all | filter((param) => not param.isGlobal) %}
2053
* @param {{ '{' }}{{ parameter.type | typeName }}{{ '}' }} {{ parameter.name | caseCamel | escapeKeyword }}
2154
{% endfor %}
2255
* @throws {{ '{' }}{{ spec.title | caseUcfirst}}Exception}
2356
* @returns {Promise}
2457
*/
25-
async {{ method.name | caseCamel }}({% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, onProgress = () => {}{% endif %}) {
26-
{% for parameter in method.parameters.all %}
58+
async {{ method.name | caseCamel }}({% for parameter in method.parameters.all | filter((param) => not param.isGlobal) %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, onProgress = () => {}{% endif %}) {
59+
{% for parameter in method.parameters.all | filter((param) => not param.isGlobal) %}
2760
{% if parameter.required %}
2861
if (typeof {{ parameter.name | caseCamel | escapeKeyword }} === 'undefined') {
2962
throw new {{spec.title | caseUcfirst}}Exception('Missing required parameter: "{{ parameter.name | caseCamel | escapeKeyword }}"');
@@ -35,14 +68,14 @@ class {{ service.name | caseUcfirst }} extends Service {
3568
let payload = {};
3669
{% for parameter in method.parameters.query %}
3770

38-
if (typeof {{ parameter.name | caseCamel | escapeKeyword }} !== 'undefined') {
39-
payload['{{ parameter.name }}'] = {{ parameter.name | caseCamel | escapeKeyword }}{% if method.consumes[0] == "multipart/form-data" and ( parameter.type != "string" and parameter.type != "array" and parameter.type != "file" ) %}.toString(){% endif %};
71+
if (typeof {% if parameter.isGlobal %}this.{% endif %}{{ parameter.name | caseCamel | escapeKeyword }} !== 'undefined') {
72+
payload['{{ parameter.name }}'] = {% if parameter.isGlobal %}this.{% endif %}{{ parameter.name | caseCamel | escapeKeyword }}{% if method.consumes[0] == "multipart/form-data" and ( parameter.type != "string" and parameter.type != "array" and parameter.type != "file" ) %}.toString(){% endif %};
4073
}
4174
{% endfor %}
4275
{% for parameter in method.parameters.body %}
4376

44-
if (typeof {{ parameter.name | caseCamel | escapeKeyword }} !== 'undefined') {
45-
payload['{{ parameter.name }}'] = {{ parameter.name | caseCamel | escapeKeyword}}{% if method.consumes[0] == "multipart/form-data" and ( parameter.type != "string" and parameter.type != "array" and parameter.type != "file" ) %}.toString(){% endif %};
77+
if (typeof {% if parameter.isGlobal %}this.{% endif %}{{ parameter.name | caseCamel | escapeKeyword }} !== 'undefined') {
78+
payload['{{ parameter.name }}'] = {% if parameter.isGlobal %}this.{% endif %}{{ parameter.name | caseCamel | escapeKeyword}}{% if method.consumes[0] == "multipart/form-data" and ( parameter.type != "string" and parameter.type != "array" and parameter.type != "file" ) %}.toString(){% endif %};
4679
}
4780
{% endfor %}
4881

tests/languages/node/test.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ async function start() {
99
// Init SDK
1010
let client = new appwrite.Client();
1111

12-
let foo = new appwrite.Foo(client);
12+
let foo = new appwrite.Foo(client, 'string');
1313
let bar = new appwrite.Bar(client);
1414
let general = new appwrite.General(client);
1515

@@ -19,19 +19,19 @@ async function start() {
1919

2020
// Foo
2121

22-
response = await foo.get('string', 123, ['string in array']);
22+
response = await foo.get(123, ['string in array']);
2323
console.log(response.result);
2424

25-
response = await foo.post('string', 123, ['string in array']);
25+
response = await foo.post(123, ['string in array']);
2626
console.log(response.result);
2727

28-
response = await foo.put('string', 123, ['string in array']);
28+
response = await foo.put(123, ['string in array']);
2929
console.log(response.result);
3030

31-
response = await foo.patch('string', 123, ['string in array']);
31+
response = await foo.patch(123, ['string in array']);
3232
console.log(response.result);
3333

34-
response = await foo.delete('string', 123, ['string in array']);
34+
response = await foo.delete(123, ['string in array']);
3535
console.log(response.result);
3636

3737
// Bar

0 commit comments

Comments
 (0)