|
|
|
<?php
|
|
|
|
|
|
|
|
namespace core\services;
|
|
|
|
|
|
|
|
use core\entities\Settings;
|
|
|
|
use core\forms\SettingsForm;
|
|
|
|
use core\repositories\SettingsRepository;
|
|
|
|
|
|
|
|
class SettingsService
|
|
|
|
{
|
|
|
|
private $_repository;
|
|
|
|
|
|
|
|
public function __construct(SettingsRepository $repository)
|
|
|
|
{
|
|
|
|
$this->_repository = $repository;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function create(SettingsForm $form): Settings
|
|
|
|
{
|
|
|
|
$settings = Settings::create(
|
|
|
|
$form,
|
|
|
|
$form->type,
|
|
|
|
$form->section,
|
|
|
|
$form->key,
|
|
|
|
$form->active
|
|
|
|
);
|
|
|
|
$this->_repository->save($settings);
|
|
|
|
|
|
|
|
return $settings;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function edit($section, $key, SettingsForm $form): void
|
|
|
|
{
|
|
|
|
$settings = $this->_repository->get($section, $key);
|
|
|
|
$settings->edit(
|
|
|
|
$form,
|
|
|
|
$form->type,
|
|
|
|
$form->section,
|
|
|
|
$form->key,
|
|
|
|
$form->active
|
|
|
|
);
|
|
|
|
$this->_repository->save($settings);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function remove($section, $key): void
|
|
|
|
{
|
|
|
|
$settings = $this->_repository->get($section, $key);
|
|
|
|
$this->_repository->remove($settings);
|
|
|
|
}
|
|
|
|
}
|