Start AdminUseCase

This commit is contained in:
Nymos 2025-02-19 16:43:23 +03:00
parent f9d31d4743
commit 931839da8d
7 changed files with 47 additions and 14 deletions

View File

@ -1,6 +1,6 @@
package com.nto.data.models
enum class ScanResult {
enum class RequestResult {
OK,
CANCELED,
ERROR

View File

@ -1,7 +1,7 @@
package com.nto.data.repository
import com.nto.data.models.LoginResult
import com.nto.data.models.ScanResult
import com.nto.data.models.RequestResult
import com.nto.data.models.UserDTO
import com.nto.data.models.cards.VisitCardWrapper
@ -12,6 +12,7 @@ interface DataRepository {
suspend fun getLogin(): String
suspend fun getInfo(): UserDTO
suspend fun getVisits(id: String?): VisitCardWrapper
suspend fun open(): ScanResult
suspend fun open(): RequestResult
suspend fun logout()
suspend fun invertLock(login: String, status: Boolean): RequestResult
}

View File

@ -2,9 +2,8 @@ package com.nto.data.repository
import android.content.Context
import android.content.Context.MODE_PRIVATE
import android.content.SharedPreferences
import com.nto.data.models.LoginResult
import com.nto.data.models.ScanResult
import com.nto.data.models.RequestResult
import com.nto.data.models.UserDTO
import com.nto.data.models.cards.VisitCardWrapper
import com.nto.data.utils.Provider
@ -51,17 +50,27 @@ class DataRepositoryImpl @Inject constructor(@ApplicationContext private val con
}
}
override suspend fun open(): ScanResult {
override suspend fun open(): RequestResult {
val result = Provider.provideRetrofit().open(getToken()).execute()
return when (result.code()) {
200 -> ScanResult.OK
400, 403 -> ScanResult.CANCELED
else -> ScanResult.ERROR
200 -> RequestResult.OK
400, 403 -> RequestResult.CANCELED
else -> RequestResult.ERROR
}
}
override suspend fun logout() {
context.getSharedPreferences("auth", MODE_PRIVATE).edit().remove("token").remove("login").apply()
context.getSharedPreferences("auth", MODE_PRIVATE).edit().remove("token").remove("login")
.apply()
}
override suspend fun invertLock(login: String, status: Boolean): RequestResult {
return when (Provider.provideRetrofit().invertLock(getToken(), login, status).execute()
.code()) {
200 -> RequestResult.OK
400, 403 -> RequestResult.CANCELED
else -> RequestResult.ERROR
}
}
}

View File

@ -4,8 +4,11 @@ import com.nto.data.models.UserDTO
import com.nto.data.models.cards.VisitCardDTO
import okhttp3.ResponseBody
import retrofit2.Call
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.Header
import retrofit2.http.PUT
import retrofit2.http.Query
interface RetrofitApi {
@GET("employee/auth")
@ -19,4 +22,9 @@ interface RetrofitApi {
@GET("visit/open")
fun open(@Header("Authorization") token: String): Call<ResponseBody>
@PUT("employee/invertLock")
fun invertLock(
@Header("Authorization") token: String, @Query("login") login: String, @Body status: Boolean
): Call<ResponseBody>
}

View File

@ -1,7 +1,7 @@
package com.nto.domain.repository
import com.nto.data.models.LoginResult
import com.nto.data.models.ScanResult
import com.nto.data.models.RequestResult
import com.nto.data.models.UserDTO
import com.nto.data.models.cards.VisitCardWrapper
@ -11,6 +11,7 @@ interface DomainRepository {
suspend fun getToken(): String?
suspend fun getInfo(): UserDTO
suspend fun getVisits(id: String): VisitCardWrapper
suspend fun open(): ScanResult
suspend fun open(): RequestResult
suspend fun logout()
suspend fun invertLock(id: String, status: Boolean): RequestResult
}

View File

@ -1,7 +1,7 @@
package com.nto.domain.repository
import com.nto.data.models.LoginResult
import com.nto.data.models.ScanResult
import com.nto.data.models.RequestResult
import com.nto.data.models.UserDTO
import com.nto.data.models.cards.VisitCardWrapper
import com.nto.data.repository.DataRepositoryImpl
@ -48,7 +48,7 @@ class DomainRepositoryImpl @Inject constructor(private val dataRepositoryImpl: D
}
}
override suspend fun open(): ScanResult {
override suspend fun open(): RequestResult {
return dataRepositoryImpl.open()
}
@ -56,4 +56,8 @@ class DomainRepositoryImpl @Inject constructor(private val dataRepositoryImpl: D
dataRepositoryImpl.logout()
}
override suspend fun invertLock(id: String, status: Boolean): RequestResult {
return dataRepositoryImpl.invertLock(id, status)
}
}

View File

@ -0,0 +1,10 @@
package com.nto.domain.usecase
import com.nto.domain.repository.DomainRepositoryImpl
import javax.inject.Inject
class AdminUseCase @Inject constructor(private val domainRepositoryImpl: DomainRepositoryImpl) {
suspend fun invertLock(id: String, status: Boolean){
domainRepositoryImpl.invertLock(id, status)
}
}