From ae78997a90ba45e5a041cfcc92bce156c03d2200 Mon Sep 17 00:00:00 2001 From: Steven Date: Thu, 30 Sep 2021 23:29:19 -0700 Subject: [PATCH] Fix CLI encoding of JSON objects When setting a JSON object string at the CLI, it is considered a string and passed to the API as a string, even though it's expected as an object. This change ensures that JSON object strings are decoded into PHP arrays so that they are properly encoded when sent to the Appwrite API. --- templates/cli/app/service.php.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/cli/app/service.php.twig b/templates/cli/app/service.php.twig index 7908c6cf8..3daa509c1 100644 --- a/templates/cli/app/service.php.twig +++ b/templates/cli/app/service.php.twig @@ -83,7 +83,7 @@ $cli $cFile = new \CURLFile(${{ parameter.name | caseCamel | escapeKeyword }}, {% if method.packaging %} 'application/x-gzip' {% else %} 'image/png' {% endif %}, basename(${{ parameter.name | caseCamel | escapeKeyword }})); $params['{{ parameter.name }}'] = $cFile; {% else %} - $params['{{ parameter.name }}'] = {% if parameter.type == 'array' %}!is_array(${{ parameter.name | caseCamel | escapeKeyword }}) ? array(${{ parameter.name | caseCamel | escapeKeyword }}) : ${{ parameter.name | caseCamel | escapeKeyword }};{% elseif parameter.type == 'integer' %}(int)${{ parameter.name | caseCamel | escapeKeyword }};{% else %}${{ parameter.name | caseCamel | escapeKeyword }};{% endif %} + $params['{{ parameter.name }}'] = {% if parameter.type == 'array' %}!is_array(${{ parameter.name | caseCamel | escapeKeyword }}) ? array(${{ parameter.name | caseCamel | escapeKeyword }}) : ${{ parameter.name | caseCamel | escapeKeyword }};{% elseif parameter.type == 'integer' %}(int)${{ parameter.name | caseCamel | escapeKeyword }};{% elseif parameter.type == 'object' %}\json_decode(${{ parameter.name | caseCamel | escapeKeyword }});{% else %}${{ parameter.name | caseCamel | escapeKeyword }};{% endif %} {% endif %} {% endfor %}