/** * @param \Jamm\HTTP\IResponse $Response */ public function fillResponse(\Jamm\HTTP\IResponse $Response) { $this->Request = $this->ServiceLocator->getRequest(); $this->Parser = $this->ServiceLocator->getRequestParser(); $this->Response = $Response; $this->beforeFillingResponse(); switch ($this->Request->getMethod()) { case 'GET': return $this->GET(); case 'POST': if (!$this->isCSRFSafe()) { $this->Response->setStatusCode(403); return false; } return $this->POST(); case 'PUT': if (!$this->isCSRFSafe()) { $this->Response->setStatusCode(403); return false; } return $this->PUT(); case 'DELETE': if (!$this->isCSRFSafe()) { $this->Response->setStatusCode(403); return false; } return $this->DELETE(); case 'PATCH': if (!$this->isCSRFSafe()) { $this->Response->setStatusCode(403); return false; } return $this->PATCH(); case 'OPTIONS': return $this->OPTIONS(); case 'HEAD': return $this->HEAD(); case 'TRACE': return $this->TRACE(); default: $Response->setStatusCode(405); // Method not allowed } }