mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-01 08:48:46 +02:00
ef4c5eb65e
Please note we have force-pushed a new initial commit in order to remove some publicly-available Twitter user information. Note that this process may be required in the future.
23 lines
924 B
Scala
23 lines
924 B
Scala
package com.twitter.timelineranker.common
|
|
|
|
import com.twitter.servo.util.FutureArrow
|
|
import com.twitter.timelineranker.core.CandidateEnvelope
|
|
import com.twitter.timelineranker.core.HydratedTweets
|
|
import com.twitter.timelines.visibility.VisibilityEnforcer
|
|
import com.twitter.util.Future
|
|
|
|
/**
|
|
* Transform which uses an instance of a VisiblityEnforcer to filter down HydratedTweets
|
|
*/
|
|
class VisibilityEnforcingTransform(visibilityEnforcer: VisibilityEnforcer)
|
|
extends FutureArrow[CandidateEnvelope, CandidateEnvelope] {
|
|
override def apply(envelope: CandidateEnvelope): Future[CandidateEnvelope] = {
|
|
visibilityEnforcer.apply(Some(envelope.query.userId), envelope.hydratedTweets.outerTweets).map {
|
|
visibleTweets =>
|
|
val innerTweets = envelope.hydratedTweets.innerTweets
|
|
envelope.copy(
|
|
hydratedTweets = HydratedTweets(outerTweets = visibleTweets, innerTweets = innerTweets))
|
|
}
|
|
}
|
|
}
|