35 lines
1.5 KiB
Scala
35 lines
1.5 KiB
Scala
package com.twitter.home_mixer.candidate_pipeline
|
|
|
|
import com.twitter.home_mixer.functional_component.feature_hydrator.NamesFeatureHydrator
|
|
import com.twitter.home_mixer.functional_component.feature_hydrator.TweetypieFeatureHydrator
|
|
import com.twitter.home_mixer.functional_component.filter.InvalidSubscriptionTweetFilter
|
|
import com.twitter.product_mixer.component_library.candidate_source.tweetconvosvc.ConversationServiceCandidateSource
|
|
import com.twitter.product_mixer.component_library.model.candidate.TweetCandidate
|
|
import com.twitter.product_mixer.core.functional_component.decorator.CandidateDecorator
|
|
import com.twitter.product_mixer.core.functional_component.gate.BaseGate
|
|
import com.twitter.product_mixer.core.pipeline.PipelineQuery
|
|
import javax.inject.Inject
|
|
import javax.inject.Singleton
|
|
|
|
@Singleton
|
|
class ConversationServiceCandidatePipelineConfigBuilder[Query <: PipelineQuery] @Inject() (
|
|
conversationServiceCandidateSource: ConversationServiceCandidateSource,
|
|
tweetypieFeatureHydrator: TweetypieFeatureHydrator,
|
|
invalidSubscriptionTweetFilter: InvalidSubscriptionTweetFilter,
|
|
namesFeatureHydrator: NamesFeatureHydrator) {
|
|
|
|
def build(
|
|
gates: Seq[BaseGate[Query]] = Seq.empty,
|
|
decorator: Option[CandidateDecorator[Query, TweetCandidate]] = None
|
|
): ConversationServiceCandidatePipelineConfig[Query] = {
|
|
new ConversationServiceCandidatePipelineConfig(
|
|
conversationServiceCandidateSource,
|
|
tweetypieFeatureHydrator,
|
|
namesFeatureHydrator,
|
|
invalidSubscriptionTweetFilter,
|
|
gates,
|
|
decorator
|
|
)
|
|
}
|
|
}
|