Search in sources :

Example 1 with Post

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();
}
Also used : ValidationMessage(br.com.caelum.vraptor.validator.ValidationMessage) Path(br.com.caelum.vraptor.Path) Post(br.com.caelum.vraptor.Post)

Example 2 with Post

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();
}
Also used : Sessao(br.com.caelum.agiletickets.models.Sessao) Espetaculo(br.com.caelum.agiletickets.models.Espetaculo) Path(br.com.caelum.vraptor.Path) Post(br.com.caelum.vraptor.Post)

Example 3 with Post

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());
}
Also used : Item(br.com.caelum.vraptor.restbucks.Item) Path(br.com.caelum.vraptor.Path) Consumes(br.com.caelum.vraptor.Consumes) Post(br.com.caelum.vraptor.Post)

Example 4 with Post

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();
}
Also used : ValidationMessage(br.com.caelum.vraptor.validator.ValidationMessage) Sessao(br.com.caelum.agiletickets.models.Sessao) BigDecimal(java.math.BigDecimal) Path(br.com.caelum.vraptor.Path) Post(br.com.caelum.vraptor.Post)

Example 5 with Post

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();
}
Also used : Validations(br.com.caelum.vraptor.validator.Validations) Path(br.com.caelum.vraptor.Path) Post(br.com.caelum.vraptor.Post)

Aggregations

Path (br.com.caelum.vraptor.Path)5 Post (br.com.caelum.vraptor.Post)5 Sessao (br.com.caelum.agiletickets.models.Sessao)2 ValidationMessage (br.com.caelum.vraptor.validator.ValidationMessage)2 Espetaculo (br.com.caelum.agiletickets.models.Espetaculo)1 Consumes (br.com.caelum.vraptor.Consumes)1 Item (br.com.caelum.vraptor.restbucks.Item)1 Validations (br.com.caelum.vraptor.validator.Validations)1 BigDecimal (java.math.BigDecimal)1