/**
  * Dispatches the request to BedRest.
  */
 public function dispatchBedRest(array $options)
 {
     if (isset($options['method'])) {
         $this->_bedRestRequest->setMethod($options['method']);
     }
     $restManager = $this->_bedRest->getRestManager();
     $this->_bedRestResponse = $restManager->process($this->_bedRestRequest);
     $response = $this->getResponse();
     $response->setHttpResponseCode($this->_bedRestResponse->getStatusCode());
     foreach ($this->_bedRestResponse->getHeaders() as $name => $value) {
         $response->setHeader($name, $value);
     }
     $response->setBody($this->_bedRestResponse->getRawBody());
 }
 /**
  * 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));
     }
 }
Example #3
0
 public function testSetMethod()
 {
     $this->request->setMethod('PUT');
     $this->assertEquals('PUT', $this->request->getMethod());
 }
Example #4
0
 public function getCollectionRequest()
 {
     $request = new Request();
     $request->setMethod(Type::METHOD_GET_COLLECTION);
     $request->setResource('asset');
     return array(array($request));
 }
Example #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);
 }