@Post @Path("/sessao/{sessaoId}/reserva") public void reserva(Long sessaoId, final Integer quantidade) { Sessao sessao = agenda.sessao(sessaoId); if (sessao == null) { result.notFound(); return; } if (quantidade < 1) { validator.add(new SimpleMessage("", "Você deve escolher um lugar ou mais")); } if (!sessao.podeReservar(quantidade)) { validator.add(new SimpleMessage("", "Não existem ingressos disponíveis")); } // em caso de erro, redireciona para a lista de sessao validator.onErrorRedirectTo(this).sessao(sessao.getId()); BigDecimal precoTotal = CalculadoraDePrecos.calcula(sessao, quantidade); sessao.reserva(quantidade); result.include("message", "Sessão reservada com sucesso por " + CURRENCY.format(precoTotal)); result.redirectTo(IndexController.class).index(); }
@IncludeParameters public void adiciona(@Valid Usuario usuario) { validator.onErrorRedirectTo(this).form(); usuario.setCriado(LocalDateTime.now()); usuario.setCriadoPor(usuario.getUsuarioId().toString()); usuarioDao.adiciona(usuario); result.redirectTo(this).lista(); }
@Post("/espetaculos") public void adiciona(Espetaculo espetaculo) { // aqui eh onde fazemos as varias validacoes // se nao tiver nome, avisa o usuario // se nao tiver descricao, avisa o usuario if (Strings.isNullOrEmpty(espetaculo.getNome())) { validator.add(new SimpleMessage("", "Nome do espetáculo não pode estar em branco")); } if (Strings.isNullOrEmpty(espetaculo.getDescricao())) { validator.add(new SimpleMessage("", "Descrição do espetáculo não pode estar em branco")); } validator.onErrorRedirectTo(this).lista(); agenda.cadastra(espetaculo); result.redirectTo(this).lista(); }