eZ\Publish\Core\REST\Server\Controller\ContentType::listContentTypes PHP Method

listContentTypes() public method

Returns a list of content types.
public listContentTypes ( Request $request ) : ContentTypeList | ContentTypeInfoList
$request Symfony\Component\HttpFoundation\Request
return eZ\Publish\Core\REST\Server\Values\ContentTypeList | eZ\Publish\Core\REST\Server\Values\ContentTypeInfoList
    public function listContentTypes(Request $request)
    {
        if ($this->getMediaType($request) === 'application/vnd.ez.api.contenttypelist') {
            $return = new Values\ContentTypeList(array(), $request->getPathInfo());
        } else {
            $return = new Values\ContentTypeInfoList(array(), $request->getPathInfo());
        }
        if ($request->query->has('identifier')) {
            $return->contentTypes = array($this->loadContentTypeByIdentifier($request));
            return $return;
        }
        if ($request->query->has('remoteId')) {
            $return->contentTypes = array($this->loadContentTypeByRemoteId($request));
            return $return;
        }
        $limit = null;
        if ($request->query->has('limit')) {
            $limit = (int) $request->query->get('limit', null);
            if ($limit <= 0) {
                throw new BadRequestException('wrong value for limit parameter');
            }
        }
        $contentTypes = $this->getContentTypeList();
        $sort = $request->query->get('sort');
        if ($request->query->has('orderby')) {
            $orderby = $request->query->get('orderby');
            $this->sortContentTypeList($contentTypes, $orderby, $sort);
        }
        $offset = $request->query->get('offset', 0);
        $return->contentTypes = array_slice($contentTypes, $offset, $limit);
        return $return;
    }