the-algorithm/recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/RecosInjectorDecider.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

34 lines
1.2 KiB
Scala

package com.twitter.recosinjector.decider
import com.twitter.decider.{Decider, DeciderFactory, RandomRecipient, Recipient}
case class RecosInjectorDecider(isProd: Boolean, dataCenter: String) {
lazy val decider: Decider = DeciderFactory(
Some("config/decider.yml"),
Some(getOverlayPath(isProd, dataCenter))
)()
private def getOverlayPath(isProd: Boolean, dataCenter: String): String = {
if (isProd) {
s"/usr/local/config/overlays/recos-injector/recos-injector/prod/$dataCenter/decider_overlay.yml"
} else {
s"/usr/local/config/overlays/recos-injector/recos-injector/staging/$dataCenter/decider_overlay.yml"
}
}
def getDecider: Decider = decider
def isAvailable(feature: String, recipient: Option[Recipient]): Boolean = {
decider.isAvailable(feature, recipient)
}
def isAvailable(feature: String): Boolean = isAvailable(feature, Some(RandomRecipient))
}
object RecosInjectorDeciderConstants {
val TweetEventTransformerUserTweetEntityEdgesDecider =
"tweet_event_transformer_user_tweet_entity_edges"
val EnableEmitTweetEdgeFromReply = "enable_emit_tweet_edge_from_reply"
val EnableUnfavoriteEdge = "enable_unfavorite_edge"
}