/** * 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)); } }
public function testSetMethod() { $this->request->setMethod('PUT'); $this->assertEquals('PUT', $this->request->getMethod()); }
public function getCollectionRequest() { $request = new Request(); $request->setMethod(Type::METHOD_GET_COLLECTION); $request->setResource('asset'); return array(array($request)); }
/** * @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); }