Browse Source

Remove JSON elements when NULL

Added new Resource endpoints for ScanRequests and ScanRequest
Start fleshing out invoke parameters to pass to scan
refactor_future_hack
Jonathan Christison 3 years ago
parent
commit
24059710cb
  1. 10
      src/main/java/com/redhat/pctsec/model/ScanRequest.java
  2. 18
      src/main/java/com/redhat/pctsec/model/jpa/ScanRequestRepository.java
  3. 16
      src/main/java/com/redhat/pctsec/model/jpa/ScanRequestsRepository.java
  4. 49
      src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanRequestResource.java
  5. 29
      src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanRequestsResource.java

10
src/main/java/com/redhat/pctsec/model/ScanRequest.java

@ -1,6 +1,7 @@
package com.redhat.pctsec.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.redhat.pctsec.model.api.request.git;
import com.redhat.pctsec.tekton.brewTaskRun;
import com.redhat.pctsec.tekton.scmUrlPipelineRun;
@ -17,8 +18,6 @@ import java.util.UUID;
@Entity
public class ScanRequest {
@Id
@GeneratedValue
protected UUID id;
@ -46,14 +45,21 @@ public class ScanRequest {
@OneToOne(fetch=FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "brew_build_id", referencedColumnName = "id")
@JsonInclude(JsonInclude.Include.NON_NULL)
public BrewBuild brewBuild;
@OneToOne(fetch=FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "pnc_build_id", referencedColumnName = "id")
@JsonInclude(JsonInclude.Include.NON_NULL)
public PNCBuild pncBuild;
@OneToOne(fetch=FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "git_id", referencedColumnName = "id")
@JsonInclude(JsonInclude.Include.NON_NULL)
public Git git;
@Column(name="scan_properties")
public String scanProperties;
public ScanRequest() {
}

18
src/main/java/com/redhat/pctsec/model/jpa/ScanRequestRepository.java

@ -0,0 +1,18 @@
package com.redhat.pctsec.model.jpa;
import com.redhat.pctsec.model.ScanRequest;
import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase;
import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped;
import java.util.UUID;
@ApplicationScoped
public class ScanRequestRepository implements PanacheRepositoryBase<ScanRequest, UUID> {
public Uni<ScanRequest> findByProduct(String product)
{
return find("product", product).firstResult();
}
}

16
src/main/java/com/redhat/pctsec/model/jpa/ScanRequestsRepository.java

@ -1,4 +1,18 @@
package com.redhat.pctsec.model.jpa;
public class ScanRequestsRepository {
import com.redhat.pctsec.model.Scan;
import com.redhat.pctsec.model.ScanRequests;
import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase;
import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped;
import java.util.UUID;
@ApplicationScoped
public class ScanRequestsRepository implements PanacheRepositoryBase<ScanRequests, UUID> {
public Uni<Scan> findByProduct(String product)
{
return find("product", product).firstResult();
}
}

49
src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanRequestResource.java

@ -0,0 +1,49 @@
package com.redhat.pctsec.rest.v1alpha1;
import com.redhat.pctsec.model.Scan;
import com.redhat.pctsec.model.ScanRequest;
import com.redhat.pctsec.model.ScanRequests;
import com.redhat.pctsec.model.jpa.ScanRequestRepository;
import com.redhat.pctsec.model.osh.paramMapper;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.ws.rs.*;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import picocli.CommandLine;
import java.util.UUID;
@ApplicationScoped
@Path("/api/v1a/ScanRequest/{id}")
public class ScanRequestResource {
@Inject
ScanRequestRepository sr;
@GET
@Produces({"application/json"})
public ScanRequest getScanRequest(String id)
{
ScanRequest scanRequest = sr.findById(UUID.fromString(id));
return scanRequest;
}
@PATCH
@Path("ScanProperties/{scanProperties}")
@Consumes({"application/octet-stream"})
@Produces({"application/json"})
public ScanRequest patchScanRequest(String id, String scanProperties)
{
ScanRequest scanRequest = sr.findById(UUID.fromString(id));
try {
paramMapper pm = new paramMapper(scanProperties);
} catch(CommandLine.UnmatchedArgumentException e)
{
throw new BadRequestException("Invalid OSH Parameter");
}
scanRequest.scanProperties = scanProperties;
sr.persist(scanRequest);
return scanRequest;
}
}

29
src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanRequestsResource.java

@ -1,4 +1,33 @@
package com.redhat.pctsec.rest.v1alpha1;
import com.redhat.pctsec.model.Scan;
import com.redhat.pctsec.model.ScanRequest;
import com.redhat.pctsec.model.ScanRequests;
import com.redhat.pctsec.model.jpa.ScanRepository;
import com.redhat.pctsec.model.jpa.ScanRequestsRepository;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import java.util.UUID;
@ApplicationScoped
@Path("/api/v1a/ScanRequests")
public class ScanRequestsResource {
@Inject
ScanRequestsRepository sr;
@GET
@Path("{id}")
@Produces({"application/json"})
public ScanRequests getScanRequests(String id)
{
ScanRequests scanRequests = sr.findById(UUID.fromString(id));
return scanRequests;
}
}

Loading…
Cancel
Save