add information about content client provider to readme

This commit is contained in:
2022-03-18 00:04:04 +06:00
parent 1dafe0a679
commit 709e7a8583
11 changed files with 122 additions and 56 deletions
features
common
README.md
server
src
jvmMain
kotlin
dev
inmo
postssystem
features
content
README.md
binary
server
src
jvmMain
kotlin
dev
inmo
postssystem
features
text
server
src
jvmMain
kotlin
dev
inmo
postssystem
features
publicators/simple/server/src/jvmMain/kotlin/dev/inmo/postssystem/publicators/simple/server
server
src
main
java
dev
inmo
postssystem
test.config.json
targets/telegram/loader/server/src/jvmMain/kotlin/dev/inmo/postssystem/targets/telegram/loader/server

@ -35,3 +35,14 @@ For example, you want to create content named `MyFormat`. To do this, you must p
```kotlin
singleWithRandomQualifier<ContentSerializersModuleConfigurator.Element> { MyFormatContentSerializerModuleConfigurator }
```
## Client
**Currently, this information is actual only for JS (browser) clients. Other client platforms will be added later**
Besides, you may (and it is strongly recommended to) create your own client `ContentClientProvider` realization.
This realization will contain all main functions for drawing of content on the client side.
## Server
On the server side it is required to

@ -0,0 +1,20 @@
package dev.inmo.postssystem.features.content.binary.server
import dev.inmo.postssystem.features.common.common.singleWithRandomQualifier
import dev.inmo.postssystem.features.common.server.sessions.Qualifiers
import dev.inmo.postssystem.features.common.server.sessions.ServerModuleLoader
import dev.inmo.postssystem.features.content.common.BinaryContent
import dev.inmo.postssystem.features.content.server.ServerContentStorageWrapper
import kotlinx.serialization.json.JsonObject
import org.koin.core.module.Module
class BinaryContentServerModuleLoader : ServerModuleLoader {
override fun Module.load(config: JsonObject) {
singleWithRandomQualifier {
ServerContentStorageWrapper(
BinaryServerContentStorage(get(Qualifiers.binaryStorageFilesQualifier)),
BinaryContent::class
)
}
}
}

@ -0,0 +1,22 @@
package dev.inmo.postssystem.features.content.text.server
import dev.inmo.postssystem.features.common.common.singleWithRandomQualifier
import dev.inmo.postssystem.features.common.server.sessions.ServerModuleLoader
import dev.inmo.postssystem.features.content.common.ContentSerializersModuleConfigurator
import dev.inmo.postssystem.features.content.server.ServerContentStorageWrapper
import dev.inmo.postssystem.features.content.text.common.TextContent
import dev.inmo.postssystem.features.content.text.common.TextContentSerializerModuleConfigurator
import kotlinx.serialization.json.JsonObject
import org.koin.core.module.Module
class TextContentServerModuleLoader : ServerModuleLoader {
override fun Module.load(config: JsonObject) {
singleWithRandomQualifier<ContentSerializersModuleConfigurator.Element> { TextContentSerializerModuleConfigurator }
singleWithRandomQualifier {
ServerContentStorageWrapper(
TextServerContentStorage(get()),
TextContent::class
)
}
}
}