%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/rest/controllers/like/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/rest/controllers/like/LikeController.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2018 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\rest\controllers\like;
use humhub\modules\content\models\Content;
use humhub\modules\rest\components\BaseController;
use humhub\modules\rest\definitions\LikeDefinitions;
use humhub\modules\like\models\Like;
use Yii;
class LikeController extends BaseController
{
public function actionFindByObject()
{
$contentFilter = [
'object_model' => Yii::$app->request->get('model'),
'object_id' => (int)Yii::$app->request->get('pk'),
];
$content = Content::findOne($contentFilter);
if ($content === null) {
return $this->returnError(404, 'Content not found!');
}
if (!$content->canView()) {
return $this->returnError(403, 'You cannot view this content!');
}
$results = [];
$query = Like::find();
$query->andWhere($contentFilter);
$query->orderBy(['created_at' => SORT_DESC]);
$pagination = $this->handlePagination($query);
foreach ($query->all() as $like) {
$results[] = LikeDefinitions::getLike($like);
}
return $this->returnPagination($query, $pagination, $results);
}
public function actionView($id)
{
$like = Like::findOne(['id' => $id]);
if ($like === null) {
return $this->returnError(404, 'Like not found!');
}
if (!$like->canRead()) {
return $this->returnError(403, 'You cannot read this content!');
}
return LikeDefinitions::getLike($like);
}
public function actionDelete($id)
{
$like = Like::findOne(['id' => $id]);
if ($like === null) {
return $this->returnError(404, 'Like not found!');
}
if (!$like->canDelete()) {
return $this->returnError(403, 'You cannot delete this content!');
}
if ($like->delete()) {
return $this->returnSuccess('Like successfully deleted!');
}
return $this->returnError(500, 'Internal error while delete like!');
}
}