Use Doctrine to create new User Flags
[MAILPOET-2219]
This commit is contained in:
@ -2,15 +2,21 @@
|
|||||||
|
|
||||||
namespace MailPoet\Features;
|
namespace MailPoet\Features;
|
||||||
|
|
||||||
use MailPoet\Models\FeatureFlag;
|
use MailPoet\Entities\FeatureFlagEntity;
|
||||||
|
use MailPoet\Settings\FeatureFlagsRepository;
|
||||||
use function MailPoet\Util\array_column;
|
use function MailPoet\Util\array_column;
|
||||||
|
|
||||||
class FeatureFlagsController {
|
class FeatureFlagsController {
|
||||||
|
|
||||||
/** @var FeaturesController */
|
/** @var FeaturesController */
|
||||||
private $features_controller;
|
private $features_controller;
|
||||||
|
|
||||||
function __construct(FeaturesController $features_controller) {
|
/** @var FeatureFlagsRepository */
|
||||||
|
private $feature_flags_repository;
|
||||||
|
|
||||||
|
function __construct(FeaturesController $features_controller, FeatureFlagsRepository $feature_flags_repository) {
|
||||||
$this->features_controller = $features_controller;
|
$this->features_controller = $features_controller;
|
||||||
|
$this->feature_flags_repository = $feature_flags_repository;
|
||||||
}
|
}
|
||||||
|
|
||||||
function set($name, $value) {
|
function set($name, $value) {
|
||||||
@ -18,12 +24,18 @@ class FeatureFlagsController {
|
|||||||
throw new \RuntimeException("Feature '$name' does not exist'");
|
throw new \RuntimeException("Feature '$name' does not exist'");
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = FeatureFlag::createOrUpdate([
|
$feature_flag = $this->feature_flags_repository->findOneBy([
|
||||||
'name' => $name,
|
'name' => $name,
|
||||||
'value' => $value ,
|
|
||||||
]);
|
]);
|
||||||
|
if (!$feature_flag) {
|
||||||
|
$feature_flag = new FeatureFlagEntity($name);
|
||||||
|
$this->feature_flags_repository->persist($feature_flag);
|
||||||
|
}
|
||||||
|
$feature_flag->setValue($value);
|
||||||
|
|
||||||
if ($result->getErrors()) {
|
try {
|
||||||
|
$this->feature_flags_repository->flush();
|
||||||
|
} catch (\Exception $e) {
|
||||||
throw new \RuntimeException("Error when saving feature '$name''");
|
throw new \RuntimeException("Error when saving feature '$name''");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user