@Override public void redirectTo(String uri) { use(page()).redirectTo(uri); }
public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException { if (result.used()) { logger.debug("Request already dispatched and commited somewhere else, not forwarding."); return; } // TODO: maybe the response.isCommited is true, we should warn before // trying to forward logger.debug("forwarding to the dafault page for this logic"); result.use(Results.page()).defaultView(); }
@Override public void forwardTo(String uri) { use(page()).forwardTo(uri); }
@Test public void shouldNotThrowNullPointersOnLogicResult() throws Exception { result.use(logic()).forwardTo(AController.class).aMethod(); result.use(logic()).redirectTo(AController.class).aMethod(); }
@Test public void shouldThrowExceptionOnlyAtTheEndOfValidationCall() throws Exception { when(result.use(LogicResult.class)).thenReturn(new MockedLogic()); when(result.use(PageResult.class)).thenReturn(new MockedPage()); factory.instanceFor(LogicResult.class, errors); factory.instanceFor(LogicResult.class, errors).forwardTo(RandomComponent.class); factory.instanceFor(PageResult.class, errors); factory.instanceFor(PageResult.class, errors).of(RandomComponent.class); }
@Test public void shouldNotThrowNullPointersOnPageResult() throws Exception { result.use(page()).defaultView(); result.use(page()).forwardTo("Abc"); result.use(page()).include(); result.use(page()).of(AController.class).aMethod(); result.use(page()).redirectTo("abc"); } @Test
@Override public <T> T of(Class<T> controller) { return use(page()).of(controller); }
@Override public <T> T onErrorUsePageOf(Class<T> controller) { return onErrorUse(page()).of(controller); }
@Test public void shouldDelegateToPageResultOnRedirectToURI() throws Exception { PageResult pageResult = mockResult(PageResult.class); result.redirectTo("/any/uri"); verify(pageResult).redirectTo("/any/uri"); }
public void forward(@Observes RequestSucceded event) { if (result.used() || event.getResponse().isCommitted()) { logger.debug("Request already dispatched and commited somewhere else, not forwarding."); return; } logger.debug("forwarding to the dafault page for this logic"); result.use(Results.page()).defaultView(); } }
@Override public void redirect() throws IllegalStateException { String referer = getReferer(); try { ControllerMethod method = router.parse(referer, HttpMethod.GET, request); executeMethod(method, result.use(logic()).redirectTo(method.getController().getType())); } catch (ControllerNotFoundException | MethodNotAllowedException e) { logger.warn("Could not find or doesn't allowed to get controller method", e); result.use(page()).redirectTo(referer); } }
@Override public <T> Serializer from(T object) { result.include(extractor.nameFor(object.getClass()), object); result.use(page()).defaultView(); return new IgnoringSerializer(); }
@Test public void shouldUseValidationVersionOfPageResult() throws Exception { exception.expect(ValidationException.class); when(result.use(PageResult.class)).thenReturn(new MockedPage()); factory.instanceFor(PageResult.class, errors).forwardTo("any uri"); }
@Post("/auth/facebook") public void login(final String profile) { LOGGER.debug("logging in user " + profile); final SystemUser user = facebook.connectedOrFindUserFor(profile); SystemUser toLogin = facebook.createOrConnectUser(profile, user); if (toLogin == null) { validator.add(new I18nMessage("vraptor.inexisting_facebook_user", "vraptor.inexisting_facebook_user")); validator.onErrorUse(page()).redirectTo("/"); } else { auth.authenticate(toLogin); } result.redirectTo("/"); }
@Override public <T> Serializer from(T object, String alias) { result.include(alias, object); result.use(page()).defaultView(); return new IgnoringSerializer(); }
@Before public void setup() { ResourceBundle bundle = new SafeResourceBundle(ResourceBundle.getBundle("messages")); ValidatorFactory validatorFactory = javax.validation.Validation.buildDefaultValidatorFactory(); javax.validation.Validator bvalidator = validatorFactory.getValidator(); MessageInterpolator interpolator = validatorFactory.getMessageInterpolator(); Proxifier proxifier = new JavassistProxifier(); Messages messages = new Messages(); validator = new DefaultValidator(result, new DefaultValidationViewsFactory(result, proxifier, new DefaultReflectionProvider()), outjector, proxifier, bundle, bvalidator, interpolator, Locale.ENGLISH, messages); when(result.use(LogicResult.class)).thenReturn(logicResult); when(result.use(PageResult.class)).thenReturn(pageResult); when(logicResult.forwardTo(MyComponent.class)).thenReturn(instance); when(pageResult.of(MyComponent.class)).thenReturn(instance); }
@Override public void forward() throws IllegalStateException { String referer = getReferer(); try { ControllerMethod method = router.parse(referer, HttpMethod.GET, request); executeMethod(method, result.use(logic()).forwardTo(method.getController().getType())); } catch (ControllerNotFoundException | MethodNotAllowedException e) { logger.warn("Could not find or doesn't allowed to get controller method", e); result.use(page()).forwardTo(referer); } }