fix: auth

This commit is contained in:
MaximOksiuta
2025-11-23 04:13:44 +03:00
parent b6e67b159e
commit ee4a560b53
4 changed files with 38 additions and 9 deletions
@@ -62,7 +62,7 @@ class ApiKtorClient(authorizationDataStore: AuthorizationDataStore) {
loadTokens {
return@loadTokens authorizationDataStore.token.first()
.toBearerTokens().also {
Log.d("csmlc", it.accessToken)
Log.d("ApiKtorClient", it.accessToken)
}
}
refreshTokens {
@@ -76,6 +76,27 @@ class ApiKtorClient(authorizationDataStore: AuthorizationDataStore) {
}
}
val authClient = HttpClient(OkHttp) {
install(Logging) {
logger = Logger.ANDROID
level = LogLevel.ALL
}
install(HttpRequestRetry) {
retryOnServerErrors(maxRetries = 3)
exponentialDelay()
}
install(ContentNegotiation) {
json(Json {
prettyPrint = true
isLenient = true
ignoreUnknownKeys = true
})
}
defaultRequest {
url(Constants.BASE_API_URL)
}
}
private fun String.toBearerTokens(): BearerTokens {
return BearerTokens(this, null)
}
@@ -25,7 +25,7 @@ class AuthRepositoryImpl(
private val authorizationDataStore: AuthorizationDataStore
) : AuthRepository, BaseRepository() {
override val defaultKtorClient = ktorClient.client
override val defaultKtorClient = ktorClient.authClient
override fun fetchLoginState(): Flow<Boolean> =
authorizationDataStore.token.map { it.isNotBlank() }
@@ -1,7 +1,7 @@
package com.prodhack.moscow2025.domain.usecase.resumes
import com.prodhack.moscow2025.domain.models.ExperienceType
import com.prodhack.moscow2025.domain.models.ResumeModel
import com.prodhack.moscow2025.presentation.utils.toReadableText
data class ResumeDiff(
val changedFields: List<String>,
@@ -55,7 +55,7 @@ class CalculateResumeDiffUseCase {
}
val removed = previous.skills.toSet() - current.skills.toSet()
if (added.isNotEmpty()) {
if (removed.isNotEmpty()) {
changes.add(
ChangeModel(
title = "Удалены навыки",
@@ -79,7 +79,7 @@ class CalculateResumeDiffUseCase {
changes.add(
ChangeModel(
"Опыт",
"${previous.experienceType.toReadableText()} ->\n${current.experienceType.toReadableText()}"
"${previous.experienceType.toReadable()} ->\n${current.experienceType.toReadable()}"
)
)
}
@@ -98,7 +98,7 @@ class CalculateResumeDiffUseCase {
}
val removed = previous.experience.toSet() - current.experience.toSet()
if (added.isNotEmpty()) {
if (removed.isNotEmpty()) {
changes.add(
ChangeModel(
"Удален опыт",
@@ -121,7 +121,7 @@ class CalculateResumeDiffUseCase {
}
val removed = previous.education.toSet() - current.education.toSet()
if (added.isNotEmpty()) {
if (removed.isNotEmpty()) {
changes.add(
ChangeModel(
"Удалено образование",
@@ -144,7 +144,7 @@ class CalculateResumeDiffUseCase {
}
val removed = previous.projects.toSet() - current.projects.toSet()
if (added.isNotEmpty()) {
if (removed.isNotEmpty()) {
changes.add(
ChangeModel(
"Удален проект",
@@ -160,3 +160,11 @@ class CalculateResumeDiffUseCase {
)
}
}
private fun ExperienceType.toReadable(): String = when (this) {
ExperienceType.NoExperience -> "Нет опыта"
ExperienceType.LessThan1 -> "Меньше года"
ExperienceType.Between1And3 -> "1-3 года"
ExperienceType.Between3And6 -> "3-6 лет"
ExperienceType.MoreThan6 -> "Более 6 лет"
}
@@ -98,7 +98,7 @@ fun ErrorCollectorScope.ResumeHistoryScreen(
) {
items(items.itemCount) { index ->
val version = items[index] ?: return@items
val previous = if (index + 1 < items.itemCount) items[index + 1] else null
val previous = if ((index + 1) < items.itemCount) items[index + 1] else null
val expanded = expandedState[index] ?: false
HistoryCard(
current = version,