/** * @return \Zend\View\Model\JsonModel */ public function indexAction() { $serviceLocator = $this->getServiceLocator(); $entityManager = $serviceLocator->get('Doctrine\\ORM\\EntityManager'); $method = $this->getRequest()->getMethod(); $moduleConfig = $serviceLocator->get('config'); $outputFormat = $this->params()->fromRoute('output_format'); $apiSetup = new ApiSetup(); $input = $apiSetup->getInput(); $apiOutputManager = new ApiOutputManager($outputFormat); try { $apiSetup->setMethod($method); $apiSetup->setInput($this->detectInput($method)); $apiSetup->setEntityManager($entityManager); // setup API Key here... $apiSetup->setResourceClassMap($moduleConfig['resources_class_map']); $apiSetup->setResourceClassName($this->params()->fromRoute('resource')); // validate input: tipo di richiesta, risorsa e formato richiesto va visto se vanno bene // set error and status code for the final response... /* $recordsGetter = new AlboPretorioRecordsGetter(array()); $recordsGetter->setEntityManager($entityManager); $recordsGetter->setArticoliInput(array()); $recordsGetter->setArticoliPaginator(); $recordsGetter->setArticoliPaginatorCurrentPage(isset($input['page']) ? $input['page'] : null); $recordsGetter->setArticoliPaginatorPerPage(isset($input['perpage']) ? $input['perpage'] : null); $paginator = $recordsGetter->getPaginatorRecords(); */ $toReturn = array(); foreach ($paginator as $row) { $toReturn[] = array_filter($row); } return new JsonModel($toReturn); } catch (NullException $ex) { $apiOutputManager->setStatusCode(401); return $apiOutputManager->setupOutput(array('message' => $ex->getMessage())); } $className = $apiSetup->getResourceClassName(); $classInstance = new $className($entityManager); $classInstance->setPage(isset($input['page']) ? $input['page'] : null); $classInstance->setPerPage(isset($input['perpage']) ? $input['perpage'] : null); $resourceRecords = $classInstance->getResourceRecords($input); if (!$resourceRecords) { $apiOutputManager->setStatusCode(401); return $apiOutputManager->setupOutput(array('message' => 'No records found for this recource')); } return $apiOutputManager->setupOutput($resourceRecords); }
public function testSetupXMLOutput() { $this->apiOutputManager = new ApiOutputManager('xml'); $this->assertInstanceOf('\\Zend\\Http\\Response', $this->apiOutputManager->setupOutput(array('content' => array('mycnt' => 'myvalue')))); }