public QGateWithOrgDto getByOrganizationAndId(DbSession dbSession, OrganizationDto organization, long qualityGateId) { return checkFound( dbClient.qualityGateDao().selectByOrganizationAndId(dbSession, organization, qualityGateId), "No quality gate has been found for id %s in organization %s", qualityGateId, organization.getName()); }
@Test public void select_by_organization_and_id() { OrganizationDto organization = db.organizations().insert(); QGateWithOrgDto qualityGate1 = db.qualityGates().insertQualityGate(organization); QGateWithOrgDto qualityGate2 = db.qualityGates().insertQualityGate(organization); OrganizationDto otherOrganization = db.organizations().insert(); QGateWithOrgDto qualityGate3 = db.qualityGates().insertQualityGate(otherOrganization); assertThat(underTest.selectByOrganizationAndId(dbSession, organization, qualityGate1.getId()).getUuid()).isEqualTo(qualityGate1.getUuid()); assertThat(underTest.selectByOrganizationAndId(dbSession, otherOrganization, qualityGate3.getId()).getUuid()).isEqualTo(qualityGate3.getUuid()); assertThat(underTest.selectByOrganizationAndId(dbSession, organization, 123L)).isNull(); }
@Override public void handle(Request request, Response response) { long conditionId = request.mandatoryParamAsLong(PARAM_ID); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganization(dbSession, request); QualityGateConditionDto condition = wsSupport.getCondition(dbSession, conditionId); QGateWithOrgDto qualityGateDto = dbClient.qualityGateDao().selectByOrganizationAndId(dbSession, organization, condition.getQualityGateId()); checkState(qualityGateDto != null, "Condition '%s' is linked to an unknown quality gate '%s'", conditionId, condition.getQualityGateId()); wsSupport.checkCanEdit(qualityGateDto); dbClient.gateConditionDao().delete(condition, dbSession); dbSession.commit(); response.noContent(); } }
@Test public void delete_quality_gate() { OrganizationDto organization = db.organizations().insert(); db.qualityGates().createDefaultQualityGate(organization); QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization); userSession.addPermission(ADMINISTER_QUALITY_GATES, organization); ws.newRequest() .setParam(PARAM_ID, qualityGate.getId().toString()) .setParam(PARAM_ORGANIZATION, organization.getKey()) .execute(); assertThat(db.getDbClient().qualityGateDao().selectByOrganizationAndId(dbSession, organization, qualityGate.getId())).isNull(); }
@Test public void delete_quality_gate_if_non_default_when_a_default_exist() { OrganizationDto organization = db.organizations().insert(); db.qualityGates().createDefaultQualityGate(organization); QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization); userSession.addPermission(ADMINISTER_QUALITY_GATES, organization); ws.newRequest() .setParam(PARAM_ID, valueOf(qualityGate.getId())) .setParam(PARAM_ORGANIZATION, organization.getKey()) .execute(); assertThat(db.getDbClient().qualityGateDao().selectByOrganizationAndId(dbSession, organization, qualityGate.getId())).isNull(); }
@Override public void handle(Request request, Response response) { int id = request.mandatoryParamAsInt(PARAM_ID); String metric = request.mandatoryParam(PARAM_METRIC); String operator = request.mandatoryParam(PARAM_OPERATOR); String error = request.mandatoryParam(PARAM_ERROR); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganization(dbSession, request); QualityGateConditionDto condition = wsSupport.getCondition(dbSession, id); QGateWithOrgDto qualityGateDto = dbClient.qualityGateDao().selectByOrganizationAndId(dbSession, organization, condition.getQualityGateId()); checkState(qualityGateDto != null, "Condition '%s' is linked to an unknown quality gate '%s'", id, condition.getQualityGateId()); wsSupport.checkCanEdit(qualityGateDto); QualityGateConditionDto updatedCondition = qualityGateConditionsUpdater.updateCondition(dbSession, condition, metric, operator, error); UpdateConditionResponse.Builder updateConditionResponse = UpdateConditionResponse.newBuilder() .setId(updatedCondition.getId()) .setMetric(updatedCondition.getMetricKey()) .setError(updatedCondition.getErrorThreshold()) .setOp(updatedCondition.getOperator()); writeProtobuf(updateConditionResponse.build(), request, response); dbSession.commit(); } } }
@Test public void default_organization_is_used_when_no_organization_parameter() { OrganizationDto defaultOrganization = db.getDefaultOrganization(); db.qualityGates().createDefaultQualityGate(defaultOrganization); userSession.addPermission(ADMINISTER_QUALITY_GATES, defaultOrganization); QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(defaultOrganization); OrganizationDto otherOrganization = db.organizations().insert(); QGateWithOrgDto otherQualityGate = db.qualityGates().insertQualityGate(otherOrganization); ws.newRequest() .setParam(PARAM_ID, valueOf(qualityGate.getId())) .execute(); assertThat(db.getDbClient().qualityGateDao().selectByOrganizationAndId(dbSession, defaultOrganization, qualityGate.getId())).isNull(); }
@Test public void delete_quality_gate_and_any_association_to_any_project() { OrganizationDto organization = db.organizations().insert(); db.qualityGates().createDefaultQualityGate(organization); QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization); ComponentDto prj1 = db.components().insertPublicProject(organization); ComponentDto prj2 = db.components().insertPublicProject(organization); db.qualityGates().associateProjectToQualityGate(prj1, qualityGate); db.qualityGates().associateProjectToQualityGate(prj2, qualityGate); userSession.addPermission(ADMINISTER_QUALITY_GATES, organization); ws.newRequest() .setParam(PARAM_ID, valueOf(qualityGate.getId())) .setParam(PARAM_ORGANIZATION, organization.getKey()) .execute(); assertThat(db.getDbClient().qualityGateDao().selectByOrganizationAndId(dbSession, organization, qualityGate.getId())) .isNull(); assertThat(db.getDbClient().propertiesDao().selectProjectProperties(prj1.getDbKey())) .isEmpty(); assertThat(db.getDbClient().propertiesDao().selectProjectProperties(prj2.getDbKey())) .isEmpty(); }
public QGateWithOrgDto getByOrganizationAndId(DbSession dbSession, OrganizationDto organization, long qualityGateId) { return checkFound(dbClient.qualityGateDao().selectByOrganizationAndId(dbSession, organization, qualityGateId), "No quality gate has been found for id %s in organization %s", qualityGateId, organization.getName()); }
@Override public void handle(Request request, Response response) { long conditionId = request.mandatoryParamAsLong(PARAM_ID); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganization(dbSession, request); QualityGateConditionDto condition = wsSupport.getCondition(dbSession, conditionId); QGateWithOrgDto qualityGateDto = dbClient.qualityGateDao().selectByOrganizationAndId(dbSession, organization, condition.getQualityGateId()); checkState(qualityGateDto != null, "Condition '%s' is linked to an unknown quality gate '%s'", conditionId, condition.getQualityGateId()); wsSupport.checkCanEdit(qualityGateDto); dbClient.gateConditionDao().delete(condition, dbSession); dbSession.commit(); response.noContent(); } }
@Override public void handle(Request request, Response response) { int id = request.mandatoryParamAsInt(PARAM_ID); String metric = request.mandatoryParam(PARAM_METRIC); String operator = request.mandatoryParam(PARAM_OPERATOR); String warning = request.param(PARAM_WARNING); String error = request.param(PARAM_ERROR); Integer period = request.paramAsInt(PARAM_PERIOD); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganization(dbSession, request); QualityGateConditionDto condition = wsSupport.getCondition(dbSession, id); QGateWithOrgDto qualityGateDto = dbClient.qualityGateDao().selectByOrganizationAndId(dbSession, organization, condition.getQualityGateId()); checkState(qualityGateDto != null, "Condition '%s' is linked to an unknown quality gate '%s'", id, condition.getQualityGateId()); wsSupport.checkCanEdit(qualityGateDto); QualityGateConditionDto updatedCondition = qualityGateConditionsUpdater.updateCondition(dbSession, condition, metric, operator, emptyToNull(warning), emptyToNull(error), period); UpdateConditionResponse.Builder updateConditionResponse = UpdateConditionResponse.newBuilder() .setId(updatedCondition.getId()) .setMetric(updatedCondition.getMetricKey()) .setOp(updatedCondition.getOperator()); setNullable(updatedCondition.getWarningThreshold(), updateConditionResponse::setWarning); setNullable(updatedCondition.getErrorThreshold(), updateConditionResponse::setError); setNullable(updatedCondition.getPeriod(), updateConditionResponse::setPeriod); writeProtobuf(updateConditionResponse.build(), request, response); dbSession.commit(); } } }