Skip to content

Commit

Permalink
new tests
Browse files Browse the repository at this point in the history
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
  • Loading branch information
ArtificialOwl committed Feb 6, 2024
1 parent 927a0f0 commit a1b6357
Show file tree
Hide file tree
Showing 3 changed files with 1,374 additions and 10 deletions.
15 changes: 8 additions & 7 deletions lib/private/AppConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -210,12 +210,17 @@ public function isLazy(string $app, string $key): bool {
* @return array<string, string> [configKey => configValue]
* @since 29.0.0
*/
public function getAllValues(string $app, string $key = '', bool $filtered = false): array {
$this->assertParams($app, $key);
public function getAllValues(string $app, string $prefix = '', bool $filtered = false): array {
$this->assertParams($app, $prefix);
// if we want to filter values, we need to get sensitivity
$this->loadConfigAll();
// array_merge() will remove numeric keys (here config keys), so addition arrays instead
$values = ($this->fastCache[$app] ?? []) + ($this->lazyCache[$app] ?? []);
$values = array_filter(
(($this->fastCache[$app] ?? []) + ($this->lazyCache[$app] ?? [])),
function (string $key) use ($prefix): bool {
return str_starts_with($key, $prefix); // filter values based on $prefix
}, ARRAY_FILTER_USE_KEY
);

if (!$filtered) {
return $values;
Expand Down Expand Up @@ -839,10 +844,6 @@ public function updateType(string $app, string $key, int $type = self::VALUE_MIX
$this->loadConfigAll();
$lazy = $this->isLazy($app, $key);

if (!$this->hasKey($app, $key, $lazy)) {
throw new AppConfigUnknownKeyException('Unknown config key');
}

// type can only be one type
if (!in_array($type, [self::VALUE_MIXED, self::VALUE_STRING, self::VALUE_INT, self::VALUE_FLOAT, self::VALUE_BOOL, self::VALUE_ARRAY])) {
throw new AppConfigIncorrectTypeException('Unknown value type');
Expand Down
6 changes: 3 additions & 3 deletions lib/public/IAppConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -137,13 +137,13 @@ public function isLazy(string $app, string $key): bool;
* **WARNING:** ignore lazy filtering, all config values are loaded from database
*
* @param string $app id of the app
* @param string $key config keys prefix to search, can be empty.
* @param string $prefix config keys prefix to search, can be empty.
* @param bool $filtered filter sensitive config values
*
* @return array<string, string> [configKey => configValue]
* @since 29.0.0
*/
public function getAllValues(string $app, string $key = '', bool $filtered = false): array;
public function getAllValues(string $app, string $prefix = '', bool $filtered = false): array;

/**
* List all apps storing a specific config key and its stored value.
Expand All @@ -152,7 +152,7 @@ public function getAllValues(string $app, string $key = '', bool $filtered = fal
* @param string $key config key
* @param bool $lazy search within lazy loaded config
*
* @return array<string, string> [appId => configValue]
* @return array<string, string|int|float|bool|array> [appId => configValue]
* @since 29.0.0
*/
public function searchValues(string $key, bool $lazy = false): array;
Expand Down
Loading

0 comments on commit a1b6357

Please sign in to comment.