use BookStack\Facades\Activity as ActivityService;
use League\CommonMark\CommonMarkConverter;
-/**
- * Class CommentRepo.
- */
class CommentRepo
{
- /**
- * @var Comment
- */
- protected $comment;
-
- public function __construct(Comment $comment)
- {
- $this->comment = $comment;
- }
-
/**
* Get a comment by ID.
*/
public function getById(int $id): Comment
{
- return $this->comment->newQuery()->findOrFail($id);
+ return Comment::query()->findOrFail($id);
}
/**
public function create(Entity $entity, string $text, ?int $parent_id): Comment
{
$userId = user()->id;
- $comment = $this->comment->newInstance();
+ $comment = new Comment();
$comment->text = $text;
$comment->html = $this->commentToHtml($text);
$comment->parent_id = $parent_id;
$entity->comments()->save($comment);
+ ActivityService::add(ActivityType::COMMENT_CREATE, $comment);
ActivityService::add(ActivityType::COMMENTED_ON, $entity);
return $comment;
$comment->html = $this->commentToHtml($text);
$comment->save();
+ ActivityService::add(ActivityType::COMMENT_UPDATE, $comment);
+
return $comment;
}
public function delete(Comment $comment): void
{
$comment->delete();
+
+ ActivityService::add(ActivityType::COMMENT_DELETE, $comment);
}
/**
'allow_unsafe_links' => false,
]);
- return $converter->convertToHtml($commentText);
+ return $converter->convert($commentText);
}
/**
*/
protected function getNextLocalId(Entity $entity): int
{
- /** @var Comment $comment */
- $comment = $entity->comments(false)->orderBy('local_id', 'desc')->first();
+ $currentMaxId = $entity->comments()->max('local_id');
- return ($comment->local_id ?? 0) + 1;
+ return $currentMaxId + 1;
}
}