diff --git a/data/src/main/java/com/nto/data/models/ScanResult.kt b/data/src/main/java/com/nto/data/models/RequestResult.kt similarity index 69% rename from data/src/main/java/com/nto/data/models/ScanResult.kt rename to data/src/main/java/com/nto/data/models/RequestResult.kt index 1b1d6dc..65ccd54 100644 --- a/data/src/main/java/com/nto/data/models/ScanResult.kt +++ b/data/src/main/java/com/nto/data/models/RequestResult.kt @@ -1,6 +1,6 @@ package com.nto.data.models -enum class ScanResult { +enum class RequestResult { OK, CANCELED, ERROR 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 aecbf0e..7a504a5 100644 --- a/data/src/main/java/com/nto/data/repository/DataRepository.kt +++ b/data/src/main/java/com/nto/data/repository/DataRepository.kt @@ -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 } \ 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 b452c10..5aa6ae8 100644 --- a/data/src/main/java/com/nto/data/repository/DataRepositoryImpl.kt +++ b/data/src/main/java/com/nto/data/repository/DataRepositoryImpl.kt @@ -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 + } } } \ 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 cc3b822..a07f64a 100644 --- a/data/src/main/java/com/nto/data/utils/RetrofitApi.kt +++ b/data/src/main/java/com/nto/data/utils/RetrofitApi.kt @@ -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 + + @PUT("employee/invertLock") + fun invertLock( + @Header("Authorization") token: String, @Query("login") login: String, @Body status: Boolean + ): Call } \ No newline at end of file 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 eef47be..f4fbd12 100644 --- a/domain/src/main/java/com/nto/domain/repository/DomainRepository.kt +++ b/domain/src/main/java/com/nto/domain/repository/DomainRepository.kt @@ -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 } \ No newline at end of file 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 2ffc362..d28e2d1 100644 --- a/domain/src/main/java/com/nto/domain/repository/DomainRepositoryImpl.kt +++ b/domain/src/main/java/com/nto/domain/repository/DomainRepositoryImpl.kt @@ -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) + } + } \ No newline at end of file diff --git a/domain/src/main/java/com/nto/domain/usecase/AdminUseCase.kt b/domain/src/main/java/com/nto/domain/usecase/AdminUseCase.kt new file mode 100644 index 0000000..39c299b --- /dev/null +++ b/domain/src/main/java/com/nto/domain/usecase/AdminUseCase.kt @@ -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) + } +} \ No newline at end of file