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);
 }
Example #2
0
 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());
 }
Example #3
0
 /**
  * @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);
 }
Example #5
0
 /**
  * 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);
 }
Example #7
0
 /**
  * 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);
 }
Example #8
0
 /**
  * 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);
 }
Example #9
0
 /**
  * @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()));
 }
Example #10
0
 /**
  * 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();
 }
Example #11
0
 /**
  * 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);
 }
Example #12
0
 /**
  * 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));
 }
Example #14
0
 /**
  * @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()));
 }
Example #15
0
 /**
  * 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;
 }
Example #16
0
 /**
  * @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);
 }