Skip to content

Commit 31d854a

Browse files
authored
Merge pull request #196 from appwrite/fix-php-overall-improvements
fix(php): overall improvements
2 parents c32aa52 + 94d599d commit 31d854a

File tree

1 file changed

+26
-8
lines changed

1 file changed

+26
-8
lines changed

templates/php/src/Services/Service.php.twig

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
namespace {{ spec.title | caseUcfirst }}\Services;
44
5-
use Exception;
5+
use {{ spec.title | caseUcfirst }}\{{spec.title | caseUcfirst}}Exception;
66
use {{ spec.title | caseUcfirst }}\Client;
77
use {{ spec.title | caseUcfirst }}\Service;
88
@@ -19,24 +19,42 @@ class {{ service.name | caseUcfirst }} extends Service
1919
{% for parameter in method.parameters.all %}
2020
* @param {{ parameter.type | typeName }}${{ parameter.name | caseCamel }}
2121
{% endfor %}
22-
* @throws Exception
23-
* @return array
22+
* @throws {{spec.title | caseUcfirst}}Exception
23+
* @return {% if method.type == 'location' %}string{% else %}array{% endif %}
24+
2425
*/
25-
public function {{ method.name | caseCamel }}({% for parameter in method.parameters.all %}{{ parameter.type | typeName }}${{ parameter.name | caseCamel }}{{ parameter | paramDefault }}{% if not loop.last %}, {% endif %}{% endfor %}):array
26+
public function {{ method.name | caseCamel }}({% for parameter in method.parameters.all %}{{ parameter.type | typeName }}${{ parameter.name | caseCamel }}{% if not parameter.required %} = null{% endif %}{% if not loop.last %}, {% endif %}{% endfor %}): {% if method.type == 'location' %}string{% else %}array{% endif %}
27+
2628
{
29+
{% for parameter in method.parameters.all %}
30+
{% if parameter.required %}
31+
if (empty(${{ parameter.name | caseCamel }})) {
32+
throw new {{spec.title | caseUcfirst}}Exception('Missing required parameter: "{{ parameter.name | caseCamel }}"');
33+
}
34+
35+
{% endif %}
36+
{% endfor %}
2737
$path = str_replace([{% for parameter in method.parameters.path %}'{{ '{' }}{{ parameter.name | caseCamel }}{{ '}' }}'{% if not loop.last %}, {% endif %}{% endfor %}], [{% for parameter in method.parameters.path %}${{ parameter.name | caseCamel }}{% if not loop.last %}, {% endif %}{% endfor %}], '{{ method.path }}');
2838
$params = [];
2939
3040
{% for parameter in method.parameters.query %}
31-
$params['{{ parameter.name }}'] = ${{ parameter.name | caseCamel }};
41+
if (!is_null(${{ parameter.name | caseCamel }})) {
42+
$params['{{ parameter.name }}'] = ${{ parameter.name | caseCamel }};
43+
}
44+
3245
{% endfor %}
3346
{% for parameter in method.parameters.body %}
34-
$params['{{ parameter.name }}'] = ${{ parameter.name | caseCamel }};
47+
if (!is_null(${{ parameter.name | caseCamel }})) {
48+
$params['{{ parameter.name }}'] = ${{ parameter.name | caseCamel }};
49+
}
50+
3551
{% endfor %}
3652
{% for parameter in method.parameters.formData %}
37-
$params['{{ parameter.name }}'] = ${{ parameter.name | caseCamel }};
38-
{% endfor %}
53+
if (!is_null(${{ parameter.name | caseCamel }})) {
54+
$params['{{ parameter.name }}'] = ${{ parameter.name | caseCamel }};
55+
}
3956
57+
{% endfor %}
4058
return $this->client->call(Client::METHOD_{{ method.method | caseUpper }}, $path, [
4159
{% for parameter in method.parameters.header %}
4260
'{{ parameter.name }}' => ${{ parameter.name | caseCamel }},

0 commit comments

Comments
 (0)