JRA, PHP cAPI interface
  • Namespace
  • Class
  • Tree

Namespaces

  • JRA
    • Abstracts
    • Commands
      • Invokers
      • Methods
        • Content
        • Token
        • User
      • Routes
    • ComposerHandler
    • Config
      • Helper
    • Exceptions
    • Facades
    • Factories
    • Interfaces
    • Objects
      • Response
        • Data
    • Responsibilities
      • Handlers
      • Responsible
        • Login
        • Logout

Classes

  • JRA\Abstracts\AbstractCommand
  • JRA\Abstracts\AbstractMethod
  • JRA\Commands\ContentCommand
  • JRA\Commands\Invokers\CommandInvoker
  • JRA\Commands\Methods\Content\DeleteContentId
  • JRA\Commands\Methods\Content\GetCategoryFields
  • JRA\Commands\Methods\Content\GetCategoryListAll
  • JRA\Commands\Methods\Content\GetCategoryListIdCategories
  • JRA\Commands\Methods\Content\GetCategoryListIdContent
  • JRA\Commands\Methods\Content\GetCategorySingleId
  • JRA\Commands\Methods\Content\GetContentFields
  • JRA\Commands\Methods\Content\GetContentListAll
  • JRA\Commands\Methods\Content\GetContentSingleId
  • JRA\Commands\Methods\Content\PostContentCreate
  • JRA\Commands\Methods\Content\PostContentUpdateId
  • JRA\Commands\Methods\Token\GetTokenToken
  • JRA\Commands\Methods\User\GetUser
  • JRA\Commands\Methods\User\GetUserLoginUsernamePassword
  • JRA\Commands\Methods\User\GetUserLogoutUserSession
  • JRA\Commands\Methods\User\GetUserSessions
  • JRA\Commands\Methods\User\PutUserProfile
  • JRA\Commands\Methods\User\PutUserProfileId
  • JRA\Commands\Routes\ContentRoutes
  • JRA\Commands\Routes\TokenRoutes
  • JRA\Commands\Routes\UserRoutes
  • JRA\Commands\TokenCommand
  • JRA\Commands\UserCommand
  • JRA\ComposerHandler\GuzzleHandler
  • JRA\Config\ARSAnnatech
  • JRA\Config\Authenticate
  • JRA\Config\Helper\APIRoutes
  • JRA\Config\Helper\Versions
  • JRA\Config\Server
  • JRA\Config\Version
  • JRA\Facades\APIFacade
  • JRA\Facades\ConfigFacade
  • JRA\Factories\ChainFactory
  • JRA\Factories\CommandFactory
  • JRA\Factories\ConfigFactory
  • JRA\Factories\GuzzleFactory
  • JRA\Factories\InternalFactory
  • JRA\FrontFactory
  • JRA\Objects\CreateContentObject
  • JRA\Objects\Response\CategoryFieldsResponseObject
  • JRA\Objects\Response\CategoryListResponseObject
  • JRA\Objects\Response\CategoryResponseObject
  • JRA\Objects\Response\ContentDeleteResponseObject
  • JRA\Objects\Response\ContentFieldsResponseObject
  • JRA\Objects\Response\ContentListResponseObject
  • JRA\Objects\Response\ContentResponseObject
  • JRA\Objects\Response\Data\CategoryObject
  • JRA\Objects\Response\Data\ContentObject
  • JRA\Objects\Response\Data\DatabaseFieldObject
  • JRA\Objects\Response\Data\SessionObject
  • JRA\Objects\Response\JResponseObject
  • JRA\Objects\Response\MsgResponseObject
  • JRA\Objects\Response\SessionResponseObject
  • JRA\Objects\Response\UserLoginResponseObject
  • JRA\Objects\Response\UserLogoutResponseObject
  • JRA\Objects\StateObject
  • JRA\Objects\UpdateContentObject
  • JRA\Objects\UpdateUserProfileObject
  • JRA\Responsibilities\Handlers\AbstractLoginHandler
  • JRA\Responsibilities\Handlers\AbstractLogoutHandler
  • JRA\Responsibilities\Responsible\Login\HeaderTokenLogin
  • JRA\Responsibilities\Responsible\Login\TokenLogin
  • JRA\Responsibilities\Responsible\Login\UserCredentialsLogin
  • JRA\Responsibilities\Responsible\Logout\TokenLogout
  • JRA\Responsibilities\Responsible\Logout\UserCredentialsLogout

