in core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/ScmRepositoryRepositoryJdbc.kt [99:146]
override fun update(entity: ScmRepositoryEntity): ScmRepositoryEntity {
val sql = """
UPDATE scm_repo
SET
id_native = :idGh,
description = :description,
default_branch = :defaultBranch,
homepage = :homepage,
has_gh_pages = :hasGhPages,
has_issues = :hasIssues,
has_wiki = :hasWiki,
has_readme = :hasReadme,
license_key = :licenseKey,
license_name = :licenseName,
stars = :stars,
open_issues = :openIssues,
last_activity_ts = :lastActivityTs,
updated_at = current_timestamp,
minimized_readme = :minimizedReadme
WHERE lower(name) = lower(:name) AND owner_id = :ownerId
RETURNING id;
""".trimIndent()
val id = jdbcClient.sql(sql)
.param("idGh", entity.nativeId)
.param("name", entity.name)
.param("description", entity.description)
.param("defaultBranch", entity.defaultBranch)
.param("createdTs", Timestamp.from(entity.createdTs))
.param("ownerId", entity.ownerId)
.param("homepage", entity.homepage)
.param("hasGhPages", entity.hasGhPages)
.param("hasIssues", entity.hasIssues)
.param("hasWiki", entity.hasWiki)
.param("hasReadme", entity.hasReadme)
.param("licenseKey", entity.licenseKey)
.param("licenseName", entity.licenseName)
.param("stars", entity.stars)
.param("openIssues", entity.openIssues)
.param("lastActivityTs", Timestamp.from(entity.lastActivityTs))
.param("minimizedReadme", entity.minimizedReadme)
.query(Int::class.java)
.single()
return requireNotNull(findById(id)) {
"Unable to find a freshly upserted scm repository"
}
}