Skip to content

Commit

Permalink
Allow "friendsofsymfony/rest-bundle:^3.0"
Browse files Browse the repository at this point in the history
  • Loading branch information
wbloszyk committed Jul 31, 2020
1 parent 56fd7e0 commit 07776fd
Show file tree
Hide file tree
Showing 21 changed files with 620 additions and 89 deletions.
10 changes: 7 additions & 3 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
"twig/twig": "^2.12.1"
},
"conflict": {
"friendsofsymfony/rest-bundle": "<2.1 || >=3.0",
"friendsofsymfony/rest-bundle": "<2.3",
"jms/serializer": "<0.13",
"sonata-project/admin-bundle": "<3.68",
"sonata-project/block-bundle": "<3.19 || >=4.0",
Expand All @@ -45,15 +45,19 @@
"sonata-project/media-bundle": "<3.20 || >=4.0"
},
"require-dev": {
"friendsofsymfony/rest-bundle": "^2.3",
"doctrine/annotations": "^1.7",
"friendsofsymfony/rest-bundle": "^2.3 || ^3.0",
"jms/serializer-bundle": "^2.0 || ^3.0",
"matthiasnoback/symfony-config-test": "^4.0",
"matthiasnoback/symfony-dependency-injection-test": "^4.0",
"nelmio/api-doc-bundle": "^2.13.4",
"sonata-project/admin-bundle": "^3.68",
"sonata-project/block-bundle": "^3.19",
"sonata-project/doctrine-orm-admin-bundle": "^3.16",
"sonata-project/media-bundle": "^3.20",
"symfony/phpunit-bridge": "^5.1"
"symfony/browser-kit": "^4.4 || ^5.1",
"symfony/phpunit-bridge": "^5.1",
"symfony/yaml": "^4.4"
},
"suggest": {
"sonata-project/block-bundle": "For rendering dynamic list blocks on a page.",
Expand Down
45 changes: 22 additions & 23 deletions src/Controller/Api/CategoryController.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@
namespace Sonata\ClassificationBundle\Controller\Api;

use FOS\RestBundle\Context\Context;
use FOS\RestBundle\Controller\Annotations\QueryParam;
use FOS\RestBundle\Controller\Annotations\View;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Request\ParamFetcherInterface;
use FOS\RestBundle\View\View as FOSRestView;
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
Expand Down Expand Up @@ -57,12 +56,12 @@ public function __construct(CategoryManagerInterface $categoryManager, FormFacto
* output={"class"="Sonata\DatagridBundle\Pager\PagerInterface", "groups"={"sonata_api_read"}}
* )
*
* @QueryParam(name="page", requirements="\d+", default="1", description="Page for category list pagination")
* @QueryParam(name="count", requirements="\d+", default="10", description="Number of categories by page")
* @QueryParam(name="enabled", requirements="0|1", nullable=true, strict=true, description="Enabled/Disabled categories filter")
* @QueryParam(name="context", requirements="\S+", nullable=true, strict=true, description="Context of categories")
* @Rest\QueryParam(name="page", requirements="\d+", default="1", description="Page for category list pagination")
* @Rest\QueryParam(name="count", requirements="\d+", default="10", description="Number of categories by page")
* @Rest\QueryParam(name="enabled", requirements="0|1", nullable=true, strict=true, description="Enabled/Disabled categories filter")
* @Rest\QueryParam(name="context", requirements="\S+", nullable=true, strict=true, description="Context of categories")
*
* @View(serializerGroups={"sonata_api_read"}, serializerEnableMaxDepthChecks=true)
* @Rest\View(serializerGroups={"sonata_api_read"}, serializerEnableMaxDepthChecks=true)
*
* @return PagerInterface
*/
Expand All @@ -82,7 +81,7 @@ public function getCategoriesAction(ParamFetcherInterface $paramFetcher)
*
* @ApiDoc(
* requirements={
* {"name"="id", "dataType"="integer", "requirement"="\d+", "description"="category id"}
* {"name"="id", "dataType"="integer", "requirement"="\d+", "description"="Category identifier"}
* },
* output={"class"="Sonata\ClassificationBundle\Model\Category", "groups"={"sonata_api_read"}},
* statusCodes={
Expand All @@ -91,9 +90,9 @@ public function getCategoriesAction(ParamFetcherInterface $paramFetcher)
* }
* )
*
* @View(serializerGroups={"sonata_api_read"}, serializerEnableMaxDepthChecks=true)
* @Rest\View(serializerGroups={"sonata_api_read"}, serializerEnableMaxDepthChecks=true)
*
* @param mixed $id
* @param mixed $id Category identifier
*
* @return CategoryInterface
*/
Expand All @@ -115,7 +114,7 @@ public function getCategoryAction($id)
* }
* )
*
* @param Request $request A Symfony request
* @param Request $request Symfony request
*
* @throws NotFoundHttpException
*
Expand All @@ -131,7 +130,7 @@ public function postCategoryAction(Request $request)
*
* @ApiDoc(
* requirements={
* {"name"="id", "dataType"="integer", "requirement"="\d+", "description"="category identifier"}
* {"name"="id", "dataType"="integer", "requirement"="\d+", "description"="Category identifier"}
* },
* input={"class"="sonata_classification_api_form_category", "name"="", "groups"={"sonata_api_write"}},
* output={"class"="Sonata\ClassificationBundle\Model\Category", "groups"={"sonata_api_read"}},
Expand All @@ -142,14 +141,14 @@ public function postCategoryAction(Request $request)
* }
* )
*
* @param int $id A Category identifier
* @param Request $request A Symfony request
* @param int $id Category identifier
* @param Request $request Symfony request
*
* @throws NotFoundHttpException
*
* @return CategoryInterface
*/
public function putCategoryAction($id, Request $request)
public function putCategoryAction(int $id, Request $request)
{
return $this->handleWriteCategory($request, $id);
}
Expand All @@ -159,7 +158,7 @@ public function putCategoryAction($id, Request $request)
*
* @ApiDoc(
* requirements={
* {"name"="id", "dataType"="integer", "requirement"="\d+", "description"="category identifier"}
* {"name"="id", "dataType"="integer", "requirement"="\d+", "description"="Category identifier"}
* },
* statusCodes={
* 200="Returned when category is successfully deleted",
Expand All @@ -168,11 +167,11 @@ public function putCategoryAction($id, Request $request)
* }
* )
*
* @param int $id A Category identifier
* @param int $id Category identifier
*
* @throws NotFoundHttpException
*
* @return View
* @return Rest\View
*/
public function deleteCategoryAction($id)
{
Expand Down Expand Up @@ -206,13 +205,13 @@ protected function filterCriteria(ParamFetcherInterface $paramFetcher)
/**
* Retrieves category with id $id or throws an exception if it doesn't exist.
*
* @param int $id A Category identifier
* @param int $id Category identifier
*
* @throws NotFoundHttpException
*
* @return CategoryInterface
*/
protected function getCategory($id)
protected function getCategory(int $id)
{
$category = $this->categoryManager->find($id);

Expand All @@ -227,11 +226,11 @@ protected function getCategory($id)
* Write a category, this method is used by both POST and PUT action methods.
*
* @param Request $request Symfony request
* @param int|null $id A category identifier
* @param int|null $id category identifier
*
* @return View|FormInterface
* @return Rest\View|FormInterface
*/
protected function handleWriteCategory($request, $id = null)
protected function handleWriteCategory(Request $request, ?int $id = null)
{
$category = $id ? $this->getCategory($id) : null;

Expand Down
47 changes: 23 additions & 24 deletions src/Controller/Api/CollectionController.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@
namespace Sonata\ClassificationBundle\Controller\Api;

use FOS\RestBundle\Context\Context;
use FOS\RestBundle\Controller\Annotations\QueryParam;
use FOS\RestBundle\Controller\Annotations\View;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Request\ParamFetcherInterface;
use FOS\RestBundle\View\View as FOSRestView;
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
Expand Down Expand Up @@ -57,11 +56,11 @@ public function __construct(CollectionManagerInterface $collectionManager, FormF
* output={"class"="Sonata\DatagridBundle\Pager\PagerInterface", "groups"={"sonata_api_read"}}
* )
*
* @QueryParam(name="page", requirements="\d+", default="1", description="Page for collection list pagination")
* @QueryParam(name="count", requirements="\d+", default="10", description="Number of collections by page")
* @QueryParam(name="enabled", requirements="0|1", nullable=true, strict=true, description="Enabled/Disabled collections filter")
* @Rest\QueryParam(name="page", requirements="\d+", default="1", description="Page for collection list pagination")
* @Rest\QueryParam(name="count", requirements="\d+", default="10", description="Number of collections by page")
* @Rest\QueryParam(name="enabled", requirements="0|1", nullable=true, strict=true, description="Enabled/Disabled collections filter")
*
* @View(serializerGroups={"sonata_api_read"}, serializerEnableMaxDepthChecks=true)
* @Rest\View(serializerGroups={"sonata_api_read"}, serializerEnableMaxDepthChecks=true)
*
* @return PagerInterface
*/
Expand All @@ -81,7 +80,7 @@ public function getCollectionsAction(ParamFetcherInterface $paramFetcher)
*
* @ApiDoc(
* requirements={
* {"name"="id", "dataType"="integer", "requirement"="\d+", "description"="collection id"}
* {"name"="id", "dataType"="integer", "requirement"="\d+", "description"="Collection identifier"}
* },
* output={"class"="Sonata\ClassificationBundle\Model\Collection", "groups"={"sonata_api_read"}},
* statusCodes={
Expand All @@ -90,13 +89,13 @@ public function getCollectionsAction(ParamFetcherInterface $paramFetcher)
* }
* )
*
* @View(serializerGroups={"sonata_api_read"}, serializerEnableMaxDepthChecks=true)
* @Rest\View(serializerGroups={"sonata_api_read"}, serializerEnableMaxDepthChecks=true)
*
* @param mixed $id
* @param int $id Collection identifier
*
* @return CollectionInterface
*/
public function getCollectionAction($id)
public function getCollectionAction(int $id)
{
return $this->getCollection($id);
}
Expand All @@ -114,7 +113,7 @@ public function getCollectionAction($id)
* }
* )
*
* @param Request $request A Symfony request
* @param Request $request Symfony request
*
* @throws NotFoundHttpException
*
Expand All @@ -130,7 +129,7 @@ public function postCollectionAction(Request $request)
*
* @ApiDoc(
* requirements={
* {"name"="id", "dataType"="integer", "requirement"="\d+", "description"="collection identifier"}
* {"name"="id", "dataType"="integer", "requirement"="\d+", "description"="Collection identifier"}
* },
* input={"class"="sonata_classification_api_form_collection", "name"="", "groups"={"sonata_api_write"}},
* output={"class"="Sonata\ClassificationBundle\Model\Collection", "groups"={"sonata_api_read"}},
Expand All @@ -141,14 +140,14 @@ public function postCollectionAction(Request $request)
* }
* )
*
* @param int $id A Collection identifier
* @param Request $request A Symfony request
* @param int $id Collection identifier
* @param Request $request Symfony request
*
* @throws NotFoundHttpException
*
* @return CollectionInterface
*/
public function putCollectionAction($id, Request $request)
public function putCollectionAction(int $id, Request $request)
{
return $this->handleWriteCollection($request, $id);
}
Expand All @@ -158,7 +157,7 @@ public function putCollectionAction($id, Request $request)
*
* @ApiDoc(
* requirements={
* {"name"="id", "dataType"="integer", "requirement"="\d+", "description"="collection identifier"}
* {"name"="id", "dataType"="integer", "requirement"="\d+", "description"="Collection identifier"}
* },
* statusCodes={
* 200="Returned when collection is successfully deleted",
Expand All @@ -167,13 +166,13 @@ public function putCollectionAction($id, Request $request)
* }
* )
*
* @param int $id A Collection identifier
* @param int $id Collection identifier
*
* @throws NotFoundHttpException
*
* @return View
* @return Rest\View
*/
public function deleteCollectionAction($id)
public function deleteCollectionAction(int $id)
{
$collection = $this->getCollection($id);

Expand Down Expand Up @@ -205,13 +204,13 @@ protected function filterCriteria(ParamFetcherInterface $paramFetcher)
/**
* Retrieves collection with id $id or throws an exception if it doesn't exist.
*
* @param int $id A Collection identifier
* @param int $id Collection identifier
*
* @throws NotFoundHttpException
*
* @return CollectionInterface
*/
protected function getCollection($id)
protected function getCollection(int $id)
{
$collection = $this->collectionManager->find($id);

Expand All @@ -226,11 +225,11 @@ protected function getCollection($id)
* Write a collection, this method is used by both POST and PUT action methods.
*
* @param Request $request Symfony request
* @param int|null $id A collection identifier
* @param int|null $id Collection identifier
*
* @return View|FormInterface
* @return Rest\View|FormInterface
*/
protected function handleWriteCollection($request, $id = null)
protected function handleWriteCollection(Request $request, ?int $id = null)
{
$collection = $id ? $this->getCollection($id) : null;

Expand Down

0 comments on commit 07776fd

Please sign in to comment.