private void deleteEvent(DbSession dbSession, EventDto dbEvent) { if (VERSION.getLabel().equals(dbEvent.getCategory())) { SnapshotDto analysis = dbClient.snapshotDao().selectByUuid(dbSession, dbEvent.getAnalysisUuid()) .orElseThrow(() -> new IllegalStateException(format("Analysis '%s' not found", dbEvent.getAnalysisUuid()))); checkArgument(!analysis.getLast(), "Cannot delete the version event of last analysis"); analysis.setVersion(null); dbClient.snapshotDao().update(dbSession, analysis); } dbClient.eventDao().delete(dbSession, dbEvent.getUuid()); dbSession.commit(); }
@Override public void handle(Request request, Response response) throws Exception { String analysisParam = request.mandatoryParam(PARAM_ANALYSIS); try (DbSession dbSession = dbClient.openSession(false)) { SnapshotDto analysis = dbClient.snapshotDao().selectByUuid(dbSession, analysisParam) .orElseThrow(() -> analysisNotFoundException(analysisParam)); if (STATUS_UNPROCESSED.equals(analysis.getStatus())) { throw analysisNotFoundException(analysisParam); } userSession.checkComponentUuidPermission(UserRole.ADMIN, analysis.getComponentUuid()); checkArgument(!analysis.getLast(), "The last analysis '%s' cannot be deleted", analysisParam); analysis.setStatus(STATUS_UNPROCESSED); dbClient.snapshotDao().update(dbSession, analysis); dbSession.commit(); } response.noContent(); }
private Consumer<EventDto> updateInDb(DbSession dbSession) { return event -> { dbClient.eventDao().update(dbSession, event.getUuid(), event.getName(), event.getDescription()); if (VERSION.getLabel().equals(event.getCategory())) { SnapshotDto analysis = getAnalysis(dbSession, event); analysis.setVersion(event.getName()); dbClient.snapshotDao().update(dbSession, analysis); } dbSession.commit(); }; }
@Test public void update() { SnapshotDto analysis = insertAnalysis("P1", "A1", STATUS_PROCESSED, false); db.commit(); analysis .setComponentUuid("P42") .setVersion("5.6.3") .setStatus(STATUS_UNPROCESSED); underTest.update(dbSession, analysis); SnapshotDto result = underTest.selectByUuid(dbSession, "A1").get(); assertThat(result.getVersion()).isEqualTo("5.6.3"); assertThat(result.getStatus()).isEqualTo(STATUS_UNPROCESSED); assertThat(result.getComponentUuid()).isEqualTo("P1"); }
private EventDto insertDbEvent(DbSession dbSession, CreateEventRequest request, SnapshotDto analysis) { EventDto dbEvent = dbClient.eventDao().insert(dbSession, toDbEvent(request, analysis)); if (VERSION.equals(request.getCategory())) { analysis.setVersion(request.getName()); dbClient.snapshotDao().update(dbSession, analysis); } dbSession.commit(); return dbEvent; }
private void deleteEvent(DbSession dbSession, EventDto dbEvent) { if (VERSION.getLabel().equals(dbEvent.getCategory())) { SnapshotDto analysis = dbClient.snapshotDao().selectByUuid(dbSession, dbEvent.getAnalysisUuid()) .orElseThrow(() -> new IllegalStateException(format("Analysis '%s' not found", dbEvent.getAnalysisUuid()))); checkArgument(!analysis.getLast(), "Cannot delete the version event of last analysis"); analysis.setVersion(null); dbClient.snapshotDao().update(dbSession, analysis); } dbClient.eventDao().delete(dbSession, dbEvent.getUuid()); dbSession.commit(); }
@Override public void handle(Request request, Response response) throws Exception { String analysisParam = request.mandatoryParam(PARAM_ANALYSIS); try (DbSession dbSession = dbClient.openSession(false)) { SnapshotDto analysis = dbClient.snapshotDao().selectByUuid(dbSession, analysisParam) .orElseThrow(() -> analysisNotFoundException(analysisParam)); if (STATUS_UNPROCESSED.equals(analysis.getStatus())) { throw analysisNotFoundException(analysisParam); } userSession.checkComponentUuidPermission(UserRole.ADMIN, analysis.getComponentUuid()); checkArgument(!analysis.getLast(), "The last analysis '%s' cannot be deleted", analysisParam); analysis.setStatus(STATUS_UNPROCESSED); dbClient.snapshotDao().update(dbSession, analysis); dbSession.commit(); } response.noContent(); }
private Consumer<EventDto> updateInDb(DbSession dbSession) { return event -> { dbClient.eventDao().update(dbSession, event.getUuid(), event.getName(), event.getDescription()); if (VERSION.getLabel().equals(event.getCategory())) { SnapshotDto analysis = getAnalysis(dbSession, event); analysis.setVersion(event.getName()); dbClient.snapshotDao().update(dbSession, analysis); } dbSession.commit(); }; }
private EventDto insertDbEvent(DbSession dbSession, CreateEventRequest request, SnapshotDto analysis) { EventDto dbEvent = dbClient.eventDao().insert(dbSession, toDbEvent(request, analysis)); if (VERSION.equals(request.getCategory())) { analysis.setVersion(request.getName()); dbClient.snapshotDao().update(dbSession, analysis); } dbSession.commit(); return dbEvent; }