add IdUtils

This commit is contained in:
InsanusMokrassar 2019-11-04 20:44:32 +06:00
parent 5017e66dad
commit 1b9b549208
3 changed files with 12 additions and 9 deletions

View File

@ -1,2 +1,10 @@
package com.insanusmokrassar.postssystem.core.utils package com.insanusmokrassar.postssystem.core.utils
import com.insanusmokrassar.postssystem.core.content.ContentId
import com.insanusmokrassar.postssystem.core.post.PostId
import java.util.*
private fun generateId() = UUID.randomUUID().toString()
internal fun generatePostId(): PostId = generateId()
internal fun generateContentId(): ContentId = generateId()

View File

@ -2,16 +2,13 @@ package com.insanusmokrassar.postssystem.core.api
import com.insanusmokrassar.postssystem.core.content.* import com.insanusmokrassar.postssystem.core.content.*
import com.insanusmokrassar.postssystem.core.content.api.ContentAPI import com.insanusmokrassar.postssystem.core.content.api.ContentAPI
import com.insanusmokrassar.postssystem.core.utils.generateContentId
import com.insanusmokrassar.postssystem.core.utils.pagination.* import com.insanusmokrassar.postssystem.core.utils.pagination.*
import kotlinx.coroutines.channels.BroadcastChannel import kotlinx.coroutines.channels.BroadcastChannel
import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.asFlow import kotlinx.coroutines.flow.asFlow
import kotlinx.serialization.ImplicitReflectionSerializer import kotlinx.serialization.ImplicitReflectionSerializer
import java.util.*
@ImplicitReflectionSerializer
private fun generateId(): ContentId = UUID.randomUUID().toString()
@ImplicitReflectionSerializer @ImplicitReflectionSerializer
class InMemoryContentAPI( class InMemoryContentAPI(
@ -32,7 +29,7 @@ class InMemoryContentAPI(
override suspend fun createContent(content: Content): RegisteredContent? { override suspend fun createContent(content: Content): RegisteredContent? {
return RegisteredContent( return RegisteredContent(
generateId(), generateContentId(),
content content
).also { registeredContent -> ).also { registeredContent ->
contents[registeredContent.id] = registeredContent contents[registeredContent.id] = registeredContent

View File

@ -3,6 +3,7 @@ package com.insanusmokrassar.postssystem.core.api
import com.insanusmokrassar.postssystem.core.content.ContentId import com.insanusmokrassar.postssystem.core.content.ContentId
import com.insanusmokrassar.postssystem.core.post.* import com.insanusmokrassar.postssystem.core.post.*
import com.insanusmokrassar.postssystem.core.post.api.PostsAPI import com.insanusmokrassar.postssystem.core.post.api.PostsAPI
import com.insanusmokrassar.postssystem.core.utils.generatePostId
import com.insanusmokrassar.postssystem.core.utils.pagination.* import com.insanusmokrassar.postssystem.core.utils.pagination.*
import kotlinx.coroutines.channels.BroadcastChannel import kotlinx.coroutines.channels.BroadcastChannel
import kotlinx.coroutines.channels.Channel.Factory.BUFFERED import kotlinx.coroutines.channels.Channel.Factory.BUFFERED
@ -12,9 +13,6 @@ import kotlinx.serialization.ImplicitReflectionSerializer
import org.joda.time.DateTime import org.joda.time.DateTime
import java.util.* import java.util.*
@ImplicitReflectionSerializer
private fun generateId(): PostId = UUID.randomUUID().toString()
/** /**
* Thread-unsafe sample realization of [PostsAPI] * Thread-unsafe sample realization of [PostsAPI]
*/ */
@ -39,7 +37,7 @@ class InMemoryPostsAPI(
override suspend fun createPost(post: Post): RegisteredPost? { override suspend fun createPost(post: Post): RegisteredPost? {
return SimpleRegisteredPost( return SimpleRegisteredPost(
generateId(), generatePostId(),
post.content post.content
).also { newPost -> ).also { newPost ->
posts[newPost.id] = newPost posts[newPost.id] = newPost