package rest; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Set; import dto.ScanObj; import dto.ConnectDB; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import io.quarkus.security.Authenticated; // @Path("/api/v1/[osh-scan]") @Path("/scanGet") @Authenticated public class CreateGetResource { private static final Logger logger = LoggerFactory.getLogger(CreateGetResource.class); CreateScanService createScanService; private Set Scans = Collections.newSetFromMap(Collections.synchronizedMap(new LinkedHashMap<>())); public CreateGetResource() { // LDB: @TODO either put some code here or remove this not used public constructor } @GET @Path("/{scanId}") public Set list(@PathParam("scanId") String scanId) { //use to return specific scanIds just use usual fetch from sets, will be querying hte db directly here ConnectDB connectDB = new ConnectDB(); String sql = "SELECT * FROM scans WHERE scan_id=?"; try(Connection conn = connectDB.connect(); PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setString(1, scanId); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { //very ugly solution needs some change to where we put the query Scans.add(new ScanObj( rs.getString("scan_id"), rs.getString("offering_id"), rs.getString("event_id"), rs.getString("is_managed_service"), rs.getString("component_list"))); } } catch (SQLException e) { logger.error(e.getMessage()); } return Scans; } }