in space-slack-sync/src/main/kotlin/org/jetbrains/spaceSlackSync/homepage/SpaceChannelsToPickForSync.kt [10:32]
suspend fun getSpaceChannelsToPickFrom(query: String): SpaceChannelsToPickForSyncResponse {
val storedSyncedChannelIds = db.syncedChannels
.getByAppClientId(spaceTokenInfo.spaceAppInstance.clientId)
.map { it.spaceChannelId }
.toSet()
val serverUrl = spaceTokenInfo.spaceAppInstance.spaceServer.serverUrl
val spaceChannelsToPickForSync = userSpaceClient.chats.channels.listAllChannels(
query = query,
withArchived = false,
publicOnly = true,
batchInfo = BatchInfo("0", 40)
) {
name()
icon()
channelId()
access()
}.data
.map { SpaceChannelToPickForSync(it.name, it.channelId, it.icon?.let { icon -> "$serverUrl/d/$icon" }) }
.filter { it.spaceChannelId !in storedSyncedChannelIds }
return SpaceChannelsToPickForSyncResponse(spaceChannelsToPickForSync)
}