Skip to content

Commit 490cd43

Browse files
authored
Merge pull request #198 from appwrite/fix-python-overall-improvements
fix(python): overall improvements
2 parents fc60f3e + 85bff6a commit 490cd43

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

templates/python/package/services/service.py.twig

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,45 @@
11
from ..service import Service
2-
2+
from ..exception import AppwriteException
33

44
class {{ service.name | caseUcfirst }}(Service):
55

66
def __init__(self, client):
77
super({{ service.name | caseUcfirst }}, self).__init__(client)
88
{% for method in service.methods %}
99

10-
def {{ method.name | caseSnake }}(self{% if method.parameters.all|length > 0 %}, {% endif %}{% for parameter in method.parameters.all %}{{ parameter.name | escapeKeyword | caseSnake }}{{ parameter | paramDefault }}{% if not loop.last %}, {% endif %}{% endfor %}):
10+
def {{ method.name | caseSnake }}(self{% if method.parameters.all|length > 0 %}, {% endif %}{% for parameter in method.parameters.all %}{{ parameter.name | escapeKeyword | caseSnake }}{% if not parameter.required %} = None{% endif %}{% if not loop.last %}, {% endif %}{% endfor %}):
1111
{% if method.title %}
1212
"""{{ method.title }}"""
1313

1414
{% endif %}
15+
{% for parameter in method.parameters.all %}
16+
{% if parameter.required %}
17+
if {{ parameter.name | escapeKeyword | caseSnake }} is None:
18+
raise {{spec.title | caseUcfirst}}Exception('Missing required parameter: "{{ parameter.name | caseSnake }}"')
19+
20+
{% endif %}
21+
{% endfor %}
1522
params = {}
1623
path = '{{ method.path }}'
1724
{% for parameter in method.parameters.path %}
1825
path = path.replace('{{ '{' }}{{ parameter.name | caseCamel }}{{ '}' }}', {{ parameter.name | escapeKeyword | caseSnake }})
1926
{% endfor %}
27+
2028
{% for parameter in method.parameters.query %}
21-
params['{{ parameter.name }}'] = {{ parameter.name | escapeKeyword | caseSnake }}
29+
if {{ parameter.name | escapeKeyword | caseSnake }} is not None:
30+
params['{{ parameter.name }}'] = {{ parameter.name | escapeKeyword | caseSnake }}
31+
2232
{% endfor %}
2333
{% for parameter in method.parameters.body %}
24-
params['{{ parameter.name }}'] = {{ parameter.name | escapeKeyword | caseSnake }}
34+
if {{ parameter.name | escapeKeyword | caseSnake }} is not None:
35+
params['{{ parameter.name }}'] = {{ parameter.name | escapeKeyword | caseSnake }}
36+
2537
{% endfor %}
2638
{% for parameter in method.parameters.formData %}
27-
params['{{ parameter.name }}'] = {{ parameter.name | escapeKeyword | caseSnake }}
28-
{% endfor %}
39+
if {{ parameter.name | escapeKeyword | caseSnake }} is not None:
40+
params['{{ parameter.name }}'] = {{ parameter.name | escapeKeyword | caseSnake }}
2941

42+
{% endfor %}
3043
return self.client.call('{{ method.method | caseLower }}', path, {
3144
{% for parameter in method.parameters.header %}
3245
'{{ parameter.name }}': {{ parameter.name | escapeKeyword | caseSnake }},

0 commit comments

Comments
 (0)