eZ\Publish\Core\REST\Server\Controller\Role::createRole PHP Метод

createRole() публичный Метод

Defaults to publishing the role, but you can create a draft instead by setting the POST parameter publish=false
public createRole ( Request $request ) : CreatedRole
$request Symfony\Component\HttpFoundation\Request
Результат eZ\Publish\Core\REST\Server\Values\CreatedRole
    public function createRole(Request $request)
    {
        $publish = !$request->query->has('publish') || $request->query->has('publish') && $request->query->get('publish') === 'true';
        try {
            $roleDraft = $this->roleService->createRole($this->inputDispatcher->parse(new Message(['Content-Type' => $request->headers->get('Content-Type'), '__publish' => $publish], $request->getContent())));
        } catch (InvalidArgumentException $e) {
            throw new ForbiddenException($e->getMessage());
        } catch (UnauthorizedException $e) {
            throw new ForbiddenException($e->getMessage());
        } catch (LimitationValidationException $e) {
            throw new BadRequestException($e->getMessage());
        } catch (Exceptions\Parser $e) {
            throw new BadRequestException($e->getMessage());
        }
        if ($publish) {
            @trigger_error("Create and publish role in the same operation is deprecated, and will be removed in the future.\n" . 'Instead, publish the role draft using Role::publishRoleDraft().', E_USER_DEPRECATED);
            $this->roleService->publishRoleDraft($roleDraft);
            $role = $this->roleService->loadRole($roleDraft->id);
            return new Values\CreatedRole(['role' => new Values\RestRole($role)]);
        }
        return new Values\CreatedRole(['role' => new Values\RestRole($roleDraft)]);
    }