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

commonMain.net.folivo.trixnity.client.key.createKeyModule.kt Maven / Gradle / Ivy

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

import net.folivo.trixnity.client.user.LazyMemberEventHandler
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 createKeyModule() = module {
    singleOf(::OutdatedKeysHandler) {
        bind()
        bind()
        named()
    }
    singleOf(::IncomingRoomKeyRequestEventHandler) {
        bind()
        named()
    }
    singleOf(::OutgoingRoomKeyRequestEventHandlerImpl) {
        bind()
        bind()
        named()
    }
    singleOf(::IncomingSecretKeyRequestEventHandler) {
        bind()
        named()
    }
    single(named()) {
        OutgoingSecretKeyRequestEventHandler(
            userInfo = get(),
            api = get(),
            olmDecrypter = get(),
            keyBackupService = get(named()),
            keyStore = get(),
            globalAccountDataStore = get(),
            currentSyncState = get(),
            clock = get(),
        )
    }
    singleOf(::KeySecretServiceImpl) { bind() }
    singleOf(::KeyTrustServiceImpl) { bind() }
    singleOf(::KeyBackupServiceImpl) {
        bind()
        bind()
        named()
    }
    single {
        KeyServiceImpl(
            userInfo = get(),
            keyStore = get(),
            olmCryptoStore = get(),
            globalAccountDataStore = get(),
            roomService = get(),
            signService = get(),
            keyBackupService = get(named()),
            keyTrustService = get(),
            api = get()
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy