core/features/content/README.MD
2021-12-05 13:35:38 +00:00

1.5 KiB
Raw Blame History

How to create content?

For example, you want to create content named "MyFormat". To do this, you must perform the following actions:

  1. Copy "template" folder from "core/features" in "core/features/content"
  2. Rename this folder in "myformat"
  3. Inside the "myformat" folder rename all the "template" on "content.myformat"
  4. In the "settings.gradle" file in the "includes" array add the following code:
    ":features:content:myformat:common",
    ":features:content:myformat:client",
    ":features:content:myformat:server",
  1. In the "core/features/content/myformat/common/src" folder create folders with appropriate subfolders "commonMain/kotlin/dev/inmo/postssystem/features/content/myformat/common":
  2. In the last folder "сommon", create a data class and the configurator as shown below:
   @Serializable
   data class MyFormatContent(
       // Your code
   ) : Content
object MyFormatContentSerializerModuleConfigurator : ContentSerializersModuleConfigurator.Element {
    override fun PolymorphicModuleBuilder<Content>.invoke() {
        subclass(MyFormatContent::class, MyFormatContent.serializer())
    }
}
  1. In two "di.kt" file located in "core/client/src/commonMain/kotlin/dev/inmo/postsystem/client" and "core/server/src/main/java/dev/inmo/postsystem/client" respectively add the following string:
    singleWithRandomQualifier<ContentSerializersModuleConfigurator.Element> { MyFormatContentSerializerModuleConfigurator }