44 lines
927 B
PHP
44 lines
927 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Forum\Topic\Models;
|
|
|
|
use Phalcon\Mvc\Model\Resultset;
|
|
use Ramsey\Uuid\UuidInterface;
|
|
|
|
final class TopicWriteRepository
|
|
{
|
|
public function get($id): Topic
|
|
{
|
|
$topic = Topic::findFirst("id = '$id'");
|
|
|
|
if ($topic === false) {
|
|
throw new TopicNotFound();
|
|
}
|
|
|
|
return $topic;
|
|
}
|
|
|
|
public function getByCategoryIdAndSlug(UuidInterface $categoryId, string $slug): Topic
|
|
{
|
|
$topic = Topic::findFirst("category_id = '$categoryId' and slug = '$slug'");
|
|
|
|
if ($topic === false) {
|
|
throw new TopicNotFound();
|
|
}
|
|
|
|
return $topic;
|
|
}
|
|
|
|
public function findByCategoryId($categoryId): Resultset
|
|
{
|
|
return Topic::find([
|
|
'conditions' => 'category_id = :category_id:',
|
|
'bind' => [
|
|
'category_id' => $categoryId,
|
|
],
|
|
]);
|
|
}
|
|
}
|