/**
  * Initialises the controller.
  */
 public function init()
 {
     /** @var \BedRest\Framework\Zend1\Container _bedRest */
     $this->_bedRest = $this->getFrontController()->getParam('bootstrap')->getResource('bedrest');
     $this->_bedRestRequest = new Request();
     $this->_bedRestRequest->setResource(Inflector::classify($this->getRequest()->getControllerName()));
     $routeComponents = array('identifier' => $this->_getParam('id'));
     $this->_bedRestRequest->setRouteComponents($routeComponents);
     $data = file_get_contents('php://input');
     $this->_bedRestRequest->setRawBody($data);
     $this->_helper->ViewRenderer->setNoRender(true);
 }
 /**
  * Prepares the REST Request object with values appropriate for a sub-resource request.
  *
  * @param \BedRest\Rest\Request\Request $restRequest
  * @param \Zend\Http\Request            $httpRequest
  * @param \Zend\Mvc\Router\RouteMatch   $routeMatch
  */
 protected function prepareSubResource(RestRequest $restRequest, HttpRequest $httpRequest, RouteMatch $routeMatch)
 {
     $id = $routeMatch->getParam('id', null);
     $restRequest->setParameter('identifier', $id);
     $resourceName = $routeMatch->getParam('__CONTROLLER__');
     $subResourceName = $routeMatch->getParam('subresource', null);
     $restRequest->setResource($resourceName . '/' . $subResourceName);
     $subId = $routeMatch->getParam('subresource_id', null);
     if (!empty($subId)) {
         $restRequest->setParameter('subresource_identifier', $subId);
     }
     $method = strtoupper($httpRequest->getMethod());
     if (!empty($method)) {
         if (empty($subId) && $method !== RestRequestType::METHOD_POST) {
             $method .= '_COLLECTION';
         }
         $restRequest->setMethod(constant('BedRest\\Rest\\Request\\Type::METHOD_' . $method));
     }
 }
示例#3
0
 public function testResource()
 {
     $this->request->setResource('test-resource');
     $this->assertEquals('test-resource', $this->request->getResource());
 }
示例#4
0
 public function getCollectionRequest()
 {
     $request = new Request();
     $request->setMethod(Type::METHOD_GET_COLLECTION);
     $request->setResource('asset');
     return array(array($request));
 }
示例#5
0
 /**
  * @dataProvider requests
  *
  * @param string $method
  */
 public function testDispatchToNonExistentSubResourceThrows404Exception($method)
 {
     // configure the Dispatcher with the necessary dependencies
     $this->dispatcher->setResourceMetadataFactory($this->getMockResourceMetadataFactory());
     $this->dispatcher->setServiceMetadataFactory($this->getMockServiceMetadataFactory($method));
     $this->dispatcher->setServiceLocator($this->getMockServiceLocator());
     $eventManager = $this->getMock('BedRest\\Events\\EventManager');
     $this->dispatcher->setEventManager($eventManager);
     // form a basic request
     $request = new Request();
     $request->setResource('testResource/nonExistentSub');
     $request->setMethod($method);
     // test an exception is thrown
     $this->setExpectedException('BedRest\\Rest\\Exception', '', 404);
     $this->dispatcher->dispatch($request);
 }