<?php declare(strict_types=1);
namespace NetzpBlog6\Controller\StoreApi\BlogPost;
use NetzpBlog6\Helper\BlogHelper;
use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
use Shopware\Core\Framework\Plugin\Exception\DecorationPatternException;
use Shopware\Core\System\SalesChannel\SalesChannelContext;
use OpenApi\Annotations as OA;
use Shopware\Core\Framework\Routing\Annotation\Entity;
use Symfony\Component\Routing\Annotation\Route;
class BlogPostRoute extends AbstractBlogPostRoute
{
/**
* @var EntityRepository
*/
protected $blogRepository;
private $helper;
public function __construct(EntityRepository $blogRepository, BlogHelper $helper)
{
$this->blogRepository = $blogRepository;
$this->helper = $helper;
}
public function getDecorated(): AbstractBlogPostRoute
{
throw new DecorationPatternException(self::class);
}
/**
* @Entity("s_plugin_netzp_blog")
* @OA\Post(
* path="/blogpost/{postId}",
* summary="This route can be used to load the s_plugin_netzp_blog",
* operationId="readNetzpBlog",
* tags={"Store API", "NetzpBlog"},
* @OA\Parameter(name="Api-Basic-Parameters"),
* @OA\Response(
* response="200",
* description="",
* @OA\JsonContent(type="object",
* @OA\Property(
* property="total",
* type="integer",
* description="Total amount"
* ),
* @OA\Property(
* property="aggregations",
* type="object",
* description="aggregation result"
* )
* )
* )
* )
* @Route("/store-api/blogpost/{postId}", name="store-api.s_plugin_netzp_blog.load", methods={"GET", "POST"}, defaults={"_routeScope"={"store-api"}})
*/
public function load(string $postId, Criteria $criteria, SalesChannelContext $salesChannelContext): BlogPostRouteResponse
{
$post = $this->helper->getBlogPost($postId, $salesChannelContext, $salesChannelContext->getContext());
return new BlogPostRouteResponse($post);
}
}