Skip to content

Commit

Permalink
Adds a render option for the Snippet
Browse files Browse the repository at this point in the history
  • Loading branch information
terwey committed Jun 13, 2014
1 parent 5c6c46d commit d999db4
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ public function getSnippetsAction(Request $request)
* },
* parameters={
* {"name"="id", "dataType"="integer", "required"=true, "description"="Snippet id"},
* {"name"="show", "dataType"="string", "required"=false, "description"="Define which snippets to show, 'enabled', 'disabled', 'all'. Defaults to 'enabled'"}
* {"name"="show", "dataType"="string", "required"=false, "description"="Define which snippets to show, 'enabled', 'disabled', 'all'. Defaults to 'enabled'"},
* {"name"="render", "dataType"="string", "required"=false, "description"="Return a Rendered Snippet"}
* },
* output="\Newscoop\Entity\Snippet"
* )
Expand All @@ -91,6 +92,7 @@ public function getSnippetAction(Request $request, $snippetId)
{
// XXX Check if the SnippetID belongs to the articleNumber
$show = $request->query->get('show', 'enabled');
$rendered = $request->query->get('rendered', 'false');
$em = $this->container->get('em');

$snippetRepo = $em->getRepository('Newscoop\Entity\Snippet');
Expand All @@ -100,8 +102,10 @@ public function getSnippetAction(Request $request, $snippetId)
throw new EntityNotFoundException('Result was not found.');
}

if ($rendered) {
return $snippet->render();
if ($view = $request->attributes->get('_view')) {
if ($rendered == 'true') {
$view->setSerializerGroups(array('rendered'));
}
}

return $snippet;
Expand All @@ -121,7 +125,8 @@ public function getSnippetAction(Request $request, $snippetId)
* parameters={
* {"name"="number", "dataType"="integer", "required"=true, "description"="Article number"},
* {"name"="language", "dataType"="string", "required"=true, "description"="Language code"},
* {"name"="show", "dataType"="string", "required"=false, "description"="Define which snippets to show, 'enabled', 'disabled', 'all'. Defaults to 'enabled'"}
* {"name"="show", "dataType"="string", "required"=false, "description"="Define which snippets to show, 'enabled', 'disabled', 'all'. Defaults to 'enabled'"},
* {"name"="render", "dataType"="string", "required"=false, "description"="Return a Rendered Snippet"}
* }
* )
*
Expand All @@ -133,6 +138,7 @@ public function getSnippetAction(Request $request, $snippetId)
public function getSnippetsForArticleAction(Request $request, $number, $language)
{
$show = $request->query->get('show', 'enabled');
$rendered = $request->query->get('rendered', 'false');
$em = $this->container->get('em');
$paginatorService = $this->get('newscoop.paginator.paginator_service');
$paginatorService->setUsedRouteParams(array('number' => $number, 'language' => $language));
Expand All @@ -152,6 +158,12 @@ public function getSnippetsForArticleAction(Request $request, $number, $language
$paginator = $this->get('newscoop.paginator.paginator_service');
$articleSnippets = $paginator->paginate($articleSnippets);

if ($view = $request->attributes->get('_view')) {
if ($rendered == 'true') {
$view->setSerializerGroups(array('rendered'));
}
}

return $articleSnippets;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ Newscoop\Entity\Snippet:
expose: true
read_only: true
type: integer
groups: ["details", "list"]
groups: ["details", "list", "rendered"]
serialized_name: id
name:
expose: true
read_only: true
type: string
groups: ["details", "list"]
groups: ["details", "list", "rendered"]
serialized_name: name
fields:
expose: true
Expand Down Expand Up @@ -53,4 +53,12 @@ Newscoop\Entity\Snippet:
groups: ["details", "list"]
serialized_name: templateId
accessor:
getter: getTemplateId
getter: getTemplateId
render:
expose: true
read_only: true
type: string
groups: ["rendered"]
serialized_name: render
accessor:
getter: render

0 comments on commit d999db4

Please sign in to comment.