Half-done open method
Fix unauthorized profile access Fix VisitCard date formatting?
This commit is contained in:
parent
b65a8bb883
commit
3782f2fc97
7
data/src/main/java/com/nto/data/models/ScanResult.kt
Normal file
7
data/src/main/java/com/nto/data/models/ScanResult.kt
Normal file
@ -0,0 +1,7 @@
|
||||
package com.nto.data.models
|
||||
|
||||
enum class ScanResult {
|
||||
OK,
|
||||
CANCELED,
|
||||
ERROR
|
||||
}
|
@ -10,7 +10,7 @@ enum class VisitType {
|
||||
data class VisitCardDTO(
|
||||
val name: String = "",
|
||||
val id: Long = Long.MAX_VALUE,
|
||||
val dateString: LocalDateTime = LocalDateTime.now(),
|
||||
val date: LocalDateTime = LocalDateTime.now(),
|
||||
val visitType: VisitType = VisitType.CARD_ENTRY,
|
||||
val qrCode: QRDTO = QRDTO()
|
||||
)
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.nto.data.repository
|
||||
|
||||
import com.nto.data.models.LoginResult
|
||||
import com.nto.data.models.ScanResult
|
||||
import com.nto.data.models.UserDTO
|
||||
import com.nto.data.models.cards.VisitCardDTO
|
||||
import com.nto.data.models.cards.VisitCardWrapper
|
||||
@ -12,4 +13,5 @@ interface DataRepository {
|
||||
suspend fun getLogin(): String
|
||||
suspend fun getInfo(): UserDTO
|
||||
suspend fun getVisits(id: String?): VisitCardWrapper
|
||||
suspend fun open(): ScanResult
|
||||
}
|
@ -3,6 +3,7 @@ package com.nto.data.repository
|
||||
import android.content.Context
|
||||
import android.content.Context.MODE_PRIVATE
|
||||
import com.nto.data.models.LoginResult
|
||||
import com.nto.data.models.ScanResult
|
||||
import com.nto.data.models.UserDTO
|
||||
import com.nto.data.models.cards.VisitCardWrapper
|
||||
import com.nto.data.utils.Provider
|
||||
@ -22,7 +23,8 @@ class DataRepositoryImpl @Inject constructor(@ApplicationContext private val con
|
||||
}
|
||||
|
||||
override suspend fun saveToken(token: String, login: String) {
|
||||
context.getSharedPreferences("auth", MODE_PRIVATE).edit().putString("token", token).putString("login", login).apply()
|
||||
context.getSharedPreferences("auth", MODE_PRIVATE).edit().putString("token", token)
|
||||
.putString("login", login).apply()
|
||||
}
|
||||
|
||||
override suspend fun getToken(): String {
|
||||
@ -48,4 +50,13 @@ class DataRepositoryImpl @Inject constructor(@ApplicationContext private val con
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun open(): ScanResult {
|
||||
val result = Provider.provideRetrofit().open(getToken()).execute()
|
||||
return when (result.code()) {
|
||||
200 -> ScanResult.OK
|
||||
400, 403 -> ScanResult.CANCELED
|
||||
else -> ScanResult.ERROR
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -16,4 +16,7 @@ interface RetrofitApi {
|
||||
|
||||
@GET("visits/{login}/visits")
|
||||
fun getVisits(@Header("Authorization") token: String): Call<List<VisitCardDTO>>
|
||||
|
||||
@GET("visit/open")
|
||||
fun open(@Header("Authorization") token: String): Call<ResponseBody>
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package com.nto.domain.repository
|
||||
|
||||
import com.nto.data.models.LoginResult
|
||||
import com.nto.data.models.ScanResult
|
||||
import com.nto.data.models.UserDTO
|
||||
import com.nto.data.models.cards.VisitCardWrapper
|
||||
|
||||
@ -10,4 +11,5 @@ interface DomainRepository {
|
||||
suspend fun getToken(): String?
|
||||
suspend fun getInfo(): UserDTO
|
||||
suspend fun getVisits(id: String): VisitCardWrapper
|
||||
suspend fun open(): ScanResult
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package com.nto.domain.repository
|
||||
|
||||
import com.nto.data.models.LoginResult
|
||||
import com.nto.data.models.ScanResult
|
||||
import com.nto.data.models.UserDTO
|
||||
import com.nto.data.models.cards.VisitCardWrapper
|
||||
import com.nto.data.repository.DataRepositoryImpl
|
||||
@ -47,4 +48,8 @@ class DomainRepositoryImpl @Inject constructor(private val dataRepositoryImpl: D
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun open(): ScanResult {
|
||||
return dataRepositoryImpl.open()
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package com.nto.domain.usecase
|
||||
|
||||
class ScanUseCase {
|
||||
}
|
@ -26,7 +26,7 @@ class MainActivity : ComponentActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContent {
|
||||
NTOTheme {
|
||||
//XML SUCKS! We use Jetpack Compose btw :>-
|
||||
//XML SUCKS! We use Jetpack Compose btw :>
|
||||
this.window.statusBarColor = NTOTheme.colors.primaryText.toArgb()
|
||||
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
|
||||
val navController = rememberNavController()
|
||||
|
@ -15,7 +15,7 @@ fun Navigation(navController: NavHostController, modifier: Modifier = Modifier)
|
||||
NavHost(
|
||||
navController = navController,
|
||||
modifier = modifier,
|
||||
startDestination = Destinations.Login
|
||||
startDestination = Destinations.Profile
|
||||
) {
|
||||
composable<Destinations.Login> {
|
||||
LoginScreen(navController)
|
||||
|
@ -24,6 +24,7 @@ import com.nto.data.models.cards.VisitCardDTO
|
||||
import com.nto.data.models.cards.VisitType
|
||||
import com.nto.presentation.R
|
||||
import com.nto.presentation.theme.NTOTheme
|
||||
import java.text.SimpleDateFormat
|
||||
import java.time.format.DateTimeFormatter
|
||||
|
||||
@Composable
|
||||
@ -59,7 +60,7 @@ fun VisitCard(data: VisitCardDTO, modifier: Modifier = Modifier) {
|
||||
}
|
||||
Column(horizontalAlignment = Alignment.End) {
|
||||
Text(
|
||||
text = data.dateString.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME),
|
||||
text = SimpleDateFormat.getDateInstance().format(data.date),
|
||||
style = NTOTheme.typography.displaySmall,
|
||||
fontSize = 12.sp,
|
||||
color = NTOTheme.colors.disabledText
|
||||
|
@ -70,7 +70,7 @@ fun ProfileScreen(
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
if (state.isUnauthorized) {
|
||||
//navController.navigate(Destinations.Login)
|
||||
navController.navigate(Destinations.Login)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ 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,7 +21,7 @@ data class ProfileState(
|
||||
this.firstName = o.firstName
|
||||
this.secondName = o.secondName
|
||||
this.thirdName = o.thirdName
|
||||
this.lastOpen = o.lastVisit.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
|
||||
this.lastOpen = SimpleDateFormat.getDateInstance().format(o.lastVisit)
|
||||
this.job = translatePosition(o.position, context)
|
||||
this.isUnauthorized = o.isUnauthorized
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user