. */ declare(strict_types=1); namespace FireflyIII\Support\Http\Api; use FireflyIII\Exceptions\FireflyException; /** * Trait CleansChartData */ trait CleansChartData { /** * Clean up given chart data array. Each entry is supposed to be a * "main" entry used in the V2 API chart endpoints. This loop makes sure * IDs are strings and other values are present (or missing). * * @throws FireflyException */ private function clean(array $data): array { $return = []; /** * @var mixed $index * @var array $array */ foreach ($data as $index => $array) { if (array_key_exists('currency_id', $array)) { $array['currency_id'] = (string) $array['currency_id']; } if (array_key_exists('native_currency_id', $array)) { $array['native_currency_id'] = (string) $array['native_currency_id']; } if (!array_key_exists('start', $array)) { throw new FireflyException(sprintf('Data-set "%s" is missing the "start"-variable.', $index)); } if (!array_key_exists('end', $array)) { throw new FireflyException(sprintf('Data-set "%s" is missing the "end"-variable.', $index)); } if (!array_key_exists('period', $array)) { throw new FireflyException(sprintf('Data-set "%s" is missing the "period"-variable.', $index)); } $return[] = $array; } return $return; } }