def toCreateTweetErr()

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
  }