Moved services each to own class

This commit is contained in:
2022-02-25 01:17:20 +01:00
parent ead4876347
commit e4e38d07fd
10 changed files with 139 additions and 138 deletions

View File

@@ -1,102 +0,0 @@
package eu.fosil
import io.ktor.http.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.launch
import net.folivo.trixnity.appservice.rest.DefaultAppserviceService
import net.folivo.trixnity.appservice.rest.MatrixAppserviceProperties
import net.folivo.trixnity.appservice.rest.event.AppserviceEventTnxService
import net.folivo.trixnity.appservice.rest.matrixAppserviceModule
import net.folivo.trixnity.appservice.rest.room.AppserviceRoomService
import net.folivo.trixnity.appservice.rest.room.CreateRoomParameter
import net.folivo.trixnity.appservice.rest.user.AppserviceUserService
import net.folivo.trixnity.appservice.rest.user.RegisterUserParameter
import net.folivo.trixnity.client.api.MatrixApiClient
import net.folivo.trixnity.core.model.RoomAliasId
import net.folivo.trixnity.core.model.RoomId
import net.folivo.trixnity.core.model.UserId
val matrixClient = MatrixApiClient(
baseUrl = Url("http://okupamicoche-synapse:8008/"),
).apply { accessToken.value = "30c05ae90a248a4188e620216fa72e349803310ec83e2a77b34fe90be6081f46" }
suspend fun main() {
coroutineScope {
val appserviceService = DefaultAppserviceService(
EventTnxService(),
UserService(),
RoomService()
)
appserviceService.subscribeAllEvents {
event -> println(event)
}
launch {
embeddedServer(Netty, port = 8080, host = "0.0.0.0") {
matrixAppserviceModule(
properties = MatrixAppserviceProperties("312df522183efd404ec1cd22d2ffa4bbc76a8c1ccf541dd692eef281356bb74e"),
appserviceService = appserviceService
)
}.start(wait = true)
}
}
}
class EventTnxService : AppserviceEventTnxService {
override suspend fun eventTnxProcessingState(tnxId: String): AppserviceEventTnxService.EventTnxProcessingState {
println("eventTnxProcessingState")
return AppserviceEventTnxService.EventTnxProcessingState.NOT_PROCESSED
// return AppserviceEventTnxService.EventTnxProcessingState.PROCESSED
}
override suspend fun onEventTnxProcessed(tnxId: String) {
println("onEventTnxProcessed")
}
}
class UserService : AppserviceUserService {
override val matrixApiClient: MatrixApiClient
get() = matrixClient
override suspend fun getRegisterUserParameter(userId: UserId): RegisterUserParameter {
println("getRegisterUserParameter")
return RegisterUserParameter("user parameter")
}
override suspend fun onRegisteredUser(userId: UserId) {
println("onRegisteredUser")
}
override suspend fun userExistingState(userId: UserId): AppserviceUserService.UserExistingState {
println("userExistingState")
return AppserviceUserService.UserExistingState.CAN_BE_CREATED
}
}
class RoomService : AppserviceRoomService {
override val matrixApiClient: MatrixApiClient
get() = matrixClient
override suspend fun getCreateRoomParameter(roomAlias: RoomAliasId): CreateRoomParameter {
println("getCreateRoomParameter")
return CreateRoomParameter()
}
override suspend fun onCreatedRoom(roomAlias: RoomAliasId, roomId: RoomId) {
println("onCreatedRoom")
}
override suspend fun roomExistingState(roomAlias: RoomAliasId): AppserviceRoomService.RoomExistingState {
println("roomExistingState")
return AppserviceRoomService.RoomExistingState.DOES_NOT_EXISTS
}
}

View File

