diff --git a/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/controller/RepositoryController.kt b/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/controller/RepositoryController.kt index 6037e03ecd593c393111b6e979d4a8a64b62b301..8a4cb3783a1cca999bb0392ea7defd67570a0eb6 100644 --- a/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/controller/RepositoryController.kt +++ b/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/controller/RepositoryController.kt @@ -191,6 +191,9 @@ class RepositoryController( ) { withContext(Dispatchers.IO) { repositoryService.updateVisualizationConsent(id, repositoryConsentDto) + if (repositoryConsentDto.consent) { + toolRunService.createToolRunForRepository(projectId = id) + } } } diff --git a/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/dto/RepositoryCreateDto.kt b/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/dto/RepositoryCreateDto.kt index 33eb0b8a38e68e001c8277d2e41c85a3bced3473..db7639e32b36e88192c9fd26a87053fe9201075d 100644 --- a/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/dto/RepositoryCreateDto.kt +++ b/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/dto/RepositoryCreateDto.kt @@ -6,7 +6,7 @@ data class RepositoryCreateDto( val name: String, val uri: String, val id: Long, - val visualizationConsent: Boolean = false //TODO: we need to check if this is always ok at initialization + var visualizationConsent: Boolean = false //TODO: we need to check if this is always ok at initialization ) { fun toDbObject(): RepositoryEntity { return RepositoryEntity( diff --git a/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/service/RepositoryService.kt b/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/service/RepositoryService.kt index 4adfea9b9e1fd3d94b5d4fcdd3d66a65f88517e2..a75b8cfa055198bcadca05cc28c04034afbb5bd6 100644 --- a/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/service/RepositoryService.kt +++ b/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/service/RepositoryService.kt @@ -108,13 +108,18 @@ class RepositoryService( logger.info("Updated visualization consent $repositoryConsentDto") repositoryRepository.save(repo) } else { - logger.error( - "Could not update visualization consent because repo" + - "was not found $repositoryConsentDto" - ) + createRepoWithConsent(projectId) } } + + @Transactional(readOnly = false, propagation = Propagation.MANDATORY) + fun createRepoWithConsent(projectId: Long): RepositoryEntity { + val repoDto = getRepositoryInfoFromGitlab(projectId) + repoDto.visualizationConsent = true + return repositoryRepository.save(repoDto.toDbObject()) + } + @Transactional(readOnly = true, propagation = Propagation.REQUIRES_NEW) fun getAllRepositoriesWithConsent(): List<RepositoryEntity> { return repositoryRepository.findByVisualizationConsentTrue()