mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-01 08:48:46 +02:00
ef4c5eb65e
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.
54 lines
2.2 KiB
Scala
54 lines
2.2 KiB
Scala
package com.twitter.product_mixer.component_library.candidate_source.business_profiles
|
|
|
|
import com.twitter.product_mixer.component_library.model.cursor.NextCursorFeature
|
|
import com.twitter.product_mixer.component_library.model.cursor.PreviousCursorFeature
|
|
import com.twitter.product_mixer.core.feature.featuremap.FeatureMap
|
|
import com.twitter.product_mixer.core.feature.featuremap.FeatureMapBuilder
|
|
import com.twitter.product_mixer.core.functional_component.candidate_source.strato.StratoKeyViewFetcherWithSourceFeaturesSource
|
|
import com.twitter.product_mixer.core.model.common.identifier.CandidateSourceIdentifier
|
|
import com.twitter.strato.client.Fetcher
|
|
import com.twitter.strato.generated.client.consumer_identity.business_profiles.BusinessProfileTeamMembersOnUserClientColumn
|
|
import com.twitter.strato.generated.client.consumer_identity.business_profiles.BusinessProfileTeamMembersOnUserClientColumn.{
|
|
Value => TeamMembersSlice
|
|
}
|
|
import com.twitter.strato.generated.client.consumer_identity.business_profiles.BusinessProfileTeamMembersOnUserClientColumn.{
|
|
View => TeamMembersView
|
|
}
|
|
import javax.inject.Inject
|
|
import javax.inject.Singleton
|
|
|
|
@Singleton
|
|
class TeamMembersCandidateSource @Inject() (
|
|
column: BusinessProfileTeamMembersOnUserClientColumn)
|
|
extends StratoKeyViewFetcherWithSourceFeaturesSource[
|
|
Long,
|
|
TeamMembersView,
|
|
TeamMembersSlice,
|
|
Long
|
|
] {
|
|
override val identifier: CandidateSourceIdentifier = CandidateSourceIdentifier(
|
|
"BusinessProfileTeamMembers")
|
|
|
|
override val fetcher: Fetcher[Long, TeamMembersView, TeamMembersSlice] = column.fetcher
|
|
|
|
override def stratoResultTransformer(
|
|
stratoKey: Long,
|
|
stratoResult: TeamMembersSlice
|
|
): Seq[Long] =
|
|
stratoResult.members
|
|
|
|
override protected def extractFeaturesFromStratoResult(
|
|
stratoKey: Long,
|
|
stratoResult: TeamMembersSlice
|
|
): FeatureMap = {
|
|
val featureMapBuilder = FeatureMapBuilder()
|
|
stratoResult.previousCursor.foreach { cursor =>
|
|
featureMapBuilder.add(PreviousCursorFeature, cursor.toString)
|
|
}
|
|
stratoResult.nextCursor.foreach { cursor =>
|
|
featureMapBuilder.add(NextCursorFeature, cursor.toString)
|
|
}
|
|
featureMapBuilder.build()
|
|
}
|
|
}
|