the-algorithm/tweetypie/common/src/scala/com/twitter/tweetypie/thriftscala/TweetServiceProxy.scala

80 lines
3.0 KiB
Scala

package com.twitter.tweetypie.thriftscala
import com.twitter.util.Future
/**
* A trait for TweetService implementations that wrap an underlying
* TweetService and need to modify only some of the methods.
*/
trait TweetServiceProxy extends TweetService.MethodPerEndpoint {
protected def underlying: TweetService.MethodPerEndpoint
/**
* Default implementation simply passes through the Future but logic can be added to wrap each
* invocation to the underlying TweetService
*/
protected def wrap[A](f: => Future[A]): Future[A] =
f
override def getTweets(request: GetTweetsRequest): Future[Seq[GetTweetResult]] =
wrap(underlying.getTweets(request))
override def getTweetFields(request: GetTweetFieldsRequest): Future[Seq[GetTweetFieldsResult]] =
wrap(underlying.getTweetFields(request))
override def getTweetCounts(request: GetTweetCountsRequest): Future[Seq[GetTweetCountsResult]] =
wrap(underlying.getTweetCounts(request))
override def setAdditionalFields(request: SetAdditionalFieldsRequest): Future[Unit] =
wrap(underlying.setAdditionalFields(request))
override def deleteAdditionalFields(request: DeleteAdditionalFieldsRequest): Future[Unit] =
wrap(underlying.deleteAdditionalFields(request))
override def postTweet(request: PostTweetRequest): Future[PostTweetResult] =
wrap(underlying.postTweet(request))
override def postRetweet(request: RetweetRequest): Future[PostTweetResult] =
wrap(underlying.postRetweet(request))
override def unretweet(request: UnretweetRequest): Future[UnretweetResult] =
wrap(underlying.unretweet(request))
override def getDeletedTweets(
request: GetDeletedTweetsRequest
): Future[Seq[GetDeletedTweetResult]] =
wrap(underlying.getDeletedTweets(request))
override def deleteTweets(request: DeleteTweetsRequest): Future[Seq[DeleteTweetResult]] =
wrap(underlying.deleteTweets(request))
override def updatePossiblySensitiveTweet(
request: UpdatePossiblySensitiveTweetRequest
): Future[Unit] =
wrap(underlying.updatePossiblySensitiveTweet(request))
override def undeleteTweet(request: UndeleteTweetRequest): Future[UndeleteTweetResponse] =
wrap(underlying.undeleteTweet(request))
override def eraseUserTweets(request: EraseUserTweetsRequest): Future[Unit] =
wrap(underlying.eraseUserTweets(request))
override def incrTweetFavCount(request: IncrTweetFavCountRequest): Future[Unit] =
wrap(underlying.incrTweetFavCount(request))
override def deleteLocationData(request: DeleteLocationDataRequest): Future[Unit] =
wrap(underlying.deleteLocationData(request))
override def scrubGeo(request: GeoScrub): Future[Unit] =
wrap(underlying.scrubGeo(request))
override def takedown(request: TakedownRequest): Future[Unit] =
wrap(underlying.takedown(request))
override def flush(request: FlushRequest): Future[Unit] =
wrap(underlying.flush(request))
override def incrTweetBookmarkCount(request: IncrTweetBookmarkCountRequest): Future[Unit] =
wrap(underlying.incrTweetBookmarkCount(request))
}