improvements in docs and null pointer fix

This commit is contained in:
2022-04-16 20:46:30 +02:00
parent 9f8d59b7a9
commit e37e764c2a
4 changed files with 23 additions and 6 deletions

View File

@@ -1,6 +1,7 @@
package eu.fosil.okupamicoche
import eu.fosil.okupamicoche.config.ConfigReader
import eu.fosil.okupamicoche.matrix.MatrixApiClient
import eu.fosil.okupamicoche.matrix.createAppService
import eu.fosil.okupamicoche.matrix.event.TravelEventContentSerializerMappings
import eu.fosil.okupamicoche.matrix.matrixApiClient
@@ -24,10 +25,10 @@ suspend fun main() {
requireNotNull(config)
requireNotNull(matrixApiClient)
MatrixApiClient.init()
coroutineScope {
launch {
val roomMainAlias = "#${config.mainRoom}:${config.homeserver.host}"
val roomAliasRes = matrixApiClient.rooms.getRoomAlias(RoomAliasId(roomMainAlias)).getOrNull()
if (roomAliasRes == null) {
@@ -38,10 +39,14 @@ suspend fun main() {
)
} else {
val mainRoomId = roomAliasRes.roomId
val alreadyJoinedToMainRoom = (matrixApiClient.rooms.getJoinedRooms().getOrNull()?.filter { roomId ->
val joinedToMainRoom = (matrixApiClient.rooms.getJoinedRooms().getOrNull()?.filter { roomId ->
roomId == mainRoomId
}?.firstOrNull()) !== null
logger.info("alreadyJoinedToMainRoom=$alreadyJoinedToMainRoom")
logger.info("alreadyJoinedToMainRoom=$joinedToMainRoom")
if (!joinedToMainRoom) {
matrixApiClient.rooms.joinRoom(mainRoomId)
}
val roomStateRes = matrixApiClient.rooms.getState(mainRoomId).getOrNull()
roomStateRes?.collect { stateEvent ->

View File

@@ -22,7 +22,7 @@ val matrixApiClient = if (config == null) null else MatrixClientServerApiClient(
object MatrixApiClient {
var appServiceUserId: UserId? = null
init {
fun init() {
requireNotNull(matrixApiClient)
val ioScope = CoroutineScope(Dispatchers.IO)

View File

@@ -53,6 +53,7 @@ suspend fun createTravel(
private suspend fun createRoom(travelOptions: TravelOptions, driver: UserId): RoomId {
requireNotNull(matrixApiClient)
requireNotNull(config)
val appServiceUserId = requireNotNull(MatrixApiClient.appServiceUserId)
val newRoomAliasAndName = getRoomAliasAndName(travelOptions)
val initialState = Event.InitialStateEvent(
@@ -62,7 +63,7 @@ private suspend fun createRoom(travelOptions: TravelOptions, driver: UserId): Ro
val powerLevels = PowerLevelsEventContent(
events = mapOf(Pair(TRAVEL_CREATED_STATE_EVENT_ID, 100)),
users = mapOf(
Pair(MatrixApiClient.appServiceUserId!!, 100),
Pair(appServiceUserId, 100),
Pair(driver, 50)
)
)