package remote; import java.net.URI; import java.net.URISyntaxException; import javax.inject.Inject; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import javax.validation.constraints.Min; import javax.validation.executable.ValidateOnExecution; import javax.ws.rs.BeanParam; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Context; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import com.procergs.arqjava4.exception.RNException; import com.procergs.arqjava4.security.Permissao; import com.procergs.gpn.infra.AppInterceptor; import com.procergs.gpn.infra.BasicRest; import com.procergs.gpn.rnbd.testando.ConsultaEditalDTO; import com.procergs.gpn.rnbd.testando.EditalDTO; import com.procergs.gpn.rnbd.testando.NovoRecurso; import com.procergs.gpn.rnbd.testando.ResponseConsultaPaginadaDTO; import com.procergs.gpn.rnbd.testando.TestandoRN; import io.swagger.v3.oas.annotations.tags.Tag; @Tag(name = "testando") @Path("testando") @ValidateOnExecution @AppInterceptor public class TestaEndpointRest extends BasicRest { @Inject private TestandoRN testandoRN; @Context private HttpServletRequest request; @Permissao(desabilitada = true) @GET public Response consultaTabelaEdital(@BeanParam ConsultaEditalDTO dto) { ResponseConsultaPaginadaDTO response = testandoRN.consultarEditais(dto); if(response != null && response.getTotal() == 0) { return Response.status(Status.NOT_FOUND).build(); } return Response.ok(response).build(); } @Permissao(desabilitada = true) @POST @Path("post") public Response criaNovoRecurso(@Valid NovoRecurso novoRecurso) throws URISyntaxException { // throw new RNException("testando essa situação"); System.out.println(request.getRequestURI()); return Response.created(new URI(request.getRequestURI())).build(); } @Permissao(desabilitada = true) @GET @Path("nada/{parametro}") public Response consultaNada(@PathParam("parametro") @Min(value = 3) Long parametro) { return Response.ok(parametro).build(); } }