@Override
public void handle(Request request, Response response) {
Long id = parseId(request, PARAM_ID);
String destinationName = request.mandatoryParam(PARAM_NAME);
checkArgument(!destinationName.isEmpty(), "The 'name' parameter is empty");
try (DbSession dbSession = dbClient.openSession(false)) {
OrganizationDto organization = wsSupport.getOrganization(dbSession, request);
userSession.checkPermission(ADMINISTER_QUALITY_GATES, organization);
QualityGateDto qualityGate = qualityGateFinder.getByOrganizationAndId(dbSession, organization, id);
QualityGateDto copy = qualityGateUpdater.copy(dbSession, organization, qualityGate, destinationName);
dbSession.commit();
writeProtobuf(newBuilder()
.setId(copy.getId())
.setName(copy.getName())
.build(), request, response);
}
}
}