/** * @param \Janeiro\Request\AbstractRequest $request * @throws \Janeiro\Exception * @return \Janeiro\Response */ public function indexAction(AbstractRequest $request) { $response = null; if (1 === preg_match('/^[\\/A-Za-z]+$/', $request->getParameter('uri'), $uri)) { $namespaces = (array) $this->registry->get('routing.namespace'); $segments = explode('/', $uri[0]); $file = array_pop($segments) . '.js'; foreach ($namespaces as $namespace) { $path = [ROOT, 'src', str_replace("\\", DS, $namespace), $segments[0], 'View', 'JavaScript']; $path = implode(DS, array_merge($path, array_slice($segments, 1))); if (is_readable($path . DS . $file)) { $this->view->setTemplateDirectory($path); $this->view->setTemplate($file); $response = new Response('text/javascript'); $response->setHeader('Expires', 'Wed, 01 Jan 2014 00:00:00 GMT'); $response->setHeader('Cache-Control', 'no-store, no-cache, must-revalidate'); $response->setHeader('Pragma', 'no-cache'); $response->setContent($this->view->render()); $response->setStatus(200); break; } } } if (empty($response)) { throw new Exception('Resource not found', Exception::HTTP_NOT_FOUND); } return $response; }
/** * @method DELETE * @return \Janeiro\Response */ public function deleteAction() { $response = new Response(); $response->setStatus(200); try { $this->userSession->delete(); } catch (\Exception $e) { $response->setStatus(500); } return $response; }