- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/controller/user/stresslevel.php
- Класс: BitrixSocialnetworkControllerUserStressLevel
- Вызов: StressLevel::addAction
public function addAction(array $fields = []): ?array
{
$value = (
isset($fields['value'])
? (int)$fields['value']
: false
);
if ($value === false)
{
$this->addError(new Error(Loc::getMessage('SONET_CONTROLLER_USER_STRESSLEVEL_ADD_NOSTRESS'), 'SONET_CONTROLLER_USER_STRESSLEVEL_ADD_NOSTRESS'));
return null;
}
$userId = (int)(
isset($fields['userId'])
&& $this->isCurrentUserAdmin()
? $fields['userId']
: $this->getCurrentUser()->getId()
);
if (
!$this->isCurrentUserAdmin()
&& $userId !== (int)$this->getCurrentUser()->getId()
)
{
$this->addError(new Error(Loc::getMessage('SONET_CONTROLLER_USER_STRESSLEVEL_NO_PERMISSIONS'), 'SONET_CONTROLLER_USER_STRESSLEVEL_NO_PERMISSIONS'));
return null;
}
Loader::includeModule('socialnetwork');
$disclaimerData = $this->getDisclaimer([
'userId' => $userId
]);
if (empty($disclaimerData))
{
$this->addError(new Error(Loc::getMessage('SONET_CONTROLLER_USER_STRESSLEVEL_NO_SIGNED_DISCLAIMER'), 'SONET_CONTROLLER_USER_STRESSLEVEL_NO_SIGNED_DISCLAIMER'));
return null;
}
UserWelltoryTable::add([
'USER_ID' => $userId,
'STRESS' => $value,
'STRESS_TYPE' => ($fields['type'] ?? ''),
'STRESS_COMMENT' => ($fields['comment'] ?? ''),
'DATE_MEASURE' => new BitrixMainDBSqlExpression(BitrixMainApplication::getConnection()->getSqlHelper()->getCurrentDateTimeFunction()),
'HASH' => ($fields['hash'] ?? '')
]);
return [
'success' => true,
];
}