private BulkUpdateKeyWsResponse doHandle(BulkUpdateKeyRequest request) { try (DbSession dbSession = dbClient.openSession(false)) { ComponentDto projectOrModule = componentFinder.getByUuidOrKey(dbSession, request.getId(), request.getKey(), ParamNames.ID_AND_KEY); checkIsProjectOrModule(projectOrModule); userSession.checkComponentPermission(UserRole.ADMIN, projectOrModule); Map<String, String> newKeysByOldKeys = componentKeyUpdater.simulateBulkUpdateKey(dbSession, projectOrModule.uuid(), request.getFrom(), request.getTo()); Map<String, Boolean> newKeysWithDuplicateMap = componentKeyUpdater.checkComponentKeys(dbSession, ImmutableList.copyOf(newKeysByOldKeys.values())); if (!request.isDryRun()) { checkNoDuplicate(newKeysWithDuplicateMap); bulkUpdateKey(dbSession, request, projectOrModule); } return buildResponse(newKeysByOldKeys, newKeysWithDuplicateMap); } }
public void updateKey(DbSession dbSession, ComponentDto projectOrModule, String newKey) { userSession.checkComponentPermission(UserRole.ADMIN, projectOrModule); checkIsProjectOrModule(projectOrModule); checkProjectOrModuleKeyFormat(newKey); dbClient.componentKeyUpdaterDao().updateKey(dbSession, projectOrModule.uuid(), newKey); projectIndexers.commitAndIndex(dbSession, singletonList(projectOrModule), ProjectIndexer.Cause.PROJECT_KEY_UPDATE); if (isMainProject(projectOrModule)) { Project newProject = new Project(projectOrModule.uuid(), newKey, projectOrModule.name(), projectOrModule.description(), projectOrModule.getTags()); projectLifeCycleListeners.onProjectsRekeyed(singleton(new RekeyedProject(newProject, projectOrModule.getDbKey()))); } }
public void updateKey(DbSession dbSession, ComponentDto projectOrModule, String newKey) { userSession.checkComponentPermission(UserRole.ADMIN, projectOrModule); checkIsProjectOrModule(projectOrModule); checkProjectOrModuleKeyFormat(newKey); dbClient.componentKeyUpdaterDao().updateKey(dbSession, projectOrModule.uuid(), newKey); projectIndexers.commitAndIndex(dbSession, singletonList(projectOrModule), ProjectIndexer.Cause.PROJECT_KEY_UPDATE); if (isMainProject(projectOrModule)) { Project newProject = new Project(projectOrModule.uuid(), newKey, projectOrModule.name(), projectOrModule.description()); projectLifeCycleListeners.onProjectsRekeyed(singleton(new RekeyedProject(newProject, projectOrModule.getDbKey()))); } }
private BulkUpdateKeyWsResponse doHandle(BulkUpdateKeyRequest request) { try (DbSession dbSession = dbClient.openSession(false)) { ComponentDto projectOrModule = componentFinder.getByUuidOrKey(dbSession, request.getId(), request.getKey(), ParamNames.ID_AND_KEY); checkIsProjectOrModule(projectOrModule); userSession.checkComponentPermission(UserRole.ADMIN, projectOrModule); Map<String, String> newKeysByOldKeys = componentKeyUpdater.simulateBulkUpdateKey(dbSession, projectOrModule.uuid(), request.getFrom(), request.getTo()); Map<String, Boolean> newKeysWithDuplicateMap = componentKeyUpdater.checkComponentKeys(dbSession, ImmutableList.copyOf(newKeysByOldKeys.values())); if (!request.isDryRun()) { checkNoDuplicate(newKeysWithDuplicateMap); bulkUpdateKey(dbSession, request, projectOrModule); } return buildResponse(newKeysByOldKeys, newKeysWithDuplicateMap); } }