You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.4 KiB
61 lines
1.4 KiB
<?php |
|
|
|
namespace common\modules\forms\services; |
|
|
|
use common\modules\forms\entities\FormMessage; |
|
use common\modules\forms\repositories\FormMessageRepository; |
|
use yii\db\StaleObjectException; |
|
|
|
class FormMessageManageService |
|
{ |
|
private FormMessageRepository $repository; |
|
|
|
public function __construct(FormMessageRepository $repository) |
|
{ |
|
$this->repository = $repository; |
|
} |
|
|
|
public function create($form_id, $data): FormMessage |
|
{ |
|
$message = FormMessage::create( |
|
$form_id, |
|
$data |
|
); |
|
$this->repository->save($message); |
|
return $message; |
|
} |
|
|
|
public function edit($id, $form_id, $data): void |
|
{ |
|
$message = $this->repository->get($id); |
|
$message->edit( |
|
$form_id, |
|
$data |
|
); |
|
$this->repository->save($message); |
|
} |
|
|
|
public function setRead($id) |
|
{ |
|
$message = $this->repository->get($id); |
|
$message->new = FormMessage::STATUS_OLD; |
|
$this->repository->save($message); |
|
} |
|
|
|
public function setUnread($id) |
|
{ |
|
$message = $this->repository->get($id); |
|
$message->new = FormMessage::STATUS_NEW; |
|
$this->repository->save($message); |
|
} |
|
|
|
/** |
|
* @param $id |
|
* @throws StaleObjectException |
|
*/ |
|
public function remove($id): void |
|
{ |
|
$message = $this->repository->get($id); |
|
$this->repository->remove($message); |
|
} |
|
}
|
|
|