package de.fraunhofer.iem.dataprovider.gitlab import de.fraunhofer.iem.dataprovider.logger.getLogger import org.springframework.web.bind.annotation.* enum class Platform { OPEN_CODE, GITHUB, } data class RepositoryChangedDto(val repoId: Long, val platform: Platform) @RestController @RequestMapping("/gitlab") class GitlabController(private val gitlabService: GitlabService) { private val logger = getLogger(javaClass) // TODO: if the parsing of the request body fails we send a stack // trace back this should be changed to a custom error. @PostMapping("/repoChanged") suspend fun repoChanged(@RequestBody repositoryChangedDto: RepositoryChangedDto) { logger.info("Repo changed POST request for ID ${repositoryChangedDto.repoId} on platform ${repositoryChangedDto.platform} received.") when (repositoryChangedDto.platform) { Platform.OPEN_CODE -> gitlabService.queryOpenCodeProject(repositoryChangedDto.repoId) else -> { logger.info("Platform currently not supported.") // TODO: send fitting http response } } } }