package br.com.doctors.controller.administracao; import br.com.caelum.vraptor.Get; import br.com.caelum.vraptor.Path; import br.com.caelum.vraptor.Post; import br.com.caelum.vraptor.Put; import br.com.caelum.vraptor.Resource; import br.com.caelum.vraptor.Result; import br.com.caelum.vraptor.Validator; import br.com.caelum.vraptor.validator.Validations; import br.com.doctors.dao.administracao.ConvenioDao; import br.com.doctors.modelo.administracao.Convenio; /*** * * @author Guilherme/Jonathan * */ @Resource public class ConveniosController { private ConvenioDao dao; private Result result; private Validator validator; public ConveniosController(ConvenioDao dao, Result result, Validator validator ) { this.dao = dao; this.result = result; this.validator = validator; } public void index(){ } @Get @Path("/convenios/novo") public void cadastro(){ } @Get @Path({"/convenios"}) public void list(){ result.include("convenios", dao.listaTudo()); } @Post @Path("/convenios") public void adiciona(final Convenio convenio){ validator.checking(getValidations(convenio)); validator.onErrorUsePageOf(this).cadastro(); dao.adiciona(convenio); result.redirectTo(this).list(); } @Get @Path("/convenios/{id}") public Convenio edit(Long id){ Convenio c = dao.carrega(id); System.out.println(c); return c; } @Put @Path("/convenios/{convenio.id}") public void alterar(final Convenio convenio){ validator.checking(getValidations(convenio)); validator.onErrorUsePageOf(this).edit(convenio.getId()); dao.atualiza(convenio); result.redirectTo(ConveniosController.class).list(); } @Path("/convenios/remover/{id}") public void remover(Long id){ Convenio convenio = dao.carrega(id); dao.remove(convenio); result.redirectTo(ConveniosController.class).list(); } public void buscaForm(){ } public void busca(String nome){ result.include("nome", nome); result.include("resultados", dao.busca(nome) ); } private Validations getValidations(final Convenio convenio) { return new Validations(){{ that(convenio.getNome() != null && convenio.getNome().length() >= 3, "convenio.nome", "nome.obrigatorio"); }}; } }