mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-13 22:58:54 +02:00
![twitter-team](/assets/img/avatar_default.png)
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.
34 lines
1.3 KiB
Scala
34 lines
1.3 KiB
Scala
package com.twitter.product_mixer.component_library.premarshaller.urt.builder
|
|
|
|
import com.twitter.product_mixer.component_library.model.cursor.UrtPassThroughCursor
|
|
import com.twitter.product_mixer.component_library.premarshaller.cursor.UrtCursorSerializer
|
|
import com.twitter.product_mixer.core.feature.Feature
|
|
import com.twitter.product_mixer.core.model.marshalling.response.urt.TimelineEntry
|
|
import com.twitter.product_mixer.core.model.marshalling.response.urt.operation.CursorType
|
|
import com.twitter.product_mixer.core.pipeline.HasPipelineCursor
|
|
import com.twitter.product_mixer.core.pipeline.PipelineQuery
|
|
|
|
case class PassThroughCursorBuilder[
|
|
-Query <: PipelineQuery with HasPipelineCursor[UrtPassThroughCursor]
|
|
](
|
|
cursorFeature: Feature[Query, String],
|
|
override val cursorType: CursorType)
|
|
extends UrtCursorBuilder[Query] {
|
|
|
|
override val includeOperation: IncludeInstruction[Query] = { (query, _) =>
|
|
query.features.exists(_.getOrElse(cursorFeature, "").nonEmpty)
|
|
}
|
|
|
|
override def cursorValue(
|
|
query: Query,
|
|
entries: Seq[TimelineEntry]
|
|
): String =
|
|
UrtCursorSerializer.serializeCursor(
|
|
UrtPassThroughCursor(
|
|
cursorSortIndex(query, entries),
|
|
query.features.map(_.get(cursorFeature)).getOrElse(""),
|
|
cursorType = Some(cursorType)
|
|
)
|
|
)
|
|
}
|