All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.net.folivo.trixnity.client.user.createUserModule.kt Maven / Gradle / Ivy

There is a newer version: 4.7.1
Show newest version
package net.folivo.trixnity.client.user

import net.folivo.trixnity.core.EventHandler
import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.named
import org.koin.core.module.dsl.singleOf
import org.koin.core.qualifier.named
import org.koin.dsl.module

fun createUserModule() = module {
    singleOf(::UserMemberEventHandler) {
        bind()
        bind()
        named()
    }
    singleOf(::PresenceEventHandlerImpl) {
        bind()
        bind()
        named()
    }
    singleOf(::ReceiptEventHandler) {
        bind()
        named()
    }
    singleOf(::GlobalAccountDataEventHandler) {
        bind()
        named()
    }
    single {
        LoadMembersServiceImpl(
            roomStore = get(),
            lazyMemberEventHandlers = getAll(),
            currentSyncState = get(),
            api = get(),
            scope = get(),
        )
    }
    single {
        UserServiceImpl(
            roomStore = get(),
            roomUserStore = get(),
            roomStateStore = get(),
            roomTimelineStore = get(),
            globalAccountDataStore = get(),
            loadMembersService = get(),
            presenceEventHandler = get(named()),
            userInfo = get(),
            mappings = get(),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy