Pavel Měsíček
11/26/2024, 11:18 AMrefreshTokens {
                    client.authProvider<BearerAuthProvider>()?.clearToken()
                    val oldTokens = applicationPersistence.getTokens()
                    val response = kotlin.runCatching {
                        client.submitForm(
                            FlavorConstants.authUrl + "token",
                            formParameters = parameters {
                                append("grant_type", "refresh_token")
                                append("client_id", FlavorConstants.authClientId)
                                append("refresh_token", oldTokens?.refreshToken.orEmpty())
                            },
                        ) { markAsRefreshTokenRequest() }
                    }.getOrElse {
                        oldTokens?.also {
                            applicationPersistence.saveTokens(
                                accessToken = it.accessToken,
                                refreshToken = it.refreshToken,
                                idToken = it.idToken,
                            )
                        }
                        throw it
                    }
                    if (response.status == HttpStatusCode.OK) {
                        val body = response.body<TokenResponse>()
                        applicationPersistence.saveTokens(
                            accessToken = body.accessToken,
                            refreshToken = body.refreshToken,
                            idToken = body.idToken,
                        )
                        applicationPersistence.getTokens()?.let {
                            BearerTokens(it.accessToken, it.refreshToken)
                        } ?: run {
                            onNotAuthorized()
                        }
                    } else {
                        onNotAuthorized()
                    }
                }Aleksei Tirman [JB]
11/26/2024, 11:29 AMPavel Měsíček
11/26/2024, 11:46 AMPavel Měsíček
11/26/2024, 11:49 AM