@Override public void handle(Request request, Response response) { try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganization(dbSession, request); QualityGateDto defaultQualityGate = finder.getDefault(dbSession, organization); Collection<QualityGateDto> qualityGates = dbClient.qualityGateDao().selectAll(dbSession, organization); writeProtobuf(buildResponse(organization, qualityGates, defaultQualityGate), request, response); } }
@Override public void handle(Request request, Response response) { long qualityGateId = request.mandatoryParamAsLong(QualityGatesWsParameters.PARAM_ID); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganization(dbSession, request); QGateWithOrgDto qualityGate = wsSupport.getByOrganizationAndId(dbSession, organization, qualityGateId); QualityGateDto defaultQualityGate = finder.getDefault(dbSession, organization); checkArgument(!defaultQualityGate.getId().equals(qualityGate.getId()), "The default quality gate cannot be removed"); wsSupport.checkCanEdit(qualityGate); dbClient.propertiesDao().deleteByKeyAndValue(dbSession, SONAR_QUALITYGATE_PROPERTY, String.valueOf(qualityGate.getId())); dbClient.qualityGateDao().delete(qualityGate, dbSession); dbSession.commit(); response.noContent(); } }
@Override public void handle(Request request, Response response) { Long id = request.paramAsLong(PARAM_ID); String name = request.param(PARAM_NAME); checkOneOfIdOrNamePresent(id, name); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganization(dbSession, request); QualityGateDto qualityGate = getByNameOrId(dbSession, organization, name, id); Collection<QualityGateConditionDto> conditions = getConditions(dbSession, qualityGate); Map<Integer, MetricDto> metricsById = getMetricsById(dbSession, conditions); QualityGateDto defaultQualityGate = qualityGateFinder.getDefault(dbSession, organization); writeProtobuf(buildResponse(organization, qualityGate, defaultQualityGate, conditions, metricsById), request, response); } }
@Test public void fail_when_default_quality_gate_does_not_exists() { QualityGateDto dbQualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization(), qg -> qg.setName("My team QG")); db.qualityGates().setDefaultQualityGate(db.getDefaultOrganization(), dbQualityGate); db.getDbClient().qualityGateDao().delete(dbQualityGate, dbSession); expectedException.expect(IllegalStateException.class); expectedException.expectMessage(format("Default quality gate [%s] is missing on organization [%s]", dbQualityGate.getUuid(), db.getDefaultOrganization().getUuid())); underTest.getDefault(dbSession, db.getDefaultOrganization()); }
@Override public void handle(Request request, Response response) { try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganization(dbSession, request); QualityGateDto defaultQualityGate = finder.getDefault(dbSession, organization); Collection<QualityGateDto> qualityGates = dbClient.qualityGateDao().selectAll(dbSession, organization); writeProtobuf(buildResponse(organization, qualityGates, defaultQualityGate), request, response); } }
@Override public void handle(Request request, Response response) { long qualityGateId = request.mandatoryParamAsLong(QualityGatesWsParameters.PARAM_ID); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganization(dbSession, request); QGateWithOrgDto qualityGate = finder.getByOrganizationAndId(dbSession, organization, qualityGateId); QualityGateDto defaultQualityGate = finder.getDefault(dbSession, organization); checkArgument(!defaultQualityGate.getId().equals(qualityGate.getId()), "The default quality gate cannot be removed"); wsSupport.checkCanEdit(qualityGate); dbClient.propertiesDao().deleteByKeyAndValue(dbSession, SONAR_QUALITYGATE_PROPERTY, String.valueOf(qualityGate.getId())); dbClient.qualityGateDao().delete(qualityGate, dbSession); dbSession.commit(); response.noContent(); } }
@Override public void handle(Request request, Response response) { Long id = request.paramAsLong(PARAM_ID); String name = request.param(PARAM_NAME); checkOneOfIdOrNamePresent(id, name); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganization(dbSession, request); QualityGateDto qualityGate = getByNameOrId(dbSession, organization, name, id); Collection<QualityGateConditionDto> conditions = getConditions(dbSession, qualityGate); Map<Integer, MetricDto> metricsById = getMetricsById(dbSession, conditions); QualityGateDto defaultQualityGate = qualityGateFinder.getDefault(dbSession, organization); writeProtobuf(buildResponse(organization, qualityGate, defaultQualityGate, conditions, metricsById), request, response); } }