/** * Returns a paginated list of baskets. * * @ApiDoc( * resource=true, * output={"class"="Sonata\DatagridBundle\Pager\PagerInterface", "groups"="sonata_api_read"} * ) * * @QueryParam(name="page", requirements="\d+", default="1", description="Page for baskets list pagination (1-indexed)") * @QueryParam(name="count", requirements="\d+", default="10", description="Number of baskets by page") * @QueryParam(name="orderBy", array=true, requirements="ASC|DESC", nullable=true, strict=true, description="Query baskets basket by clause (key is field, value is direction") * * @View(serializerGroups="sonata_api_read", serializerEnableMaxDepthChecks=true) * * @param ParamFetcherInterface $paramFetcher * * @return Sonata\DatagridBundle\Pager\PagerInterface[] */ public function getBasketsAction(ParamFetcherInterface $paramFetcher) { // No filters implemented as of right now $supportedCriteria = array(); $page = $paramFetcher->get('page'); $limit = $paramFetcher->get('count'); $sort = $paramFetcher->get('orderBy'); $criteria = array_intersect_key($paramFetcher->all(), $supportedCriteria); foreach ($criteria as $key => $value) { if (null === $value) { unset($criteria[$key]); } } if (!$sort) { $sort = array(); } elseif (!is_array($sort)) { $sort = array($sort => 'asc'); } return $this->basketManager->getPager($criteria, $page, $limit, $sort); }