in tweetypie/server/src/main/scala/com/twitter/tweetypie/federated/columns/CreateTweetColumn.scala [448:545]
def toCreateTweetErr(
errState: thrift.TweetCreateState,
bounce: Option[BouncerBounce],
failureReason: Option[String]
): Err = errState match {
case TextCannotBeBlank =>
TweetCannotBeBlankErr
case TextTooLong =>
TweetTextTooLongErr
case Duplicate =>
DuplicateStatusErr
case MalwareUrl =>
MalwareTweetErr
case UserDeactivated | UserSuspended =>
// should not occur since this condition is caught by access policy filters
CurrentUserSuspendedErr
case RateLimitExceeded =>
RateLimitExceededErr
case UrlSpam =>
TweetUrlSpamErr
case Spam | UserReadonly =>
TweetSpammerErr
case SpamCaptcha =>
CaptchaChallengeErr
case SafetyRateLimitExceeded =>
SafetyRateLimitExceededErr
case Bounce if bounce.isDefined =>
accessDeniedByBouncerErr(bounce.get)
case MentionLimitExceeded =>
MentionLimitExceededErr
case UrlLimitExceeded =>
UrlLimitExceededErr
case HashtagLimitExceeded =>
HashtagLimitExceededErr
case CashtagLimitExceeded =>
CashtagLimitExceededErr
case HashtagLengthLimitExceeded =>
HashtagLengthLimitExceededErr
case TooManyAttachmentTypes =>
TooManyAttachmentTypesErr
case InvalidUrl =>
InvalidUrlErr
case DisabledByIpiPolicy =>
failureReason
.map(tweetEngagementLimitedErr)
.getOrElse(GenericTweetCreateErr)
case InvalidAdditionalField =>
failureReason
.map(invalidAdditionalFieldWithReasonErr)
.getOrElse(InvalidAdditionalFieldErr)
// InvalidImage has been deprecated by tweetypie. Use InvalidMedia instead.
case InvalidMedia | InvalidImage | MediaNotFound =>
invalidMediaErr(failureReason)
case InReplyToTweetNotFound =>
InReplyToTweetNotFoundErr
case InvalidAttachmentUrl =>
InvalidAttachmentUrlErr
case ConversationControlNotAllowed =>
ConversationControlNotAuthorizedErr
case InvalidConversationControl =>
ConversationControlInvalidErr
case ReplyTweetNotAllowed =>
ConversationControlReplyRestricted
case ExclusiveTweetEngagementNotAllowed =>
ExclusiveTweetEngagementNotAllowedErr
case CommunityReplyTweetNotAllowed =>
CommunityReplyTweetNotAllowedErr
case CommunityUserNotAuthorized =>
CommunityUserNotAuthorizedErr
case CommunityNotFound =>
CommunityNotFoundErr
case SuperFollowsInvalidParams =>
SuperFollowInvalidParamsErr
case SuperFollowsCreateNotAuthorized =>
SuperFollowCreateNotAuthorizedErr
case CommunityProtectedUserCannotTweet =>
CommunityProtectedUserCannotTweetErr
case TrustedFriendsInvalidParams =>
TrustedFriendsInvalidParamsErr
case TrustedFriendsEngagementNotAllowed =>
TrustedFriendsEngagementNotAllowedErr
case TrustedFriendsCreateNotAllowed =>
TrustedFriendsCreateNotAllowedErr
case TrustedFriendsQuoteTweetNotAllowed =>
TrustedFriendsQuoteTweetNotAllowedErr
case CollabTweetInvalidParams =>
CollabTweetInvalidParamsErr
case StaleTweetEngagementNotAllowed =>
StaleTweetEngagementNotAllowedErr
case StaleTweetQuoteTweetNotAllowed =>
StaleTweetQuoteTweetNotAllowedErr
case FieldEditNotAllowed =>
FieldEditNotAllowedErr
case NotEligibleForEdit =>
NotEligibleForEditErr
case _ =>
GenericTweetCreateErr
}