diff --git a/src/Client.php b/src/Client.php index ec8aeea..4c85ffe 100644 --- a/src/Client.php +++ b/src/Client.php @@ -106,13 +106,29 @@ private function getParameters(QueryResult $queryResult): array $queryParameters = $queryResult->getParameters(); if (null !== $queryParameters) { foreach ($queryParameters->getFields() as $name => $field) { - $parameters[$name] = $field->getStringValue(); + $parameters[$name] = $this->mapToTypeValue($field); } } return $parameters; } + private function mapToTypeValue($field) { + if ($field->hasListValue()) { + return json_decode($field->serializeToJsonString()); + } + + if ($field->hasNumberValue()) { + return $field->getNumberValue(); + } + + if ($field->hasBoolValue()) { + return $field->getBoolValue(); + } + + return $field->getStringValue(); + } + /** * @param QueryResult|null $queryResult * @return array @@ -137,4 +153,4 @@ private function getContexts(QueryResult $queryResult): array } return $contexts; } -} \ No newline at end of file +}