refactor: use string-backed enum for variant selection

This commit is contained in:
2025-03-29 21:30:42 +01:00
parent 04acda6a7c
commit 41bdb8e47a
3 changed files with 26 additions and 16 deletions

View File

@ -6,4 +6,14 @@ namespace OCA\PrideFlags;
abstract class AppConstants {
public const APP_ID = 'pride_flags';
public enum Variants: string {
case PRIDE = "Pride";
case TRANS = "Trans Pride";
case PAN = "Pansexual Pride";
case BI = "Bisexual Pride";
case ASEXUAL = "Asexual Pride";
case LESBIAN = "Lesbian Pride";
case NONBINARY = "Non-binary Pride";
case NONE = "No customisation";
}
}

View File

@ -18,11 +18,16 @@ class AppSettings {
}
public function setStringSetting($userId, string $key, string $value): void {
$this->config->setUserValue(AppConstants::APP_ID, $userId, $key, $value);
// Check for valid Variant here
if (AppConstants\Variants::tryFrom($value) != null) {
$this->config->setUserValue(AppConstants::APP_ID, $userId, $key, $value);
}
}
public function setAppStringSetting(string $key, string $value): void {
$this->config->setAppValue(AppConstants::APP_ID, $key, $value);
if (AppConstants\Variants::tryFrom($value) != null) {
$this->config->setAppValue(AppConstants::APP_ID, $key, $value);
}
}
public function getAll($userId): array {