@Override public String getId() { return Objects.toString(validationStamp.id()); }
private void cleanPromotionLevel(PromotionLevel promotionLevel, int validationStampId) { Optional<AutoPromotionProperty> oProperty = propertyService.getProperty(promotionLevel, AutoPromotionPropertyType.class).option(); if (oProperty.isPresent()) { AutoPromotionProperty property = oProperty.get(); List<ValidationStamp> keptValidationStamps = property.getValidationStamps().stream().filter( validationStamp -> (validationStampId != validationStamp.id()) ).collect(Collectors.toList()); if (keptValidationStamps.size() < property.getValidationStamps().size()) { property = new AutoPromotionProperty( keptValidationStamps, property.getInclude(), property.getExclude() ); propertyService.editProperty( promotionLevel, AutoPromotionPropertyType.class, property ); } } }
@Override public List<ValidationRun> getValidationRunsForValidationStamp(ValidationStamp validationStamp, int offset, int count, Function<String, ValidationRunStatusID> validationRunStatusService) { return getNamedParameterJdbcTemplate().query( "SELECT VR.*, VDR.DATA_TYPE_ID, VDR.DATA " + "FROM VALIDATION_RUNS VR " + "LEFT JOIN VALIDATION_RUN_DATA VDR ON VDR.VALIDATION_RUN = VR.ID " + "WHERE VR.VALIDATIONSTAMPID = :validationStampId " + "ORDER BY VR.BUILDID DESC, VR.ID DESC " + "LIMIT :limit OFFSET :offset", params("validationStampId", validationStamp.id()) .addValue("limit", count) .addValue("offset", offset), (rs, rowNum) -> toValidationRun( rs, this::getBuild, id -> validationStamp, validationRunStatusService ) ); }
@Override public List<ValidationRun> getValidationRunsForBuildAndValidationStamp(Build build, ValidationStamp validationStamp, Function<String, ValidationRunStatusID> validationRunStatusService) { return getNamedParameterJdbcTemplate().query( "SELECT VR.*, VDR.DATA_TYPE_ID, VDR.DATA " + "FROM VALIDATION_RUNS VR " + "LEFT JOIN VALIDATION_RUN_DATA VDR ON VDR.VALIDATION_RUN = VR.ID " + "WHERE VR.BUILDID = :buildId " + "AND VR.VALIDATIONSTAMPID = :validationStampId " + "ORDER BY VR.ID DESC ", params("buildId", build.id()).addValue("validationStampId", validationStamp.id()), (rs, rowNum) -> toValidationRun( rs, id -> build, id -> validationStamp, validationRunStatusService ) ); }
@Override public List<ValidationRun> getValidationRunsForBuildAndValidationStamp(Build build, ValidationStamp validationStamp, int offset, int count, Function<String, ValidationRunStatusID> validationRunStatusService) { return getNamedParameterJdbcTemplate().query( "SELECT VR.*, VDR.DATA_TYPE_ID, VDR.DATA " + "FROM VALIDATION_RUNS VR " + "LEFT JOIN VALIDATION_RUN_DATA VDR ON VDR.VALIDATION_RUN = VR.ID " + "WHERE VR.BUILDID = :buildId " + "AND VR.VALIDATIONSTAMPID = :validationStampId " + "ORDER BY VR.ID DESC " + "LIMIT :limit OFFSET :offset", params("buildId", build.id()).addValue("validationStampId", validationStamp.id()) .addValue("limit", count) .addValue("offset", offset), (rs, rowNum) -> toValidationRun( rs, id -> build, id -> validationStamp, validationRunStatusService ) ); }
@Override public ValidationRun newValidationRun(ValidationRun validationRun, Function<String, ValidationRunStatusID> validationRunStatusService) { // Validation run itself (parent) int id = dbCreate( "INSERT INTO VALIDATION_RUNS(BUILDID, VALIDATIONSTAMPID) VALUES (:buildId, :validationStampId)", params("buildId", validationRun.getBuild().id()) .addValue("validationStampId", validationRun.getValidationStamp().id()) ); // Data if (validationRun.getData() != null) { getNamedParameterJdbcTemplate().update( "INSERT INTO VALIDATION_RUN_DATA(VALIDATION_RUN, DATA_TYPE_ID, DATA) VALUES (:validationRunId, :dataTypeId, CAST(:data AS JSONB))", params("validationRunId", id) .addValue("dataTypeId", validationRun.getData().getDescriptor().getId()) .addValue("data", writeJson(validationRun.getData().getData())) ); } // Statuses validationRun.getValidationRunStatuses() .forEach(validationRunStatus -> newValidationRunStatus(id, validationRunStatus)); // Reloads the run return getValidationRun(ID.of(id), validationRunStatusService); }
@Override public void saveValidationStamp(ValidationStamp validationStamp) { // Update try { getNamedParameterJdbcTemplate().update( "UPDATE VALIDATION_STAMPS SET NAME = :name, DESCRIPTION = :description, DATA_TYPE_ID = :dataTypeId, DATA_TYPE_CONFIG = CAST(:dataTypeConfig AS JSONB) WHERE ID = :id", params("name", validationStamp.getName()) .addValue("description", validationStamp.getDescription()) .addValue("id", validationStamp.id()) .addValue("dataTypeId", validationStamp.getDataType() != null ? validationStamp.getDataType().getDescriptor().getId() : null) .addValue("dataTypeConfig", validationStamp.getDataType() != null ? writeJson(validationStamp.getDataType().getConfig()) : null) ); } catch (DuplicateKeyException ex) { throw new ValidationStampNameAlreadyDefinedException(validationStamp.getName()); } }