diff --git a/data/src/main/java/com/nto/data/models/UserDTO.kt b/data/src/main/java/com/nto/data/models/UserDTO.kt index 81a3652..299d36c 100644 --- a/data/src/main/java/com/nto/data/models/UserDTO.kt +++ b/data/src/main/java/com/nto/data/models/UserDTO.kt @@ -8,8 +8,8 @@ enum class Position { data class UserDTO( val firstName: String = "", - val secondName: String = "", - val thirdName: String = "", + val lastName: String = "", + val patronymic: String = "", val position: Position = Position.DEVELOPER, val lastVisit: LocalDateTime = LocalDateTime.now(), val isError: Boolean = false, diff --git a/data/src/main/java/com/nto/data/repository/DataRepository.kt b/data/src/main/java/com/nto/data/repository/DataRepository.kt index 7a504a5..1a0bbeb 100644 --- a/data/src/main/java/com/nto/data/repository/DataRepository.kt +++ b/data/src/main/java/com/nto/data/repository/DataRepository.kt @@ -10,7 +10,7 @@ interface DataRepository { suspend fun saveToken(token: String, login: String) suspend fun getToken(): String suspend fun getLogin(): String - suspend fun getInfo(): UserDTO + suspend fun getInfo(login: String): UserDTO suspend fun getVisits(id: String?): VisitCardWrapper suspend fun open(): RequestResult suspend fun logout() diff --git a/data/src/main/java/com/nto/data/repository/DataRepositoryImpl.kt b/data/src/main/java/com/nto/data/repository/DataRepositoryImpl.kt index 5aa6ae8..07cfedf 100644 --- a/data/src/main/java/com/nto/data/repository/DataRepositoryImpl.kt +++ b/data/src/main/java/com/nto/data/repository/DataRepositoryImpl.kt @@ -35,8 +35,8 @@ class DataRepositoryImpl @Inject constructor(@ApplicationContext private val con return context.getSharedPreferences("auth", MODE_PRIVATE).getString("login", "")!! } - override suspend fun getInfo(): UserDTO { - val result = Provider.provideRetrofit().getInfo(getToken()).execute() + override suspend fun getInfo(login: String): UserDTO { + val result = Provider.provideRetrofit().getInfo(token = getToken(), login = login).execute() return if (result.isSuccessful) result.body()!! else UserDTO(isError = true, isUnauthorized = result.code() == 403) } diff --git a/data/src/main/java/com/nto/data/utils/RetrofitApi.kt b/data/src/main/java/com/nto/data/utils/RetrofitApi.kt index a07f64a..56b22aa 100644 --- a/data/src/main/java/com/nto/data/utils/RetrofitApi.kt +++ b/data/src/main/java/com/nto/data/utils/RetrofitApi.kt @@ -8,14 +8,15 @@ import retrofit2.http.Body import retrofit2.http.GET import retrofit2.http.Header import retrofit2.http.PUT +import retrofit2.http.Path import retrofit2.http.Query interface RetrofitApi { @GET("employee/auth") fun auth(@Header("Authorization") token: String): Call - @GET("employee/info") - fun getInfo(@Header("Authorization") token: String): Call + @GET("employee/{login}/info") + fun getInfo(@Header("Authorization") token: String, @Path("login") login: String): Call @GET("visits/{login}/visits") fun getVisits(@Header("Authorization") token: String): Call> diff --git a/domain/src/main/java/com/nto/domain/repository/DomainRepository.kt b/domain/src/main/java/com/nto/domain/repository/DomainRepository.kt index f4fbd12..5d96ef4 100644 --- a/domain/src/main/java/com/nto/domain/repository/DomainRepository.kt +++ b/domain/src/main/java/com/nto/domain/repository/DomainRepository.kt @@ -9,7 +9,8 @@ interface DomainRepository { suspend fun auth(email: String, password: String): LoginResult suspend fun saveToken(token: String, login: String) suspend fun getToken(): String? - suspend fun getInfo(): UserDTO + suspend fun getLogin(): String + suspend fun getInfo(login: String): UserDTO suspend fun getVisits(id: String): VisitCardWrapper suspend fun open(): RequestResult suspend fun logout() diff --git a/domain/src/main/java/com/nto/domain/repository/DomainRepositoryImpl.kt b/domain/src/main/java/com/nto/domain/repository/DomainRepositoryImpl.kt index d28e2d1..1f7c73d 100644 --- a/domain/src/main/java/com/nto/domain/repository/DomainRepositoryImpl.kt +++ b/domain/src/main/java/com/nto/domain/repository/DomainRepositoryImpl.kt @@ -32,9 +32,13 @@ class DomainRepositoryImpl @Inject constructor(private val dataRepositoryImpl: D } } - override suspend fun getInfo(): UserDTO { + override suspend fun getLogin(): String { + return dataRepositoryImpl.getLogin() + } + + override suspend fun getInfo(login: String): UserDTO { return try { - return dataRepositoryImpl.getInfo() + return dataRepositoryImpl.getInfo(login.ifBlank { getLogin() }) } catch (e: IOException) { UserDTO(isError = true, isUnauthorized = true) //TODO } diff --git a/domain/src/main/java/com/nto/domain/usecase/ProfileUseCase.kt b/domain/src/main/java/com/nto/domain/usecase/ProfileUseCase.kt index 62cdf1b..b26f652 100644 --- a/domain/src/main/java/com/nto/domain/usecase/ProfileUseCase.kt +++ b/domain/src/main/java/com/nto/domain/usecase/ProfileUseCase.kt @@ -6,7 +6,7 @@ import javax.inject.Inject class ProfileUseCase @Inject constructor(private val domainRepositoryImpl: DomainRepositoryImpl) { suspend fun getInfo(): UserDTO{ - return domainRepositoryImpl.getInfo() + return domainRepositoryImpl.getInfo("") } suspend fun logout(){ return domainRepositoryImpl.logout() diff --git a/presentation/src/main/java/com/nto/presentation/MainActivity.kt b/presentation/src/main/java/com/nto/presentation/MainActivity.kt index 064bce3..3771da5 100644 --- a/presentation/src/main/java/com/nto/presentation/MainActivity.kt +++ b/presentation/src/main/java/com/nto/presentation/MainActivity.kt @@ -9,9 +9,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material3.Scaffold import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb -import androidx.hilt.navigation.compose.hiltViewModel import androidx.navigation.compose.rememberNavController import com.nto.presentation.composable.Navigation import com.nto.presentation.screens.splashScreen.SplashScreenViewModel diff --git a/presentation/src/main/java/com/nto/presentation/screens/profileScreen/ProfileState.kt b/presentation/src/main/java/com/nto/presentation/screens/profileScreen/ProfileState.kt index f050f30..fdfb8ce 100644 --- a/presentation/src/main/java/com/nto/presentation/screens/profileScreen/ProfileState.kt +++ b/presentation/src/main/java/com/nto/presentation/screens/profileScreen/ProfileState.kt @@ -5,7 +5,6 @@ import com.nto.data.models.Position import com.nto.data.models.UserDTO import com.nto.data.models.cards.VisitCardDTO import com.nto.presentation.R -import java.text.SimpleDateFormat import java.time.format.DateTimeFormatter data class ProfileState( @@ -20,12 +19,12 @@ data class ProfileState( fun deserialize(o: UserDTO, context: Context) { val dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") this.firstName = o.firstName - this.secondName = o.secondName - this.thirdName = o.thirdName + this.secondName = o.lastName + this.thirdName = o.patronymic this.lastOpen = try { o.lastVisit.format(dateFormat) } catch (e: NullPointerException) { - "Exception!" + context.getString(R.string.label_last_visit_none) } this.job = translatePosition(o.position, context) this.isUnauthorized = o.isUnauthorized diff --git a/presentation/src/main/res/values-en/strings.xml b/presentation/src/main/res/values-en/strings.xml index ab71b0f..f70829b 100644 --- a/presentation/src/main/res/values-en/strings.xml +++ b/presentation/src/main/res/values-en/strings.xml @@ -22,4 +22,5 @@ Enter was cancelled Something went wrong Close + None \ No newline at end of file diff --git a/presentation/src/main/res/values/strings.xml b/presentation/src/main/res/values/strings.xml index ac23097..c3b3b63 100644 --- a/presentation/src/main/res/values/strings.xml +++ b/presentation/src/main/res/values/strings.xml @@ -23,4 +23,5 @@ Вход был отменён Что-то пошло не так Закрыть + Нет \ No newline at end of file