| | <?php |
| |
|
| | namespace Kanboard\Model; |
| |
|
| | use Kanboard\Core\Base; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | class CommentModel extends Base |
| | { |
| | |
| | |
| | |
| | |
| | |
| | const TABLE = 'comments'; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | const EVENT_UPDATE = 'comment.update'; |
| | const EVENT_CREATE = 'comment.create'; |
| | const EVENT_DELETE = 'comment.delete'; |
| | const EVENT_USER_MENTION = 'comment.user.mention'; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getProjectId($comment_id) |
| | { |
| | return $this->db |
| | ->table(self::TABLE) |
| | ->eq(self::TABLE.'.id', $comment_id) |
| | ->join(TaskModel::TABLE, 'id', 'task_id') |
| | ->findOneColumn(TaskModel::TABLE . '.project_id') ?: 0; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getAll($task_id, $sorting = 'ASC') |
| | { |
| | return $this->db |
| | ->table(self::TABLE) |
| | ->columns( |
| | self::TABLE.'.id', |
| | self::TABLE.'.date_creation', |
| | self::TABLE.'.date_modification', |
| | self::TABLE.'.task_id', |
| | self::TABLE.'.user_id', |
| | self::TABLE.'.comment', |
| | UserModel::TABLE.'.username', |
| | UserModel::TABLE.'.name', |
| | UserModel::TABLE.'.email', |
| | UserModel::TABLE.'.avatar_path' |
| | ) |
| | ->join(UserModel::TABLE, 'id', 'user_id') |
| | ->orderBy(self::TABLE.'.date_creation', $sorting) |
| | ->orderBy(self::TABLE.'.id', $sorting) |
| | ->eq(self::TABLE.'.task_id', $task_id) |
| | ->findAll(); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getById($comment_id) |
| | { |
| | return $this->db |
| | ->table(self::TABLE) |
| | ->columns( |
| | self::TABLE.'.id', |
| | self::TABLE.'.task_id', |
| | self::TABLE.'.user_id', |
| | self::TABLE.'.date_creation', |
| | self::TABLE.'.date_modification', |
| | self::TABLE.'.comment', |
| | self::TABLE.'.reference', |
| | UserModel::TABLE.'.username', |
| | UserModel::TABLE.'.name', |
| | UserModel::TABLE.'.email', |
| | UserModel::TABLE.'.avatar_path' |
| | ) |
| | ->join(UserModel::TABLE, 'id', 'user_id') |
| | ->eq(self::TABLE.'.id', $comment_id) |
| | ->findOne(); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function count($task_id) |
| | { |
| | return $this->db |
| | ->table(self::TABLE) |
| | ->eq(self::TABLE.'.task_id', $task_id) |
| | ->count(); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function create(array $values) |
| | { |
| | $values['date_creation'] = time(); |
| | $values['date_modification'] = time(); |
| | $comment_id = $this->db->table(self::TABLE)->persist($values); |
| |
|
| | if ($comment_id !== false) { |
| | $this->queueManager->push($this->commentEventJob->withParams($comment_id, self::EVENT_CREATE)); |
| | } |
| |
|
| | return $comment_id; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function update(array $values) |
| | { |
| | $result = $this->db |
| | ->table(self::TABLE) |
| | ->eq('id', $values['id']) |
| | ->update(array('comment' => $values['comment'], 'date_modification' => time())); |
| |
|
| | if ($result) { |
| | $this->queueManager->push($this->commentEventJob->withParams($values['id'], self::EVENT_UPDATE)); |
| | } |
| |
|
| | return $result; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function remove($comment_id) |
| | { |
| | $this->commentEventJob->execute($comment_id, self::EVENT_DELETE); |
| | return $this->db->table(self::TABLE)->eq('id', $comment_id)->remove(); |
| | } |
| | } |
| |
|