use of br.com.caelum.vraptor.Post in project agiletickets by caelum.
the class EspetaculosController method adiciona.
@Post
@Path("/espetaculos")
public void adiciona(Espetaculo espetaculo) {
// se nao tiver descricao, avisa o usuario
if (Strings.isNullOrEmpty(espetaculo.getNome())) {
validator.add(new ValidationMessage("Nome do espetáculo não pode estar em branco", ""));
}
if (Strings.isNullOrEmpty(espetaculo.getDescricao())) {
validator.add(new ValidationMessage("Descrição do espetáculo não pode estar em branco", ""));
}
validator.onErrorRedirectTo(this).lista();
agenda.cadastra(espetaculo);
result.redirectTo(this).lista();
}
use of br.com.caelum.vraptor.Post in project agiletickets by caelum.
the class EspetaculosController method cadastraSessoes.
@Post
@Path("/espetaculo/{espetaculoId}/sessoes")
public void cadastraSessoes(Long espetaculoId, LocalDate inicio, LocalDate fim, LocalTime horario, Periodicidade periodicidade) {
Espetaculo espetaculo = carregaEspetaculo(espetaculoId);
// aqui faz a magica!
// cria sessoes baseado no periodo de inicio e fim passados pelo usuario
List<Sessao> sessoes = espetaculo.criaSessoes(inicio, fim, horario, periodicidade);
agenda.agende(sessoes);
result.include("message", sessoes.size() + " sessões criadas com sucesso");
result.redirectTo(this).lista();
}
use of br.com.caelum.vraptor.Post in project restfulie-java by caelum.
the class OrderingController method add.
@Post
@Path("/orders")
@Consumes
public void add(Order order) {
int id = 0;
for (Item i : order.getItems()) {
i.use(order, ++id);
}
database.save(order);
routes.uriFor(OrderingController.class).get(order);
status.created(routes.getUri());
}
use of br.com.caelum.vraptor.Post in project agiletickets by caelum.
the class EspetaculosController method reserva.
@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 ValidationMessage("Você deve escolher um lugar ou mais", ""));
}
if (!sessao.podeReservar(quantidade)) {
validator.add(new ValidationMessage("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();
}
use of br.com.caelum.vraptor.Post in project agiletickets by caelum.
the class EstabelecimentosController method adiciona.
@Post
@Path("/estabelecimentos")
public void adiciona(final Estabelecimento estabelecimento) {
// validando!
validator.checking(new Validations() {
{
that(!Strings.isNullOrEmpty(estabelecimento.getNome()), "estabelecimento.nome", "nome.nulo");
that(!Strings.isNullOrEmpty(estabelecimento.getEndereco()), "estabelecimento.endereco", "endereco.nulo");
}
});
validator.onErrorRedirectTo(this).lista();
diretorio.adiciona(estabelecimento);
result.redirectTo(this).lista();
}
Aggregations