first fully ready for trying system
This commit is contained in:
client/src
features
files
common
src
jvmMain
kotlin
dev
inmo
postssystem
features
files
common
publication
common
src
commonMain
kotlin
dev
inmo
postssystem
features
publication
common
publicators
simple
client
common
build.gradle
src
server
template
server
services/posts/client
settings.gradletargets/telegram/publication/server/src/jvmMain/kotlin/dev/inmo/postssystem/targets/telegram/publication/server
@ -13,6 +13,7 @@ kotlin {
|
||||
api project(":postssystem.features.common.client")
|
||||
api project(":postssystem.services.posts.common")
|
||||
api project(":postssystem.features.posts.client")
|
||||
api project(":postssystem.publicators.simple.client")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,20 +2,25 @@ package dev.inmo.postssystem.services.posts.client.ui.create
|
||||
|
||||
import dev.inmo.postssystem.features.common.common.AbstractUIModel
|
||||
import dev.inmo.postssystem.features.content.common.Content
|
||||
import dev.inmo.postssystem.publicators.simple.client.SimplePublicatorService
|
||||
import dev.inmo.postssystem.services.posts.common.FullNewPost
|
||||
import dev.inmo.postssystem.services.posts.common.WritePostsService
|
||||
import kotlinx.coroutines.delay
|
||||
|
||||
class DefaultPostCreateUIModel(
|
||||
private val postCreationService: WritePostsService
|
||||
private val postCreationService: WritePostsService,
|
||||
private val publicationService: SimplePublicatorService
|
||||
) : PostCreateUIModel, AbstractUIModel<PostCreateUIState>(
|
||||
PostCreateUIState.Init
|
||||
) {
|
||||
override suspend fun create(content: List<Content>) {
|
||||
runCatching {
|
||||
_currentState.value = PostCreateUIState.Uploading
|
||||
postCreationService.create(
|
||||
val post = postCreationService.create(
|
||||
FullNewPost(content)
|
||||
)
|
||||
) ?: return@runCatching
|
||||
delay(1000L)
|
||||
publicationService.publish(post.id)
|
||||
}.onFailure {
|
||||
_currentState.value = PostCreateUIState.Fail
|
||||
}.onSuccess {
|
||||
|
Reference in New Issue
Block a user