in src/main/kotlin/org/jetbrains/slackUnfurls/storage/postgres/Interface.kt [218:255]
override suspend fun save(
spaceOrgId: String,
spaceUserId: String,
slackTeamId: String,
accessToken: ByteArray,
refreshToken: ByteArray?,
permissionScopes: String?
) {
tx {
val updated = SlackOAuthUserTokens.update(
where = {
with(SlackOAuthUserTokens) { by(spaceOrgId, spaceUserId, slackTeamId) }
},
body = {
it[SlackOAuthUserTokens.permissionScopes] = permissionScopes
it[SlackOAuthUserTokens.accessToken] = ExposedBlob(accessToken)
if (refreshToken != null) {
it[this.refreshToken] = ExposedBlob(refreshToken)
}
}
)
if (updated == 0) {
if (refreshToken == null)
error("Refresh token is missing for newly created Slack user token")
SlackOAuthUserTokens.insert {
it[this.spaceOrgId] = spaceOrgId
it[this.spaceUserId] = spaceUserId
it[this.slackTeamId] = slackTeamId
it[this.accessToken] = ExposedBlob(accessToken)
it[this.refreshToken] = ExposedBlob(refreshToken)
it[this.permissionScopes] = permissionScopes
it[this.unfurlsDisabled] = false
}
}
}
}