the-algorithm/home-mixer/server/src/main/scala/com/twitter/home_mixer/module/BlenderClientModule.scala

42 lines
1.4 KiB
Scala

package com.twitter.home_mixer.module
import com.google.inject.Provides
import com.twitter.conversions.DurationOps._
import com.twitter.finagle.mtls.authentication.ServiceIdentifier
import com.twitter.finagle.stats.StatsReceiver
import com.twitter.finagle.thrift.ClientId
import com.twitter.inject.TwitterModule
import com.twitter.product_mixer.shared_library.thrift_client.FinagleThriftClientBuilder
import com.twitter.product_mixer.shared_library.thrift_client.NonIdempotent
import com.twitter.search.blender.thriftscala.BlenderService
import javax.inject.Singleton
object BlenderClientModule extends TwitterModule {
@Singleton
@Provides
def providesBlenderClient(
serviceIdentifier: ServiceIdentifier,
statsReceiver: StatsReceiver
): BlenderService.MethodPerEndpoint = {
val clientId = serviceIdentifier.environment.toLowerCase match {
case "prod" => ClientId("")
case _ => ClientId("")
}
FinagleThriftClientBuilder.buildFinagleMethodPerEndpoint[
BlenderService.ServicePerEndpoint,
BlenderService.MethodPerEndpoint
](
serviceIdentifier = serviceIdentifier,
clientId = clientId,
dest = "/s/blender-universal/blender",
label = "blender",
statsReceiver = statsReceiver,
idempotency = NonIdempotent,
timeoutPerRequest = 1000.milliseconds,
timeoutTotal = 1000.milliseconds,
)
}
}