%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/mail/controllers/rest/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/mail/controllers/rest/UserController.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2020 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\mail\controllers\rest;
use humhub\modules\rest\components\BaseController;
use humhub\modules\mail\helpers\RestDefinitions;
use humhub\modules\user\models\User;
use Yii;
use yii\web\HttpException;
/**
* Class UserController
*/
class UserController extends BaseController
{
/**
* Get all participants of the conversation
*
* @param $messageId
* @return array
* @throws HttpException
*/
public function actionIndex($messageId)
{
$message = MessageController::getMessage($messageId);
return RestDefinitions::getMessageUsers($message);
}
/**
* Add a participant into conversation
*
* @param $messageId
* @param $userId
* @return array
* @throws HttpException
*/
public function actionAdd($messageId, $userId)
{
$message = MessageController::getMessage($messageId);
$user = $this->getUser($userId);
if ($message->isParticipant($user)) {
return $this->returnError(400, 'User is already a participant of the conversation.');
}
if ($message->addRecepient($user)) {
return $this->actionIndex($messageId);
}
Yii::error('Could not add a participant into conversation.', 'api');
return $this->returnError(500, 'Internal error while add a participant into conversation!');
}
/**
* Leave a participant from conversation
*
* @param $messageId
* @param $userId
* @return array
* @throws HttpException
*/
public function actionLeave($messageId, $userId)
{
$message = MessageController::getMessage($messageId);
$user = $this->getUser($userId);
if (!$message->isParticipant($user)) {
return $this->returnError(400, 'User is not a participant of the conversation.');
}
$message->leave($userId);
return $this->actionIndex($messageId);
}
/**
* Get user by id
*
* @param $id
* @return User
* @throws HttpException
*/
protected function getUser($id)
{
$user = User::findOne(['id' => $id]);
if ($user === null) {
throw new HttpException(404, 'User not found!');
}
return $user;
}
}