package br.edu.uniritter.liquid.democracy.controller; import static br.edu.uniritter.liquid.democracy.validator.CustomMatchers.notNull; import static org.hamcrest.Matchers.is; import java.util.List; import br.com.caelum.vraptor.Get; import br.com.caelum.vraptor.Post; 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.edu.uniritter.liquid.democracy.annotation.Public; import br.edu.uniritter.liquid.democracy.model.Organization; import br.edu.uniritter.liquid.democracy.service.OrganizationService; @Resource public class OrganizationController { private Result result; private OrganizationService service; private final Validator validator; public OrganizationController(Result result, OrganizationService service, Validator validator) { this.result = result; this.service = service; this.validator = validator; } @Public @Get("/organization") public void home() { List<Organization> organizations = service.findAll(); result.include("organizations", organizations); } @Public @Get("/organization/new") public void add() { } @Public @Post("/organization/new") public void add(Organization organization) { validate(organization); service.create(organization); } @Public @Post("/organization/delete/{id}") public void delete(Long id) { Organization organization = service.findById(id); service.delete(organization); result.redirectTo(OrganizationController.class).home(); } private void validate(final Organization organization) { validator.checking(new Validations() { { that(organization, is(notNull()), "erro", "Erro ao validar Organization."); } }); validator.onErrorUsePageOf(OrganizationController.class).add(); } }