Updated trixnity to 2.0.0-RC2, runtime errors present
This commit is contained in:
@@ -7,11 +7,7 @@ import eu.fosil.okupamicoche.matrix.event.TravelEventContentSerializerMappings
|
||||
import eu.fosil.okupamicoche.matrix.matrixApiClient
|
||||
import io.ktor.server.engine.*
|
||||
import io.ktor.server.netty.*
|
||||
import mu.KotlinLogging
|
||||
import net.folivo.trixnity.appservice.MatrixAppserviceProperties
|
||||
import net.folivo.trixnity.appservice.rest.matrixAppserviceModule
|
||||
|
||||
private val logger = KotlinLogging.logger {}
|
||||
import net.folivo.trixnity.applicationserviceapi.server.matrixApplicationServiceApiServer
|
||||
|
||||
suspend fun main() {
|
||||
|
||||
@@ -25,9 +21,9 @@ suspend fun main() {
|
||||
|
||||
// Start Ktor server
|
||||
embeddedServer(Netty, port = 8080, host = "0.0.0.0") {
|
||||
matrixAppserviceModule(
|
||||
properties = MatrixAppserviceProperties(config.tokens.homeserver),
|
||||
appserviceService = createAppService(matrixApiClient),
|
||||
matrixApplicationServiceApiServer(
|
||||
hsToken = config.tokens.homeserver,
|
||||
applicationServiceApiServerHandler = createAppService(matrixApiClient),
|
||||
customMappings = TravelEventContentSerializerMappings
|
||||
)
|
||||
}.start(wait = true)
|
||||
|
||||
@@ -7,8 +7,8 @@ import eu.fosil.okupamicoche.matrix.services.EventTnxService
|
||||
import eu.fosil.okupamicoche.matrix.services.RoomService
|
||||
import eu.fosil.okupamicoche.matrix.services.UserService
|
||||
import mu.KotlinLogging
|
||||
import net.folivo.trixnity.appservice.AppserviceService
|
||||
import net.folivo.trixnity.appservice.DefaultAppserviceService
|
||||
import net.folivo.trixnity.applicationserviceapi.server.ApplicationServiceApiServerHandler
|
||||
import net.folivo.trixnity.appservice.DefaultApplicationServiceApiServerHandler
|
||||
import net.folivo.trixnity.clientserverapi.client.MatrixClientServerApiClient
|
||||
import net.folivo.trixnity.core.model.events.Event
|
||||
import net.folivo.trixnity.core.model.events.m.room.CreateEventContent
|
||||
@@ -21,14 +21,14 @@ val db = Database.connect("jdbc:h2:./okupamicoche", driver = "org.h2.Driver")
|
||||
|
||||
private val logger = KotlinLogging.logger {}
|
||||
|
||||
fun createAppService(matrixClientServerApiClient: MatrixClientServerApiClient): AppserviceService {
|
||||
fun createAppService(matrixClientServerApiClient: MatrixClientServerApiClient): ApplicationServiceApiServerHandler {
|
||||
|
||||
transaction(db) {
|
||||
SchemaUtils.create(TravelsTable)
|
||||
logger.info { "Travels table created" }
|
||||
}
|
||||
|
||||
return DefaultAppserviceService(
|
||||
return DefaultApplicationServiceApiServerHandler(
|
||||
EventTnxService(),
|
||||
UserService(matrixClientServerApiClient),
|
||||
RoomService(matrixClientServerApiClient)
|
||||
@@ -36,16 +36,16 @@ fun createAppService(matrixClientServerApiClient: MatrixClientServerApiClient):
|
||||
subscribeAllEvents {
|
||||
logger.debug("All events: $it")
|
||||
}
|
||||
subscribe<CreateEventContent> {
|
||||
subscribe(CreateEventContent::class) {
|
||||
if (it is Event.RoomEvent) {
|
||||
logger.info("${it.content.creator} created room ${it.roomId}")
|
||||
}
|
||||
}
|
||||
subscribe<TravelCreatedMessageEventContent> { event ->
|
||||
subscribe(TravelCreatedMessageEventContent::class) { event ->
|
||||
logger.info("NEW TRAVEL CREATED EVENT!!")
|
||||
logger.info("$event")
|
||||
}
|
||||
subscribe<RoomMessageEventContent.TextMessageEventContent> { event ->
|
||||
subscribe(RoomMessageEventContent.TextMessageEventContent::class) { event ->
|
||||
require(event is Event.MessageEvent)
|
||||
val roomId = event.roomId
|
||||
val body = event.content.body
|
||||
|
||||
@@ -3,11 +3,9 @@ package eu.fosil.okupamicoche.matrix
|
||||
import eu.fosil.okupamicoche.config.ConfigReader
|
||||
import eu.fosil.okupamicoche.matrix.event.TravelEventContentSerializerMappings
|
||||
import io.ktor.http.*
|
||||
import kotlinx.coroutines.flow.filter
|
||||
import kotlinx.coroutines.flow.firstOrNull
|
||||
import mu.KotlinLogging
|
||||
import net.folivo.trixnity.clientserverapi.client.MatrixClientServerApiClient
|
||||
import net.folivo.trixnity.clientserverapi.model.rooms.Visibility
|
||||
import net.folivo.trixnity.clientserverapi.model.rooms.DirectoryVisibility
|
||||
import net.folivo.trixnity.core.model.RoomAliasId
|
||||
import net.folivo.trixnity.core.model.RoomId
|
||||
import net.folivo.trixnity.core.model.UserId
|
||||
@@ -31,7 +29,7 @@ object MatrixApiClient {
|
||||
suspend fun init() {
|
||||
requireNotNull(matrixApiClient)
|
||||
|
||||
appServiceUserId = matrixApiClient.users.whoAmI().getOrThrow().userId
|
||||
appServiceUserId = matrixApiClient.authentication.whoAmI().getOrThrow().userId
|
||||
mainRoomId = createMainRoomIfNeeded()
|
||||
}
|
||||
|
||||
@@ -46,7 +44,7 @@ object MatrixApiClient {
|
||||
if (roomAliasRes == null) {
|
||||
logger.info("Creating $roomMainAlias public room")
|
||||
mainRoomId = matrixApiClient.rooms.createRoom(
|
||||
visibility = Visibility.PUBLIC,
|
||||
visibility = DirectoryVisibility.PUBLIC,
|
||||
roomAliasId = RoomAliasId(roomMainAlias)
|
||||
).getOrNull()
|
||||
} else {
|
||||
@@ -60,8 +58,8 @@ object MatrixApiClient {
|
||||
matrixApiClient.rooms.joinRoom(mainRoomId)
|
||||
}
|
||||
|
||||
val roomStateRes = matrixApiClient.rooms.getState(mainRoomId).getOrNull()
|
||||
roomStateRes?.collect { stateEvent ->
|
||||
val roomStateEvents = matrixApiClient.rooms.getState(mainRoomId).getOrNull()
|
||||
roomStateEvents?.forEach { stateEvent ->
|
||||
logger.debug("stateEvent=$stateEvent")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
package eu.fosil.okupamicoche.matrix.services
|
||||
|
||||
import mu.KotlinLogging
|
||||
import net.folivo.trixnity.appservice.event.AppserviceEventTnxService
|
||||
import net.folivo.trixnity.appservice.ApplicationServiceEventTxnService
|
||||
|
||||
private val logger = KotlinLogging.logger {}
|
||||
|
||||
class EventTnxService : AppserviceEventTnxService {
|
||||
override suspend fun eventTnxProcessingState(tnxId: String): AppserviceEventTnxService.EventTnxProcessingState {
|
||||
logger.debug("eventTnxProcessingState tnxId=$tnxId")
|
||||
return AppserviceEventTnxService.EventTnxProcessingState.NOT_PROCESSED
|
||||
class EventTnxService : ApplicationServiceEventTxnService {
|
||||
override suspend fun eventTnxProcessingState(txnId: String): ApplicationServiceEventTxnService.EventTnxProcessingState {
|
||||
logger.debug("eventTnxProcessingState tnxId=$txnId")
|
||||
return ApplicationServiceEventTxnService.EventTnxProcessingState.NOT_PROCESSED
|
||||
// return AppserviceEventTnxService.EventTnxProcessingState.PROCESSED
|
||||
}
|
||||
|
||||
override suspend fun onEventTnxProcessed(tnxId: String) {
|
||||
logger.debug("onEventTnxProcessed tnxId=$tnxId")
|
||||
override suspend fun onEventTnxProcessed(txnId: String) {
|
||||
logger.debug("onEventTnxProcessed tnxId=$txnId")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,29 +1,30 @@
|
||||
package eu.fosil.okupamicoche.matrix.services
|
||||
|
||||
import mu.KotlinLogging
|
||||
import net.folivo.trixnity.appservice.room.AppserviceRoomService
|
||||
import net.folivo.trixnity.appservice.room.CreateRoomParameter
|
||||
import net.folivo.trixnity.appservice.ApplicationServiceRoomService
|
||||
import net.folivo.trixnity.appservice.CreateRoomParameter
|
||||
import net.folivo.trixnity.clientserverapi.client.MatrixClientServerApiClient
|
||||
import net.folivo.trixnity.clientserverapi.model.rooms.Visibility
|
||||
import net.folivo.trixnity.clientserverapi.model.rooms.DirectoryVisibility
|
||||
import net.folivo.trixnity.core.model.RoomAliasId
|
||||
import net.folivo.trixnity.core.model.RoomId
|
||||
|
||||
private val logger = KotlinLogging.logger {}
|
||||
|
||||
class RoomService(override val matrixClientServerApiClient: MatrixClientServerApiClient) : AppserviceRoomService {
|
||||
class RoomService(override val matrixClientServerApiClient: MatrixClientServerApiClient) :
|
||||
ApplicationServiceRoomService {
|
||||
|
||||
override suspend fun getCreateRoomParameter(roomAlias: RoomAliasId): CreateRoomParameter {
|
||||
logger.info("getCreateRoomParameter")
|
||||
return CreateRoomParameter(Visibility.PUBLIC)
|
||||
return CreateRoomParameter(DirectoryVisibility.PUBLIC)
|
||||
}
|
||||
|
||||
override suspend fun onCreatedRoom(roomAlias: RoomAliasId, roomId: RoomId) {
|
||||
logger.info("onCreatedRoom")
|
||||
}
|
||||
|
||||
override suspend fun roomExistingState(roomAlias: RoomAliasId): AppserviceRoomService.RoomExistingState {
|
||||
override suspend fun roomExistingState(roomAlias: RoomAliasId): ApplicationServiceRoomService.RoomExistingState {
|
||||
logger.info("roomExistingState")
|
||||
return AppserviceRoomService.RoomExistingState.DOES_NOT_EXISTS
|
||||
return ApplicationServiceRoomService.RoomExistingState.DOES_NOT_EXISTS
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
package eu.fosil.okupamicoche.matrix.services
|
||||
|
||||
import net.folivo.trixnity.appservice.user.AppserviceUserService
|
||||
import net.folivo.trixnity.appservice.user.RegisterUserParameter
|
||||
import net.folivo.trixnity.appservice.ApplicationServiceUserService
|
||||
import net.folivo.trixnity.appservice.RegisterUserParameter
|
||||
import net.folivo.trixnity.clientserverapi.client.MatrixClientServerApiClient
|
||||
import net.folivo.trixnity.core.model.UserId
|
||||
|
||||
class UserService(override val matrixClientServerApiClient: MatrixClientServerApiClient) : AppserviceUserService {
|
||||
class UserService(override val matrixClientServerApiClient: MatrixClientServerApiClient) :
|
||||
ApplicationServiceUserService {
|
||||
|
||||
override suspend fun getRegisterUserParameter(userId: UserId): RegisterUserParameter {
|
||||
println("getRegisterUserParameter")
|
||||
@@ -16,9 +17,9 @@ class UserService(override val matrixClientServerApiClient: MatrixClientServerAp
|
||||
println("onRegisteredUser")
|
||||
}
|
||||
|
||||
override suspend fun userExistingState(userId: UserId): AppserviceUserService.UserExistingState {
|
||||
override suspend fun userExistingState(userId: UserId): ApplicationServiceUserService.UserExistingState {
|
||||
println("userExistingState")
|
||||
return AppserviceUserService.UserExistingState.CAN_BE_CREATED
|
||||
return ApplicationServiceUserService.UserExistingState.CAN_BE_CREATED
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import eu.fosil.okupamicoche.matrix.matrixApiClient
|
||||
import eu.fosil.okupamicoche.model.Travel
|
||||
import eu.fosil.okupamicoche.model.TravelOptions
|
||||
import mu.KotlinLogging
|
||||
import net.folivo.trixnity.clientserverapi.model.rooms.Visibility
|
||||
import net.folivo.trixnity.clientserverapi.model.rooms.DirectoryVisibility
|
||||
import net.folivo.trixnity.core.model.RoomAliasId
|
||||
import net.folivo.trixnity.core.model.RoomId
|
||||
import net.folivo.trixnity.core.model.UserId
|
||||
@@ -69,7 +69,7 @@ private suspend fun createRoom(travelOptions: TravelOptions, driver: UserId): Ro
|
||||
)
|
||||
|
||||
return matrixApiClient.rooms.createRoom(
|
||||
visibility = Visibility.PUBLIC,
|
||||
visibility = DirectoryVisibility.PUBLIC,
|
||||
roomAliasId = newRoomAliasAndName.aliasId,
|
||||
name = newRoomAliasAndName.name,
|
||||
topic = travelOptions.description,
|
||||
|
||||
Reference in New Issue
Block a user