add EnterUseCase
This commit is contained in:
parent
a926afbd3d
commit
90727a314b
@ -4,6 +4,7 @@ import android.util.Log
|
|||||||
import io.ktor.client.call.body
|
import io.ktor.client.call.body
|
||||||
import io.ktor.client.request.get
|
import io.ktor.client.request.get
|
||||||
import io.ktor.client.request.header
|
import io.ktor.client.request.header
|
||||||
|
import io.ktor.client.request.patch
|
||||||
import io.ktor.client.statement.bodyAsText
|
import io.ktor.client.statement.bodyAsText
|
||||||
import io.ktor.http.HttpHeaders
|
import io.ktor.http.HttpHeaders
|
||||||
import io.ktor.http.HttpStatusCode
|
import io.ktor.http.HttpStatusCode
|
||||||
@ -46,4 +47,17 @@ class UserNetworkDataSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
suspend fun enter(value : Long, login : String): Result<Boolean> = withContext(Dispatchers.IO) {
|
||||||
|
runCatching {
|
||||||
|
val result = client.patch("$SERVER_ADDRESS/api/open") {
|
||||||
|
header(HttpHeaders.Authorization, token)
|
||||||
|
|
||||||
|
}
|
||||||
|
Log.d("result", "${result.status}")
|
||||||
|
if (result.status != HttpStatusCode.OK) {
|
||||||
|
error("Status ${result.status}")
|
||||||
|
}
|
||||||
|
result.body<Boolean>()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -2,6 +2,7 @@ package ru.myitschool.work.data.user
|
|||||||
import ru.myitschool.work.domain.user.EntranceEntity
|
import ru.myitschool.work.domain.user.EntranceEntity
|
||||||
import ru.myitschool.work.domain.user.UserEntity
|
import ru.myitschool.work.domain.user.UserEntity
|
||||||
import ru.myitschool.work.domain.user.UserRepo
|
import ru.myitschool.work.domain.user.UserRepo
|
||||||
|
import kotlin.math.log
|
||||||
|
|
||||||
|
|
||||||
class UserRepoImpl (
|
class UserRepoImpl (
|
||||||
@ -28,12 +29,20 @@ class UserRepoImpl (
|
|||||||
userList.map { it.toEntity() }
|
userList.map { it.toEntity() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun enter(value: Long, login : String): Result<Boolean> {
|
||||||
|
return userNetworkDataSource.enter(value, login);
|
||||||
|
}
|
||||||
|
|
||||||
fun EntranceDto.toEntity(): EntranceEntity {
|
fun EntranceDto.toEntity(): EntranceEntity {
|
||||||
return EntranceEntity(
|
return EntranceEntity(
|
||||||
login = login,
|
login = login,
|
||||||
name = this.name,
|
name = this.name,
|
||||||
enteredAt = this.enteredAt,
|
enteredAt = this.enteredAt,
|
||||||
|
|
||||||
enterType = this.enterType
|
enterType = this.enterType
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package ru.myitschool.work.domain.user
|
||||||
|
|
||||||
|
import ru.myitschool.work.data.auth.AuthStorageDataSource
|
||||||
|
import ru.myitschool.work.data.user.UserDto
|
||||||
|
|
||||||
|
class EnterUseCase (
|
||||||
|
private val repo: UserRepo,
|
||||||
|
private val authStorageDataSource : AuthStorageDataSource
|
||||||
|
) {
|
||||||
|
private fun getUserFromStorage() : UserDto? {
|
||||||
|
return authStorageDataSource.userInfo
|
||||||
|
}
|
||||||
|
suspend operator fun invoke(value : Long) = repo.enter(value, getUserFromStorage()?.login!!)
|
||||||
|
}
|
@ -1,6 +1,5 @@
|
|||||||
package ru.myitschool.work.domain.user
|
package ru.myitschool.work.domain.user
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
|
@ -4,4 +4,5 @@ package ru.myitschool.work.domain.user
|
|||||||
interface UserRepo {
|
interface UserRepo {
|
||||||
suspend fun getUser(login: String) : Result<UserEntity>
|
suspend fun getUser(login: String) : Result<UserEntity>
|
||||||
suspend fun getEntrancesList(login : String) : Result<List<EntranceEntity>>
|
suspend fun getEntrancesList(login : String) : Result<List<EntranceEntity>>
|
||||||
|
suspend fun enter(value : Long, login : String) : Result<Boolean>
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user