ZF\Apigility\Admin\Controller\AbstractConfigController::processAction PHP Method

processAction() public method

public processAction ( )
    public function processAction()
    {
        $request = $this->getRequest();
        $headers = $request->getHeaders();
        $accept = $this->getHeaderType($headers, 'accept');
        $contentType = $this->getHeaderType($headers, 'content-type');
        $returnTrees = 'application/json' == $accept ? false : true;
        $config = $this->getConfig();
        if (!$config instanceof ConfigResource) {
            return $config;
        }
        switch ($request->getMethod()) {
            case $request::METHOD_GET:
                return $config->fetch($returnTrees);
            case $request::METHOD_PATCH:
                $submitTrees = 'application/json' == $contentType ? false : true;
                $params = $this->getBodyParams($submitTrees);
                $result = $config->patch($params, $submitTrees);
                // If same accept and content-type, return the result directly
                if ($submitTrees === $returnTrees) {
                    return $result;
                }
                // If tree was submitted, but not Accepted, create dot-separated values
                if ($submitTrees && !$returnTrees) {
                    return $config->traverseArray($params);
                }
                // If tree was not submitted, but is Accepted, create nested values
                $return = [];
                foreach ($params as $key => $value) {
                    $config->createNestedKeyValuePair($return, $key, $value);
                }
                return $return;
            default:
                return new ApiProblemResponse(new ApiProblem(405, 'Only the methods GET and PATCH are allowed for this URI'));
        }
    }