Fix Formatters::valueToString when input is an array

Signed-off-by: davidarendsen <davidarendsen@hey.com>
This commit is contained in:
davidarendsen 2022-08-11 13:36:57 +00:00
commit 009b2f2d53
5 changed files with 17 additions and 15 deletions

View file

@ -14,23 +14,25 @@ class Formatters {
{ {
return $value ? 'true' : 'false'; return $value ? 'true' : 'false';
} }
elseif(is_array($value))
{
return self::toFluxArrayString($value);
}
return $value; return $value;
} }
public static function toFluxArrayString(array $array): string public static function toFluxArrayString(array $array): string
{
$array = array_map(function($column) {
return self::valueToString($column);
}, $array);
return implode(', ', $array);
}
public static function toFluxAssociativeArrayString(array $array): string
{ {
array_walk($array, function(&$value, $key) { array_walk($array, function(&$value, $key) {
$value = $key . ': ' . self::valueToString($value); if(is_string($key))
{
$value = $key . ': ' . self::valueToString($value);
}
else
{
$value = self::valueToString($value);
}
}); });
return implode(', ', $array); return implode(', ', $array);

View file

@ -18,7 +18,7 @@ class From extends Base {
public function __toString() public function __toString()
{ {
return 'from(' . Formatters::toFluxAssociativeArrayString($this->settings) . ') '; return 'from(' . Formatters::toFluxArrayString($this->settings) . ') ';
} }
} }

View file

@ -18,7 +18,7 @@ class Range extends Base {
public function __toString() public function __toString()
{ {
return '|> range(' . Formatters::toFluxAssociativeArrayString($this->settings) . ') '; return '|> range(' . Formatters::toFluxArrayString($this->settings) . ') ';
} }
} }

View file

@ -25,7 +25,7 @@ class Reduce extends Base {
public function __toString() public function __toString()
{ {
return '|> reduce(fn: (r, accumulator) => ({' . implode(', ', $this->formatSettings($this->settings)) . '}), ' . return '|> reduce(fn: (r, accumulator) => ({' . implode(', ', $this->formatSettings($this->settings)) . '}), ' .
'identity: {' . Formatters::toFluxAssociativeArrayString($this->identity) . '}) '; 'identity: {' . Formatters::toFluxArrayString($this->identity) . '}) ';
} }
protected function formatSettings(array $settings) protected function formatSettings(array $settings)

View file

@ -15,7 +15,7 @@ final class QueryBuilderTest extends TestCase {
$queryBuilder = new QueryBuilder(); $queryBuilder = new QueryBuilder();
$queryBuilder->from($bucket) $queryBuilder->from($bucket)
->fromMeasurement($measurement) ->fromMeasurement($measurement)
->addRangeStart($range); ->addRangeStart($range);
if($keyValue) if($keyValue)
{ {
@ -92,7 +92,7 @@ final class QueryBuilderTest extends TestCase {
$queryBuilder = new QueryBuilder(); $queryBuilder = new QueryBuilder();
$queryBuilder->fromBucket('test_bucket') $queryBuilder->fromBucket('test_bucket')
->fromMeasurement('test_measurement') ->fromMeasurement('test_measurement')
->addRangeStart('-3h') ->addRangeStart('-3h')
->addFilter(KeyValue::setEqualTo('_field', 'username')) ->addFilter(KeyValue::setEqualTo('_field', 'username'))
->addMap('r with name: r.user') ->addMap('r with name: r.user')
->addGroup(['_field', 'ip']) ->addGroup(['_field', 'ip'])