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 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 
<?php
/**
 * Created by PhpStorm.
 * Copyright: Bertschi AG, 2016
 * User: jbaumann
 * File: ContentCommand.php
 * Date: 18.01.2016
 * Time: 11:25
 */

namespace JRA\Commands;


use JRA\Abstracts\AbstractCommand;
use JRA\Commands\Methods\Content\DeleteContentId;
use JRA\Commands\Methods\Content\GetCategoryFields;
use JRA\Commands\Methods\Content\GetCategoryListAll;
use JRA\Commands\Methods\Content\GetCategoryListIdCategories;
use JRA\Commands\Methods\Content\GetCategoryListIdContent;
use JRA\Commands\Methods\Content\GetCategorySingleId;
use JRA\Commands\Methods\Content\GetContentFields;
use JRA\Commands\Methods\Content\GetContentListAll;
use JRA\Commands\Methods\Content\GetContentSingleId;
use JRA\Commands\Methods\Content\PostContentCreate;
use JRA\Commands\Methods\Content\PostContentUpdateId;
use JRA\Commands\Routes\ContentRoutes;
use JRA\Exceptions\CommandException;

class ContentCommand extends AbstractCommand
{

    /**
     * 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 ContentRoutes::GET_CATEGORY_LIST_ALL:
                $method = new GetCategoryListAll($this->_config, $this->_factory);
                $method->setMethodRoute(ContentRoutes::GET_CATEGORY_LIST_ALL);
                $this->_setMethod($method);
                break;
            case ContentRoutes::GET_CATEGORY_LIST_ID_CATEGORIES:
                $method = new GetCategoryListIdCategories($this->_config, $this->_factory);
                $method->setMethodRoute(ContentRoutes::GET_CATEGORY_LIST_ID_CATEGORIES);
                $this->_setMethod($method);
                break;
            case ContentRoutes::GET_CONTENT_LIST_ALL:
                $method = new GetContentListAll($this->_config, $this->_factory);
                $method->setMethodRoute(ContentRoutes::GET_CONTENT_LIST_ALL);
                $this->_setMethod($method);
                break;
            case ContentRoutes::GET_CATEGORY_FIELDS:
                $method = new GetCategoryFields($this->_config, $this->_factory);
                $method->setMethodRoute(ContentRoutes::GET_CATEGORY_FIELDS);
                $this->_setMethod($method);
                break;
            case ContentRoutes::GET_CATEGORY_LIST_ID_CONTENT:
                $method = new GetCategoryListIdContent($this->_config, $this->_factory);
                $method->setMethodRoute(ContentRoutes::GET_CATEGORY_LIST_ID_CONTENT);
                $this->_setMethod($method);
                break;
            case ContentRoutes::GET_CATEGORY_SINGLE_ID:
                $method = new GetCategorySingleId($this->_config, $this->_factory);
                $method->setMethodRoute(ContentRoutes::GET_CATEGORY_SINGLE_ID);
                $this->_setMethod($method);
                break;
            case ContentRoutes::GET_CONTENT_FIELDS:
                $method = new GetContentFields($this->_config, $this->_factory);
                $method->setMethodRoute(ContentRoutes::GET_CONTENT_FIELDS);
                $this->_setMethod($method);
                break;
            case ContentRoutes::GET_CONTENT_SINGLE_ID:
                $method = new GetContentSingleId($this->_config, $this->_factory);
                $method->setMethodRoute(ContentRoutes::GET_CONTENT_SINGLE_ID);
                $this->_setMethod($method);
                break;
            case ContentRoutes::POST_CONTENT_CREATE:
                $method = new PostContentCreate($this->_config, $this->_factory);
                $method->setMethodRoute(ContentRoutes::POST_CONTENT_CREATE);
                $this->_setMethod($method);
                break;
            case ContentRoutes::DELETE_CONTENT_ID:
                $method = new DeleteContentId($this->_config, $this->_factory);
                $method->setMethodRoute(ContentRoutes::DELETE_CONTENT_ID);
                $this->_setMethod($method);
                break;
            case ContentRoutes::POST_CONTENT_UPDATE_ID:
                $method = new PostContentUpdateId($this->_config, $this->_factory);
                $method->setMethodRoute(ContentRoutes::POST_CONTENT_UPDATE_ID);
                $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