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 { loadTokens {
return@loadTokens authorizationDataStore.token.first() return@loadTokens authorizationDataStore.token.first()
.toBearerTokens().also { .toBearerTokens().also {
Log.d("csmlc", it.accessToken) Log.d("ApiKtorClient", it.accessToken)
} }
} }
refreshTokens { 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 { private fun String.toBearerTokens(): BearerTokens {
return BearerTokens(this, null) return BearerTokens(this, null)
} }
@@ -25,7 +25,7 @@ class AuthRepositoryImpl(
private val authorizationDataStore: AuthorizationDataStore private val authorizationDataStore: AuthorizationDataStore
) : AuthRepository, BaseRepository() { ) : AuthRepository, BaseRepository() {
override val defaultKtorClient = ktorClient.client override val defaultKtorClient = ktorClient.authClient
override fun fetchLoginState(): Flow<Boolean> = override fun fetchLoginState(): Flow<Boolean> =
authorizationDataStore.token.map { it.isNotBlank() } authorizationDataStore.token.map { it.isNotBlank() }
@@ -1,7 +1,7 @@
package com.prodhack.moscow2025.domain.usecase.resumes 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.domain.models.ResumeModel
import com.prodhack.moscow2025.presentation.utils.toReadableText
data class ResumeDiff( data class ResumeDiff(
val changedFields: List<String>, val changedFields: List<String>,
@@ -55,7 +55,7 @@ class CalculateResumeDiffUseCase {
} }
val removed = previous.skills.toSet() - current.skills.toSet() val removed = previous.skills.toSet() - current.skills.toSet()
if (added.isNotEmpty()) { if (removed.isNotEmpty()) {
changes.add( changes.add(
ChangeModel( ChangeModel(
title = "Удалены навыки", title = "Удалены навыки",
@@ -79,7 +79,7 @@ class CalculateResumeDiffUseCase {
changes.add( changes.add(
ChangeModel( 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() val removed = previous.experience.toSet() - current.experience.toSet()
if (added.isNotEmpty()) { if (removed.isNotEmpty()) {
changes.add( changes.add(
ChangeModel( ChangeModel(
"Удален опыт", "Удален опыт",
@@ -121,7 +121,7 @@ class CalculateResumeDiffUseCase {
} }
val removed = previous.education.toSet() - current.education.toSet() val removed = previous.education.toSet() - current.education.toSet()
if (added.isNotEmpty()) { if (removed.isNotEmpty()) {
changes.add( changes.add(
ChangeModel( ChangeModel(
"Удалено образование", "Удалено образование",
@@ -144,7 +144,7 @@ class CalculateResumeDiffUseCase {
} }
val removed = previous.projects.toSet() - current.projects.toSet() val removed = previous.projects.toSet() - current.projects.toSet()
if (added.isNotEmpty()) { if (removed.isNotEmpty()) {
changes.add( changes.add(
ChangeModel( 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 -> items(items.itemCount) { index ->
val version = items[index] ?: return@items 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 val expanded = expandedState[index] ?: false
HistoryCard( HistoryCard(
current = version, current = version,