Interfaces

  • JRA\Interfaces\ConfigInterface

Exceptions

  • JRA\Exceptions\APIException
  • JRA\Exceptions\AuthenticationConfigException
  • JRA\Exceptions\CommandException
  • JRA\Exceptions\JRAException
  • JRA\Exceptions\ServerConfigException
  • JRA\Exceptions\TokenConfigException
  • JRA\Exceptions\UserAPIException
  • JRA\Exceptions\UserCredentialsConfigException
  • JRA\Exceptions\VersionException
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 
<?php
/**
 * Created by PhpStorm.
 * Copyright: Bertschi AG, 2016
 * User: jbaumann
 * File: TokenCommand.php
 * Date: 18.01.2016
 * Time: 17:09
 */

namespace JRA\Commands;


use JRA\Abstracts\AbstractCommand;
use JRA\Commands\Methods\Token\GetTokenToken;
use JRA\Commands\Routes\TokenRoutes;
use JRA\Exceptions\CommandException;
use JRA\Factories\InternalFactory;
use JRA\Interfaces\ConfigInterface;

class TokenCommand extends AbstractCommand
{

    /**
     * ContentCommand constructor.
     *
     * @param ConfigInterface $pConfig
     * @param InternalFactory $pInternalFactory
     */
    public function __construct(ConfigInterface $pConfig, InternalFactory $pInternalFactory)
    {
        parent::__construct($pConfig, $pInternalFactory);
    }

    /**
     * Processes the whole command
     *
     * @throws CommandException
     */
    public function process()
    {
        $this->_defineMethod();
        $this->_defineAdditionalArguments();
        $this->_checkMethodArguments();
        $this->_processAutoLogin();
        $this->_processMethod();
        $this->_storeResponse();
    }

    /**
     * Defines the current required class and registers them.
     *
     * @throws CommandException
     */
    private function _defineMethod()
    {
        switch ($this->getMethodRoute()) {
            case TokenRoutes::GET_TOKEN_TOKEN:
                $method = new GetTokenToken($this->_config, $this->_factory);
                $method->setMethodRoute(TokenRoutes::GET_TOKEN_TOKEN);
                $this->_setMethod($method);
                break;
            default:
                throw new CommandException('No correct route specified.', CommandException::COMMAND_EXCEPTION_ROUTES_ERROR);
                break;
        }
    }

    /**
     * Set the additional arguments, which are given for the current request.
     */
    private function _defineAdditionalArguments()
    {
        $this->_getMethod()
            ->setAdditionalArguments(
                $this->getAdditionalArguments()
            );
    }


    /**
     * Checks if all required arguments are given.
     *
     * @return bool
     * @throws CommandException
     */
    protected function _checkMethodArguments()
    {
        if ($this->_getMethod()->checkArguments()) {
            return true;
        } else {
            throw new CommandException('Invalid additional arguments.', CommandException::COMMAND_EXCEPTION_ADDITIONAL_ARGUMENTS_ERROR);
        }
    }

    /**
     * The methods need to check addition arguments by itself.
     *
     * @return boolean
     */
    protected function _checkArguments()
    {
        return true;
    }

    /**
     * If the login should be process automatically, this will execute the necessary functions.
     */
    private function _processAutoLogin()
    {
        $globalAutoLogin = $this->_config->isAutoLoginOn();
        $methodSpecifiedAutoLogin = $this->_getMethod()->isAutoLogin();

        if ($globalAutoLogin && $methodSpecifiedAutoLogin) {
            $this->_factory
                ->getChainFactory()
                ->getLoginChain()
                ->handle($this->_config, $this->_factory);
        }
    }

    /**
     * Executes the process method of the given method.
     */
    private function _processMethod()
    {
        $this->_getMethod()->process();
    }

    /**
     * Stored the response of the method.
     */
    private function _storeResponse()
    {
        $this->setResponse($this->_getMethod()->getResponse());
    }
}
JRA, PHP cAPI interface API documentation generated by ApiGen