package com.redhat.pctsec.model; import com.fasterxml.jackson.annotation.JsonIgnore; import com.redhat.pctsec.model.api.service.AltPncService; //import com.redhat.pctsec.model.api.service.PncService; import io.quarkus.rest.client.reactive.QuarkusRestClientBuilder; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.persistence.Entity; import jakarta.persistence.Transient; import org.eclipse.microprofile.config.ConfigProvider; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.jboss.pnc.dto.Build; import java.net.URI; import java.net.URL; @Entity public class PNCBuild extends BuildType{ @Transient public static final String apiUrl = ConfigProvider.getConfig().getValue("pnc.api-url",String.class); @Transient private static final AltPncService pnc = QuarkusRestClientBuilder.newBuilder().baseUri(URI.create(apiUrl)).build(AltPncService.class); /* @Transient PncService pnc; */ @Transient @JsonIgnore private Build build; private URI SCMURL; private String revision; public PNCBuild() { super(); } public Build getBuild() { if(build == null) build = pnc.getBuild(this.buildRef); return build; } public PNCBuild(String buildRef) { super(buildRef); } @Override public URI SCMURL() { if(SCMURL == null) SCMURL = URI.create(getBuild().getScmUrl()); return this.SCMURL; } @Override public URL URL() { return null; } @Override public String revision() { if(revision == null) revision = getBuild().getScmTag(); return revision; } public static boolean isValidRef(String ref){ //New type PNC Ref if(ref.length()!=14) return false; return true; } }