diff --git a/data/src/main/java/com/nto/data/models/cards/VisitCardWrapper.kt b/data/src/main/java/com/nto/data/models/cards/VisitCardWrapper.kt new file mode 100644 index 0000000..1bdd8cf --- /dev/null +++ b/data/src/main/java/com/nto/data/models/cards/VisitCardWrapper.kt @@ -0,0 +1,6 @@ +package com.nto.data.models.cards + +data class VisitCardWrapper( + val data: List?, + val isUnauthorized: 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 cf12964..d57f924 100644 --- a/data/src/main/java/com/nto/data/repository/DataRepository.kt +++ b/data/src/main/java/com/nto/data/repository/DataRepository.kt @@ -2,10 +2,13 @@ package com.nto.data.repository import com.nto.data.models.LoginResult import com.nto.data.models.UserDTO +import com.nto.data.models.cards.VisitCardDTO +import com.nto.data.models.cards.VisitCardWrapper interface DataRepository { suspend fun auth(login: String, password: String): LoginResult suspend fun saveToken(token: String) suspend fun getToken(): String suspend fun getInfo(): UserDTO + suspend fun getVisits(id: String?): VisitCardWrapper } \ No newline at end of file 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 362ca37..28e550b 100644 --- a/data/src/main/java/com/nto/data/repository/DataRepositoryImpl.kt +++ b/data/src/main/java/com/nto/data/repository/DataRepositoryImpl.kt @@ -4,6 +4,7 @@ import android.content.Context import android.content.Context.MODE_PRIVATE import com.nto.data.models.LoginResult import com.nto.data.models.UserDTO +import com.nto.data.models.cards.VisitCardWrapper import com.nto.data.utils.Provider import dagger.hilt.android.qualifiers.ApplicationContext import okhttp3.Credentials @@ -34,4 +35,13 @@ class DataRepositoryImpl @Inject constructor(@ApplicationContext private val con else UserDTO(isError = true, isUnauthorized = result.code() == 403) } + override suspend fun getVisits(id: String): VisitCardWrapper { + val result = Provider.provideRetrofit().getVisits(getToken()).execute() + return if (result.isSuccessful) { + VisitCardWrapper(result.body()!!) + } else { + VisitCardWrapper(null, true) + } + } + } \ No newline at end of file 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 620632d..7e1ba34 100644 --- a/data/src/main/java/com/nto/data/utils/RetrofitApi.kt +++ b/data/src/main/java/com/nto/data/utils/RetrofitApi.kt @@ -1,6 +1,7 @@ package com.nto.data.utils import com.nto.data.models.UserDTO +import com.nto.data.models.cards.VisitCardDTO import okhttp3.ResponseBody import retrofit2.Call import retrofit2.http.GET @@ -12,4 +13,7 @@ interface RetrofitApi { @GET("employee/info") fun getInfo(@Header("Authorization") token: String): Call + + @GET("visits/{login}/visits") + fun getVisits(@Header("Authorization") token: String): Call> } \ No newline at end of file diff --git a/presentation/src/main/java/com/nto/presentation/screens/profileScreen/ProfileScreen.kt b/presentation/src/main/java/com/nto/presentation/screens/profileScreen/ProfileScreen.kt index 8342c44..3bdb790 100644 --- a/presentation/src/main/java/com/nto/presentation/screens/profileScreen/ProfileScreen.kt +++ b/presentation/src/main/java/com/nto/presentation/screens/profileScreen/ProfileScreen.kt @@ -57,10 +57,9 @@ fun ProfileScreen( ) { val state = viewModel.state.collectAsState().value - val scannerLauncher = rememberLauncherForActivityResult( - contract = ScanContract(), - onResult = { result -> Log.i(TAG, "scanned code: ${result.contents}") } - ) + val scannerLauncher = rememberLauncherForActivityResult(contract = ScanContract(), + onResult = { result -> Log.i(TAG, "scanned code: ${result.contents}") }) + val scanOptions = ScanOptions() scanOptions.setPrompt("") scanOptions.setBeepEnabled(false) @@ -70,7 +69,7 @@ fun ProfileScreen( LaunchedEffect(Unit) { if (state.isUnauthorized) { - //navController.navigate(Destinations.Login) + navController.navigate(Destinations.Login) } } @@ -191,9 +190,7 @@ fun ProfileScreen( ) Spacer(modifier = Modifier.height(10.dp)) Text( - state.job, - style = NTOTheme.typography.placeholder, - color = TextGray + state.job, style = NTOTheme.typography.placeholder, color = TextGray ) } }