@@ -0,0 +1,54 @@
package eu.fosil.okupamicoche
import eu.fosil.okupamicoche.services.EventTnxService
import eu.fosil.okupamicoche.services.RoomService
import eu.fosil.okupamicoche.services.UserService
import io.ktor.http.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.launch
import net.folivo.trixnity.appservice.rest.DefaultAppserviceService
import net.folivo.trixnity.appservice.rest.MatrixAppserviceProperties
import net.folivo.trixnity.appservice.rest.matrixAppserviceModule
import net.folivo.trixnity.client.api.MatrixApiClient
import net.folivo.trixnity.core.model.events.Event
import net.folivo.trixnity.core.model.events.m.room.CreateEventContent
import net.folivo.trixnity.core.model.events.m.room.RoomMessageEventContent
val matrixClient = MatrixApiClient(
baseUrl = Url("http://okupamicoche-synapse:8008/"),
).apply { accessToken.value = "30c05ae90a248a4188e620216fa72e349803310ec83e2a77b34fe90be6081f46" }
suspend fun main() {
coroutineScope {
val appserviceService = DefaultAppserviceService(
EventTnxService(), UserService(), RoomService()
)
appserviceService.subscribeAllEvents {
println(it)
}
appserviceService.subscribe<CreateEventContent> {
if (it is Event.RoomEvent) {
println("${it.content.creator} created ${it.roomId}")
}
}
appserviceService.subscribe<RoomMessageEventContent.TextMessageEventContent> {
println("TextMessageEventContent body=${it.content.body}")
}
launch {
embeddedServer(Netty, port = 8080, host = "0.0.0.0") {
matrixAppserviceModule(
properties = MatrixAppserviceProperties("312df522183efd404ec1cd22d2ffa4bbc76a8c1ccf541dd692eef281356bb74e"),
appserviceService = appserviceService
)
}.start(wait = true)
}
}
}

View File

@@ -0,0 +1,15 @@
package eu.fosil.okupamicoche.services
import net.folivo.trixnity.appservice.rest.event.AppserviceEventTnxService
class EventTnxService : AppserviceEventTnxService {
override suspend fun eventTnxProcessingState(tnxId: String): AppserviceEventTnxService.EventTnxProcessingState {
println("eventTnxProcessingState tnxId=$tnxId")
return AppserviceEventTnxService.EventTnxProcessingState.NOT_PROCESSED
// return AppserviceEventTnxService.EventTnxProcessingState.PROCESSED
}
override suspend fun onEventTnxProcessed(tnxId: String) {
println("onEventTnxProcessed tnxId=$tnxId")
}
}

View File

@@ -0,0 +1,28 @@
package eu.fosil.okupamicoche.services
import eu.fosil.okupamicoche.matrixClient
import net.folivo.trixnity.appservice.rest.room.AppserviceRoomService
import net.folivo.trixnity.appservice.rest.room.CreateRoomParameter
import net.folivo.trixnity.client.api.MatrixApiClient
import net.folivo.trixnity.core.model.RoomAliasId
import net.folivo.trixnity.core.model.RoomId
class RoomService : AppserviceRoomService {
override val matrixApiClient: MatrixApiClient
get() = matrixClient
override suspend fun getCreateRoomParameter(roomAlias: RoomAliasId): CreateRoomParameter {
println("getCreateRoomParameter")
return CreateRoomParameter()
}
override suspend fun onCreatedRoom(roomAlias: RoomAliasId, roomId: RoomId) {
println("onCreatedRoom")
}
override suspend fun roomExistingState(roomAlias: RoomAliasId): AppserviceRoomService.RoomExistingState {
println("roomExistingState")
return AppserviceRoomService.RoomExistingState.DOES_NOT_EXISTS
}
}

View File

@@ -0,0 +1,27 @@
package eu.fosil.okupamicoche.services
import eu.fosil.okupamicoche.matrixClient
import net.folivo.trixnity.appservice.rest.user.AppserviceUserService
import net.folivo.trixnity.appservice.rest.user.RegisterUserParameter
import net.folivo.trixnity.client.api.MatrixApiClient
import net.folivo.trixnity.core.model.UserId
class UserService : AppserviceUserService {
override val matrixApiClient: MatrixApiClient
get() = matrixClient
override suspend fun getRegisterUserParameter(userId: UserId): RegisterUserParameter {
println("getRegisterUserParameter")
return RegisterUserParameter("user parameter")
}
override suspend fun onRegisteredUser(userId: UserId) {
println("onRegisteredUser")
}
override suspend fun userExistingState(userId: UserId): AppserviceUserService.UserExistingState {
println("userExistingState")
return AppserviceUserService.UserExistingState.CAN_BE_CREATED
}
}

View File

@@ -1,4 +0,0 @@
package eu.fosil
class ApplicationTest {
}

View File

@@ -0,0 +1,4 @@
package eu.fosil.okupamicoche
class ApplicationTest {
}