the-algorithm/follow-recommendations-service/server/src/main/scala/com/twitter/follow_recommendations/configapi/ParamsFactory.scala
twitter-team ef4c5eb65e Twitter Recommendation Algorithm
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.
2023-03-31 17:36:31 -05:00

30 lines
1.1 KiB
Scala

package com.twitter.follow_recommendations.configapi
import com.twitter.finagle.stats.StatsReceiver
import com.twitter.follow_recommendations.common.models.DisplayLocation
import com.twitter.product_mixer.core.model.marshalling.request.ClientContext
import com.twitter.servo.util.MemoizingStatsReceiver
import com.twitter.timelines.configapi.Config
import com.twitter.timelines.configapi.FeatureValue
import com.twitter.timelines.configapi.Params
import javax.inject.Inject
import javax.inject.Singleton
@Singleton
class ParamsFactory @Inject() (
config: Config,
requestContextFactory: RequestContextFactory,
statsReceiver: StatsReceiver) {
private val stats = new MemoizingStatsReceiver(statsReceiver.scope("configapi"))
def apply(followRecommendationServiceRequestContext: RequestContext): Params =
config(followRecommendationServiceRequestContext, stats)
def apply(
clientContext: ClientContext,
displayLocation: DisplayLocation,
featureOverrides: Map[String, FeatureValue]
): Params =
apply(requestContextFactory(clientContext, displayLocation, featureOverrides))
}