Swiftgram/TelegramCore/SearchGroupMembers.swift
2017-12-01 15:22:22 +04:00

33 lines
1.1 KiB
Swift

import Foundation
#if os(macOS)
import PostboxMac
import SwiftSignalKitMac
#else
import Postbox
import SwiftSignalKit
#endif
public func searchGroupMembers(postbox: Postbox, network: Network, peerId: PeerId, query: String) -> Signal<[Peer], NoError> {
if peerId.namespace == Namespaces.Peer.CloudChannel && !query.isEmpty {
return channelMembers(postbox: postbox, network: network, peerId: peerId, filter: .search(query))
|> map { participants -> [Peer] in
return participants.map { $0.peer }
}
} else {
return peerParticipants(postbox: postbox, id: peerId)
|> map { peers -> [Peer] in
let normalizedQuery = query.lowercased()
return peers.filter { peer in
if peer.indexName.matchesByTokens(normalizedQuery) {
return true
}
if let addressName = peer.addressName, addressName.lowercased().hasPrefix(normalizedQuery) {
return true
}
return false
}
}
}
}