public function indexAction($name = null) { if (!$name) { $view = View::createRouteRedirect('_welcome'); } else { $view = View::create(array('name' => $name))->setTemplate(new TemplateReference('LiipHelloBundle', 'Hello', 'index')); } return $this->viewHandler->handle($view); }
public function testSetRoute() { $routeName = 'users'; $view = View::createRouteRedirect($routeName, array(), Codes::HTTP_CREATED); $this->assertAttributeEquals($routeName, 'route', $view); $this->assertAttributeEquals(null, 'location', $view); $this->assertEquals(Codes::HTTP_CREATED, $view->getResponse()->getStatusCode()); $view->setLocation($routeName); $this->assertAttributeEquals($routeName, 'location', $view); $this->assertAttributeEquals(null, 'route', $view); $view = new View(); $route = 'route'; $view->setRoute($route); $this->assertEquals($route, $view->getRoute()); }
/** * @param ActionEvent $event */ public function onAction(ActionEvent $event) { if ($this->getParameterResolver()->resolveApi()) { return; } $form = $event->getForm(); if ($form !== null && !$form->isValid()) { $view = View::create($form); } else { $route = $this->getParameterResolver()->resolveRedirectRoute(); $routeParameters = []; if ($form !== null) { $routeParameters = $this->getParameterResolver()->resolveRedirectRouteParameters(is_object($data = $form->getData()) ? $data : null, $this->getParameterResolver()->resolveRedirectRouteParametersForward()); } $view = View::createRouteRedirect($route, $routeParameters); } $event->setView($view); }
/** * @param integer $id * * @Delete("/publications/{id}", name="delete_publication", requirements={"id": "\d+"}) * * @return View */ public function deletePublication($id) { $publicationRepository = $this->getPublicationRepository(); $publicationManager = $this->getPublicationManager(); $publication = $publicationRepository->find($id); if (null === $publication) { return new View(["error" => sprintf("publication %d does not exist", $id)], Codes::HTTP_NOT_FOUND); } $publicationManager->delete($publication); return View::createRouteRedirect("get_publications", [], Codes::HTTP_NO_CONTENT); }
/** * Creates a Route Redirect View. * * Convenience method to allow for a fluent interface. * * @param string $route * @param mixed $parameters * @param int $statusCode * @param array $headers * * @return View */ protected function routeRedirectView($route, array $parameters = array(), $statusCode = Codes::HTTP_CREATED, array $headers = array()) { return View::createRouteRedirect($route, $parameters, $statusCode, $headers); }
/** * Create a new resource. * * @param Request $request * * @return View view instance * * @ApiDoc() */ public function postArticlesAction(Request $request) { $form = $this->getForm(); $form->handleRequest($request); if ($form->isValid()) { // Note: use FOSHttpCacheBundle to automatically move this flash message to a cookie $this->get('session')->getFlashBag()->set('article', 'Article is stored at path: ' . $form->getData()->getPath()); // Note: normally one would likely create/update something in the database // and/or send an email and finally redirect to the newly created or updated resource url $view = View::createRouteRedirect('hello', array('name' => $form->getData()->getTitle())); } else { $view = View::create($form); $view->setTemplate('LiipHelloBundle:Rest:postArticles.html.twig'); } // Note: this would normally not be necessary, just a "hack" to make the format selectable in the form $view->setFormat($form->getData()->format); return $this->get('fos_rest.view_handler')->handle($view); }
/** * Delete a user * * @param Entity\User $user * * @return array * * @Route( * "/{id}/delete.{_format}", * name="zym_user_users_delete", * defaults={ "_format" = "html" }, * requirements = { * "id" = "\d+" * }, * methods={"GET", "POST"} * ) * @Route( * "/{id}.{_format}", * name="zym_user_users_delete_delete", * defaults={ "_format" = "html" }, * requirements = { * "id" = "\d+" * }, * methods={"DELETE"} * ) * * @SecureParam(name="user", permissions="DELETE") * * @View() * @ApiDoc( * description="Delete a user", * section="Users" * ) */ public function deleteAction(Entity\User $user) { $request = $this->getRequest(); $form = $this->createForm(new Form\DeleteType(), $user, array('method' => in_array($request->getMethod(), array('DELETE')) ? $request->getMethod() : 'POST')); $form->handleRequest($request); if ($form->isValid() || $request->getMethod() == 'DELETE') { /* @var $userManager Entity\UserManager */ $userManager = $this->get('fos_user.user_manager'); $userManager->deleteUser($user); return ViewResponse::createRouteRedirect('zym_user_users', array(), Codes::HTTP_OK); } return array('user' => $user, 'form' => $form); }
/** * Creates a Route Redirect View. * * Convenience method to allow for a fluent interface. * * @param string $route * @param mixed $parameters * @param int $statusCode * @param array $headers * * @return View */ protected function routeRedirectView($route, array $parameters = [], $statusCode = Response::HTTP_CREATED, array $headers = []) { return View::createRouteRedirect($route, $parameters, $statusCode, $headers); }
/** * @param Request $request * * @return Response */ public function afterCaptureAction(Request $request) { $configuration = $this->requestConfigurationFactory->create($this->paymentMetadata, $request); $token = $this->getHttpRequestVerifier()->verify($request); $status = new GetStatus($token); $this->payum->getGateway($token->getGatewayName())->execute($status); $resolveNextRoute = new ResolveNextRoute($status->getFirstModel()); $this->payum->getGateway($token->getGatewayName())->execute($resolveNextRoute); $this->getHttpRequestVerifier()->invalidate($token); return $this->viewHandler->handle($configuration, View::createRouteRedirect($resolveNextRoute->getRouteName(), $resolveNextRoute->getRouteParameters())); }
/** * Request reset user password: show form * * @Route( * ".{_format}", * name="zym_user_resetting_request", * defaults={ * "_format" = "html" * }, * methods={"GET", "POST"}, * options={"expose" = true} * ) * @Route( * ".{_format}", * name="fos_user_resetting_request", * defaults={ * "_format" = "html" * }, * methods={"GET", "POST"}, * options={"expose" = true} * ) * @View() * @ApiDoc( * description="Request reset user password.", * section="User Resetting", * parameters={ * {"name"="username", "dataType"="string", "required"=true, "description"="Username or Email address", "readonly"=false} * } * ) */ public function requestAction(Request $request) { $username = $request->request->get('username'); if ($request->getMethod() == 'POST') { /** @var UserManager */ $userManager = $this->container->get('fos_user.user_manager'); /** @var $user UserInterface */ $user = $userManager->findUserByUsernameOrEmail($username); /** @var TranslatorInterface */ $translator = $this->get('translator'); // Invalid username or email if (null === $user) { return ViewResponse::create(array('invalid_username' => $username, 'code' => 412, 'message' => $translator->trans('resetting.request.invalid_username', array('%username%' => $username), 'FOSUserBundle')), 412); } // User already requested password if ($user->isPasswordRequestNonExpired($this->container->getParameter('fos_user.resetting.token_ttl'))) { return ViewResponse::create(array('code' => 409, 'message' => $translator->trans('resetting.password_already_requested', array('%username%' => $username), 'FOSUserBundle')), 409); } // Generate confirmation token if (null === $user->getConfirmationToken()) { /** @var $tokenGenerator \FOS\UserBundle\Util\TokenGeneratorInterface */ $tokenGenerator = $this->container->get('fos_user.util.token_generator'); $user->setConfirmationToken($tokenGenerator->generateToken()); } $this->container->get('session')->set(static::SESSION_EMAIL, $this->getObfuscatedEmail($user)); $this->container->get('fos_user.mailer')->sendResettingEmailMessage($user); $user->setPasswordRequestedAt(new \DateTime()); $userManager->updateUser($user); // Issue with session not being saved completely before the redirect happens. $this->container->get('session')->save(); return ViewResponse::createRouteRedirect('zym_user_resetting_check_email', array('_format' => $request->getRequestFormat())); } return array(); }
/** * Delete a page * * @param Entity\Page $page * * @return array * * @Route( * "/{id}/delete.{_format}", * name="zym_content_pages_delete", * defaults={ "_format" = "html" }, * requirements = { * "id" = ".+" * }, * methods={"GET", "POST"} * ) * @Route( * "/{id}.{_format}", * name="zym_content_pages_delete_delete", * defaults={ "_format" = "html" }, * requirements = { * "id" = ".+" * }, * methods={"DELETE"} * ) * * @SecureParam(name="page", permissions="DELETE") * * @View() * @ApiDoc( * description="Delete a page", * section="Pages" * ) */ public function deleteAction(Page $page) { $request = $this->getRequest(); $form = $this->createForm(new Form\DeleteType(), $page, array('method' => in_array($request->getMethod(), array('DELETE')) ? $request->getMethod() : 'POST')); $form->handleRequest($request); if ($form->isValid() || $request->getMethod() == 'DELETE') { /* @var $pageManager Entity\PageManager */ $pageManager = $this->get('fos_page.page_manager'); $pageManager->deletePage($page); return ViewResponse::createRouteRedirect('zym_content_pages', array(), Codes::HTTP_OK); } return array('page' => $page, 'form' => $form); }
/** * Delete a group * * @param Entity\Group $group * @return array * * @Route( * "/{id}/delete.{_format}", * name="zym_user_groups_delete", * defaults={ "_format" = "html" }, * requirements = { * "id" = "\d+" * }, * methods={"GET", "POST"} * ) * @Route( * "/{id}.{_format}", * name="zym_user_groups_delete_delete", * requirements = { * "id" = "\d+" * }, * methods={"DELETE"} * ) * @View() * * @SecureParam(name="group", permissions="DELETE") * * @ApiDoc( * description="Delete a group", * section="User Groups" * ) */ public function deleteAction(Entity\Group $group) { $form = $this->createForm(new Form\DeleteType(), $group); $request = $this->getRequest(); $form->handleRequest($request); if ($form->isValid() || $request->getMethod() == 'DELETE') { /* @var $groupManager \FOS\GroupBundle\Entity\GroupManager */ $groupManager = $this->get('fos_user.group_manager'); $groupManager->deleteGroup($group); return ViewResponse::createRouteRedirect('zym_user_groups', array(), Codes::HTTP_OK); } return array('group' => $group, 'form' => $form); }
/** * @param string $resourceRouteName * @param array $parameters * * @return Response */ public function postSuccess($resourceRouteName = '', array $parameters = []) { return $this->handle(View::createRouteRedirect($resourceRouteName, $parameters, Response::HTTP_CREATED)); }
/** * @param Request $request * * @return Response */ public function afterCaptureAction(Request $request) { $configuration = $this->requestConfigurationFactory->create($this->orderMetadata, $request); $token = $this->getHttpRequestVerifier()->verify($request); $status = new GetStatus($token); $this->payum->getGateway($token->getGatewayName())->execute($status); $resolveNextRoute = new ResolveNextRoute($status->getFirstModel()); $this->payum->getGateway($token->getGatewayName())->execute($resolveNextRoute); $this->getHttpRequestVerifier()->invalidate($token); if (PaymentInterface::STATE_NEW !== $status->getValue()) { $request->getSession()->getBag('flashes')->add('info', sprintf('sylius.payment.%s', $status->getValue())); } return $this->viewHandler->handle($configuration, View::createRouteRedirect($resolveNextRoute->getRouteName(), $resolveNextRoute->getRouteParameters())); }
/** * Create a new snapshot * * @ApiDoc( * resource = true, * statusCodes = { * 200 = "Returned when successful", * 500 = "Error occurred" * } * ) * * @Annotations\View() * * @return array */ public function postSnapshotsAction() { $id = $this->snapshotService->create(); $view = View::createRouteRedirect('get_snapshot', array('id' => $id), Codes::HTTP_CREATED); $view->setData($this->snapshotService->find($id)); return $view; }
/** * @ApiDoc( * resource=true, * description="Delete a post", * section="Posts", * input="ApiBundle\Form\PostType", * statusCodes = { * 204 = "Returned when successful", * 404 = "Returned when the Post is not found" * }, * requirements={ * { * "name"="id", * "dataType"="integer", * "requirement"="\d+", * "description"="The id of the post to delete. If not found, an exception will be raised" * } * } * ) * * @param integer $id * * @return Response */ public function deletePostAction($id) { $post = $this->get('api.post_manager')->getPostById($id); if (is_null($post)) { throw $this->createNotFoundException('Post not found: ' . $id); } else { $statusCode = Codes::HTTP_NO_CONTENT; } $this->get('api.post_manager')->remove($post); $view = View::createRouteRedirect('get_posts', array(), $statusCode); return $this->handleView($view); }