. */ namespace SP\Forms; use SP\Api\ApiTokens; use SP\Core\ActionsInterface; use SP\Core\Exceptions\ValidationException; use SP\Http\Request; /** * Class ApiTokenForm * * @package SP\Forms */ class ApiTokenForm extends FormBase implements FormInterface { /** * @var ApiTokens */ protected $ApiTokens; /** * Validar el formulario * * @param $action * @return bool * @throws \SP\Core\Exceptions\ValidationException */ public function validate($action) { switch ($action) { case ActionsInterface::ACTION_MGM_APITOKENS_NEW: case ActionsInterface::ACTION_MGM_APITOKENS_EDIT: $this->checkCommon(); break; } return true; } /** * @throws ValidationException */ protected function checkCommon() { if ($this->ApiTokens->getUserId() === 0) { throw new ValidationException(_('Usuario no indicado')); } elseif ($this->ApiTokens->getActionId() === 0) { throw new ValidationException(_('Acción no indicada')); } } /** * @return mixed */ public function getItemData() { return $this->ApiTokens; } /** * Analizar los datos de la petición HTTP * * @return void */ protected function analyzeRequestData() { $this->ApiTokens = new ApiTokens(); $this->ApiTokens->setTokenId($this->itemId); $this->ApiTokens->setUserId(Request::analyze('users', 0)); $this->ApiTokens->setActionId(Request::analyze('actions', 0)); $this->ApiTokens->setRefreshToken(Request::analyze('refreshtoken', false, false, true)); } }