Ranking - GetStream/stream-swift GitHub Wiki
Custom Ranking
Setup a class PopularityActivity
final class PopularityActivity: Activity {
private enum CodingKeys: String, CodingKey {
case popularity
}
var popularity: Int
init(actor: String, verb: Verb, object: String, popularity: Int) {
super.init(actor: actor, verb: verb, object: object)
self.popularity = popularity
}
required init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
popularity = try container.decode(Int.self, forKey: .popularity)
try super.init(from: decoder)
}
override public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(popularity, forKey: .popularity)
try super.encode(to: encoder)
}
}
Add Activity.
let activity = PopularityActivity(actor: "User:2", verb: "pin", object: "Place:42", popularity: 5)
user1.add(activity) { result in /* ... */ }
Retrieving Activities
// Get activities sorted by the ranking method labelled "activity_popularity" (Ranked Feeds Enabled):
user1.get(ranking: "activity_popularity")