override suspend fun save()

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
                    }
                }
            }
        }