space service : expose methods from sdk
This commit is contained in:
parent
421f12f396
commit
b59e36aabd
3 changed files with 33 additions and 4 deletions
|
|
@ -15,6 +15,10 @@ interface SpaceService {
|
||||||
val spaceRoomsFlow: SharedFlow<List<SpaceRoom>>
|
val spaceRoomsFlow: SharedFlow<List<SpaceRoom>>
|
||||||
suspend fun joinedSpaces(): Result<List<SpaceRoom>>
|
suspend fun joinedSpaces(): Result<List<SpaceRoom>>
|
||||||
|
|
||||||
|
suspend fun joinedParents(spaceId: RoomId): Result<List<SpaceRoom>>
|
||||||
|
|
||||||
|
suspend fun getSpaceRoom(spaceId: RoomId): SpaceRoom?
|
||||||
|
|
||||||
fun spaceRoomList(id: RoomId): SpaceRoomList
|
fun spaceRoomList(id: RoomId): SpaceRoomList
|
||||||
|
|
||||||
fun getLeaveSpaceHandle(spaceId: RoomId): LeaveSpaceHandle
|
fun getLeaveSpaceHandle(spaceId: RoomId): LeaveSpaceHandle
|
||||||
|
|
|
||||||
|
|
@ -51,13 +51,28 @@ class RustSpaceService(
|
||||||
|
|
||||||
override suspend fun joinedSpaces(): Result<List<SpaceRoom>> = withContext(sessionDispatcher) {
|
override suspend fun joinedSpaces(): Result<List<SpaceRoom>> = withContext(sessionDispatcher) {
|
||||||
runCatchingExceptions {
|
runCatchingExceptions {
|
||||||
innerSpaceService.topLevelJoinedSpaces()
|
innerSpaceService
|
||||||
.map {
|
.topLevelJoinedSpaces()
|
||||||
it.let(spaceRoomMapper::map)
|
.map(spaceRoomMapper::map)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun joinedParents(spaceId: RoomId): Result<List<SpaceRoom>> = withContext(sessionDispatcher) {
|
||||||
|
runCatchingExceptions {
|
||||||
|
innerSpaceService
|
||||||
|
.joinedParentsOfChild(spaceId.value)
|
||||||
|
.map(spaceRoomMapper::map)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getSpaceRoom(spaceId: RoomId): SpaceRoom? = withContext(sessionDispatcher) {
|
||||||
|
runCatchingExceptions {
|
||||||
|
innerSpaceService.getSpaceRoom(spaceId.value)?.let { spaceRoom ->
|
||||||
|
spaceRoomMapper.map(spaceRoom)
|
||||||
|
}
|
||||||
|
}.getOrNull()
|
||||||
|
}
|
||||||
|
|
||||||
override fun spaceRoomList(id: RoomId): SpaceRoomList {
|
override fun spaceRoomList(id: RoomId): SpaceRoomList {
|
||||||
val childCoroutineScope = sessionCoroutineScope.childScope(sessionDispatcher, "SpaceRoomListScope-$this")
|
val childCoroutineScope = sessionCoroutineScope.childScope(sessionDispatcher, "SpaceRoomListScope-$this")
|
||||||
return RustSpaceRoomList(
|
return RustSpaceRoomList(
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ class FakeSpaceService(
|
||||||
private val joinedSpacesResult: () -> Result<List<SpaceRoom>> = { lambdaError() },
|
private val joinedSpacesResult: () -> Result<List<SpaceRoom>> = { lambdaError() },
|
||||||
private val spaceRoomListResult: (RoomId) -> SpaceRoomList = { lambdaError() },
|
private val spaceRoomListResult: (RoomId) -> SpaceRoomList = { lambdaError() },
|
||||||
private val leaveSpaceHandleResult: (RoomId) -> LeaveSpaceHandle = { lambdaError() },
|
private val leaveSpaceHandleResult: (RoomId) -> LeaveSpaceHandle = { lambdaError() },
|
||||||
|
private val joinedParentsResult: (RoomId) -> Result<List<SpaceRoom>> = { lambdaError() },
|
||||||
|
private val getSpaceRoomResult: (RoomId) -> SpaceRoom? = { lambdaError() },
|
||||||
) : SpaceService {
|
) : SpaceService {
|
||||||
private val _spaceRoomsFlow = MutableSharedFlow<List<SpaceRoom>>()
|
private val _spaceRoomsFlow = MutableSharedFlow<List<SpaceRoom>>()
|
||||||
override val spaceRoomsFlow: SharedFlow<List<SpaceRoom>>
|
override val spaceRoomsFlow: SharedFlow<List<SpaceRoom>>
|
||||||
|
|
@ -36,6 +38,14 @@ class FakeSpaceService(
|
||||||
return joinedSpacesResult()
|
return joinedSpacesResult()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun joinedParents(spaceId: RoomId): Result<List<SpaceRoom>> {
|
||||||
|
return joinedParentsResult(spaceId)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getSpaceRoom(spaceId: RoomId): SpaceRoom? {
|
||||||
|
return getSpaceRoomResult(spaceId)
|
||||||
|
}
|
||||||
|
|
||||||
override fun spaceRoomList(id: RoomId): SpaceRoomList {
|
override fun spaceRoomList(id: RoomId): SpaceRoomList {
|
||||||
return spaceRoomListResult(id)
|
return spaceRoomListResult(id)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue