diff --git a/README.md b/README.md index 4237d37..474d599 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Twitter API v2 available endpoints - [Authentication](#authentication) - [Auto Refresh Token](#auto-refresh-token) - [Rate limits retry mechanism](#rate-limits-retry-mechanism) +- [Get all fields](#get-all-fields) - [Documentation for API Endpoints](#documentation-for-api-endpoints) - [Documentation for Models](#documentation-for-models) @@ -60,7 +61,7 @@ Add this dependency to your project's POM: com.twitter twitter-api-java-sdk - 2.0.0 + 2.0.1 ``` @@ -75,7 +76,7 @@ mavenLocal() // Needed if the 'twitter-api-java-sdk' jar has been publishe } dependencies { -implementation "com.twitter:twitter-api-java-sdk:2.0.0" +implementation "com.twitter:twitter-api-java-sdk:2.0.1" } ``` @@ -89,7 +90,7 @@ mvn clean package Then manually install the following JARs: -* `target/twitter-api-java-sdk-2.0.0.jar` +* `target/twitter-api-java-sdk-2.0.1.jar` * `target/lib/*.jar` ## Twitter Credentials @@ -120,7 +121,8 @@ You can use the following objects in order to set the credentials: ```java -TwitterApi apiInstance = new TwitterApi(new TwitterCredentialsOAuth2(System.getenv("TWITTER_OAUTH2_CLIENT_ID"), +TwitterApi apiInstance = new TwitterApi(new TwitterCredentialsOAuth2( + System.getenv("TWITTER_OAUTH2_CLIENT_ID"), System.getenv("TWITTER_OAUTH2_CLIENT_SECRET"), System.getenv("TWITTER_OAUTH2_ACCESS_TOKEN"), System.getenv("TWITTER_OAUTH2_REFRESH_TOKEN"))); @@ -152,7 +154,8 @@ public class TwitterApiExample { * Check the 'security' tag of the required APIs in https://api.twitter.com/2/openapi.json in order * to use the right credential object. */ - TwitterApi apiInstance = new TwitterApi(new TwitterCredentialsOAuth2(System.getenv("TWITTER_OAUTH2_CLIENT_ID"), + TwitterApi apiInstance = new TwitterApi(new TwitterCredentialsOAuth2( + System.getenv("TWITTER_OAUTH2_CLIENT_ID"), System.getenv("TWITTER_OAUTH2_CLIENT_SECRET"), System.getenv("TWITTER_OAUTH2_ACCESS_TOKEN"), System.getenv("TWITTER_OAUTH2_REFRESH_TOKEN"))); @@ -237,6 +240,30 @@ In order to use the retry mechanism call the APIs with an additional parameter ` Read more about Filtered stream and [rate limits](https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/integrate/handling-disconnections) +## Get all fields + + +The Twitter API v2 endpoints are equipped with a set of parameters called [fields](https://developer.twitter.com/en/docs/twitter-api/fields), which allows you to select just the data that you want from each of the objects in your endpoint response. + +If you wish to choose all the fields for a parameter, set only the value "All" instead of setting all the wanted fields names. +Using "All" with other values is not a valid request. +The value "All" is not a case-sensitive. + +```java + Set tweetFields = new HashSet<>(); + tweetFields.add("author_id"); + tweetFields.add("id"); + tweetFields.add("created_at"); + + Set userFields = new HashSet<>(); + userFields.add("ALL"); + + Set expansions = new HashSet<>(); + expansions.add("ALL"); + +``` + + ## Documentation for API Endpoints All URIs are relative to *https://api.twitter.com* diff --git a/docs/MentionEntity.md b/docs/MentionEntity.md index 36afc47..cf45410 100644 --- a/docs/MentionEntity.md +++ b/docs/MentionEntity.md @@ -9,7 +9,7 @@ |------------ | ------------- | ------------- | -------------| |**end** | **Integer** | Index (zero-based) at which position this entity ends. The index is exclusive. | | |**start** | **Integer** | Index (zero-based) at which position this entity starts. The index is inclusive. | | -|**id** | **String** | Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers. | | +|**id** | **String** | Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers. | [optional] | |**username** | **String** | The Twitter handle (screen name) of this user. | | diff --git a/docs/MentionFields.md b/docs/MentionFields.md index ccc5db7..4b6a55f 100644 --- a/docs/MentionFields.md +++ b/docs/MentionFields.md @@ -8,7 +8,7 @@ Represent the portion of text recognized as a User mention, and its start and en | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**id** | **String** | Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers. | | +|**id** | **String** | Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers. | [optional] | |**username** | **String** | The Twitter handle (screen name) of this user. | | diff --git a/examples/pom.xml b/examples/pom.xml index a779e4b..6f6f892 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -16,7 +16,7 @@ com.twitter twitter-api-java-sdk - 2.0.0 + 2.0.1 compile diff --git a/pom.xml b/pom.xml index 3702e9b..0a61691 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ twitter-api-java-sdk jar twitter-api-java-sdk - 2.0.0 + 2.0.1 https://github.com/twitterdev/twitter-api-java-sdk Twitter API v2 available endpoints diff --git a/src/main/java/com/twitter/clientlib/ApiClient.java b/src/main/java/com/twitter/clientlib/ApiClient.java index f682612..f6a35ca 100644 --- a/src/main/java/com/twitter/clientlib/ApiClient.java +++ b/src/main/java/com/twitter/clientlib/ApiClient.java @@ -225,7 +225,7 @@ private void init() { json = new JSON(); // Set default User-Agent. - setUserAgent("twitter-api-java-sdk/2.0.0"); + setUserAgent("twitter-api-java-sdk/2.0.1"); authentications = new HashMap(); } diff --git a/src/main/java/com/twitter/clientlib/JSON.java b/src/main/java/com/twitter/clientlib/JSON.java index e101fcf..9602c81 100644 --- a/src/main/java/com/twitter/clientlib/JSON.java +++ b/src/main/java/com/twitter/clientlib/JSON.java @@ -678,218 +678,218 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri } { - gson = createGson() - .registerTypeAdapter(Date.class, dateTypeAdapter) - .registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter) - .registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter) - .registerTypeAdapter(LocalDate.class, localDateTypeAdapter) - .registerTypeAdapter(byte[].class, byteArrayAdapter) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.AddOrDeleteRulesRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.AddOrDeleteRulesResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.AddRulesRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.AnimatedGif.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.AnimatedGifAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.BlockUserMutationResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.BlockUserMutationResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.BlockUserRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.BookmarkAddRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.BookmarkMutationResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.BookmarkMutationResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.CashtagEntity.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.CashtagFields.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ClientDisconnectedProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ClientForbiddenProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ClientForbiddenProblemAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ComplianceJob.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ConflictProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ConnectionExceptionProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ConnectionExceptionProblemAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ContextAnnotation.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ContextAnnotationDomainFields.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ContextAnnotationEntityFields.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.CreateComplianceJobRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.CreateComplianceJobResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.DeleteRulesRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.DeleteRulesRequestDelete.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.DisallowedResourceProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.DisallowedResourceProblemAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.DuplicateRuleProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.DuplicateRuleProblemAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.EntityIndicesInclusiveExclusive.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.EntityIndicesInclusiveInclusive.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Error.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Expansions.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.FieldUnauthorizedProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.FieldUnauthorizedProblemAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.FilteredStreamingTweetResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.FilteredStreamingTweetResponseMatchingRules.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.FullTextEntities.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.FullTextEntitiesAnnotations.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.FullTextEntitiesAnnotationsAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.GenericProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Geo.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ComplianceJobsIdResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ComplianceJobsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ComplianceJobsResponseMeta.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ListsIdFollowersResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ListsIdFollowersResponseMeta.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ListsIdMembersResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ListsIdResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ListsIdTweetsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2SpacesByCreatorIdsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2SpacesIdBuyersResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2SpacesIdResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2SpacesIdTweetsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2SpacesResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2SpacesSearchResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsCountsAllResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsCountsAllResponseMeta.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsCountsRecentResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsIdLikingUsersResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsIdQuoteTweetsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsIdQuoteTweetsResponseMeta.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsIdResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsIdRetweetedByResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsSampleStreamResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsSearchAllResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsSearchAllResponseMeta.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsSearchRecentResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsSearchStreamResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersByResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersByUsernameUsernameResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdBlockingResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdBookmarksResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdFollowedListsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdFollowersResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdFollowingResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdLikedTweetsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdListMembershipsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdMentionsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdMentionsResponseMeta.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdMutingResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdOwnedListsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdPinnedListsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdTimelinesReverseChronologicalResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdTweetsResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersMeResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.HashtagEntity.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.HashtagFields.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.InvalidRequestProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.InvalidRequestProblemAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.InvalidRequestProblemAllOfErrors.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.InvalidRuleProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListAddUserRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListCreateRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListCreateResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListCreateResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListDeleteResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListDeleteResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListFollowedRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListFollowedResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListFollowedResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListMutateResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListMutateResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListPinnedRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListPinnedResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListPinnedResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListUnpinResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListUpdateRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListUpdateResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ListUpdateResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.MentionEntity.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.MentionFields.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ModelList.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.MuteUserMutationResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.MuteUserMutationResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.MuteUserRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.NonCompliantRulesProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.OperationalDisconnectProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.OperationalDisconnectProblemAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Photo.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.PhotoAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Place.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Point.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Poll.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.PollOption.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ProblemErrors.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ProblemOrError.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ReportUsersRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ReportUsersResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ReportUsersResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ResourceNotFoundProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ResourceNotFoundProblemAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ResourceUnauthorizedProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ResourceUnauthorizedProblemAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ResourceUnavailableProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.ResourceUnavailableProblemAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Rule.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.RuleNoId.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.RulesCapProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.RulesLookupResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.RulesRequestSummary.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.RulesRequestSummaryOneOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.RulesRequestSummaryOneOf1.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.RulesResponseMetadata.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.SearchCount.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Space.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.SpaceTopics.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.StreamingTweetResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Topic.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Tweet.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetAttachments.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateRequestGeo.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateRequestMedia.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateRequestPoll.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateRequestReply.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetDeleteResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetDeleteResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetGeo.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetHideRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetHideResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetHideResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetNonPublicMetrics.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetOrganicMetrics.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetPromotedMetrics.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetPublicMetrics.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetReferencedTweets.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetWithheld.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UnsupportedAuthenticationProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UrlEntity.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UrlFields.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UrlImage.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsageCapExceededProblem.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsageCapExceededProblemAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.User.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UserEntities.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UserEntitiesUrl.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UserPublicMetrics.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UserWithheld.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersFollowingCreateRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersFollowingCreateResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersFollowingCreateResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersFollowingDeleteResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersLikesCreateRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersLikesCreateResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersLikesCreateResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersLikesDeleteResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersRetweetsCreateRequest.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersRetweetsCreateResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersRetweetsCreateResponseData.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersRetweetsDeleteResponse.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Variant.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.Video.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.VideoAllOf.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.VideoAllOfNonPublicMetrics.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.VideoAllOfOrganicMetrics.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.VideoAllOfPromotedMetrics.CustomTypeAdapterFactory()) - .registerTypeAdapterFactory(new com.twitter.clientlib.model.VideoAllOfPublicMetrics.CustomTypeAdapterFactory()) - .create(); + GsonBuilder gsonBuilder = createGson(); + gsonBuilder.registerTypeAdapter(Date.class, dateTypeAdapter); + gsonBuilder.registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter); + gsonBuilder.registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter); + gsonBuilder.registerTypeAdapter(LocalDate.class, localDateTypeAdapter); + gsonBuilder.registerTypeAdapter(byte[].class, byteArrayAdapter); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.AddOrDeleteRulesRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.AddOrDeleteRulesResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.AddRulesRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.AnimatedGif.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.AnimatedGifAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.BlockUserMutationResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.BlockUserMutationResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.BlockUserRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.BookmarkAddRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.BookmarkMutationResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.BookmarkMutationResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.CashtagEntity.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.CashtagFields.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ClientDisconnectedProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ClientForbiddenProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ClientForbiddenProblemAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ComplianceJob.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ConflictProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ConnectionExceptionProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ConnectionExceptionProblemAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ContextAnnotation.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ContextAnnotationDomainFields.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ContextAnnotationEntityFields.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.CreateComplianceJobRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.CreateComplianceJobResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.DeleteRulesRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.DeleteRulesRequestDelete.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.DisallowedResourceProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.DisallowedResourceProblemAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.DuplicateRuleProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.DuplicateRuleProblemAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.EntityIndicesInclusiveExclusive.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.EntityIndicesInclusiveInclusive.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Error.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Expansions.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.FieldUnauthorizedProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.FieldUnauthorizedProblemAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.FilteredStreamingTweetResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.FilteredStreamingTweetResponseMatchingRules.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.FullTextEntities.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.FullTextEntitiesAnnotations.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.FullTextEntitiesAnnotationsAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.GenericProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Geo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ComplianceJobsIdResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ComplianceJobsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ComplianceJobsResponseMeta.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ListsIdFollowersResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ListsIdFollowersResponseMeta.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ListsIdMembersResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ListsIdResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2ListsIdTweetsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2SpacesByCreatorIdsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2SpacesIdBuyersResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2SpacesIdResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2SpacesIdTweetsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2SpacesResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2SpacesSearchResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsCountsAllResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsCountsAllResponseMeta.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsCountsRecentResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsIdLikingUsersResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsIdQuoteTweetsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsIdQuoteTweetsResponseMeta.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsIdResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsIdRetweetedByResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsSampleStreamResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsSearchAllResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsSearchAllResponseMeta.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsSearchRecentResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2TweetsSearchStreamResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersByResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersByUsernameUsernameResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdBlockingResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdBookmarksResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdFollowedListsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdFollowersResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdFollowingResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdLikedTweetsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdListMembershipsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdMentionsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdMentionsResponseMeta.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdMutingResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdOwnedListsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdPinnedListsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdTimelinesReverseChronologicalResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersIdTweetsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersMeResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Get2UsersResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.HashtagEntity.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.HashtagFields.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.InvalidRequestProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.InvalidRequestProblemAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.InvalidRequestProblemAllOfErrors.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.InvalidRuleProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListAddUserRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListCreateRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListCreateResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListCreateResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListDeleteResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListDeleteResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListFollowedRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListFollowedResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListFollowedResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListMutateResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListMutateResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListPinnedRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListPinnedResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListPinnedResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListUnpinResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListUpdateRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListUpdateResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ListUpdateResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.MentionEntity.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.MentionFields.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ModelList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.MuteUserMutationResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.MuteUserMutationResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.MuteUserRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.NonCompliantRulesProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.OperationalDisconnectProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.OperationalDisconnectProblemAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Photo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.PhotoAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Place.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Point.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Poll.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.PollOption.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ProblemErrors.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ProblemOrError.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ReportUsersRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ReportUsersResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ReportUsersResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ResourceNotFoundProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ResourceNotFoundProblemAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ResourceUnauthorizedProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ResourceUnauthorizedProblemAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ResourceUnavailableProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.ResourceUnavailableProblemAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Rule.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.RuleNoId.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.RulesCapProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.RulesLookupResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.RulesRequestSummary.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.RulesRequestSummaryOneOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.RulesRequestSummaryOneOf1.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.RulesResponseMetadata.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.SearchCount.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Space.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.SpaceTopics.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.StreamingTweetResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Topic.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Tweet.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetAttachments.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateRequestGeo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateRequestMedia.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateRequestPoll.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateRequestReply.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetCreateResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetDeleteResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetDeleteResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetGeo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetHideRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetHideResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetHideResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetNonPublicMetrics.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetOrganicMetrics.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetPromotedMetrics.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetPublicMetrics.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetReferencedTweets.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.TweetWithheld.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UnsupportedAuthenticationProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UrlEntity.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UrlFields.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UrlImage.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsageCapExceededProblem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsageCapExceededProblemAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.User.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UserEntities.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UserEntitiesUrl.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UserPublicMetrics.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UserWithheld.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersFollowingCreateRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersFollowingCreateResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersFollowingCreateResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersFollowingDeleteResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersLikesCreateRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersLikesCreateResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersLikesCreateResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersLikesDeleteResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersRetweetsCreateRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersRetweetsCreateResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersRetweetsCreateResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.UsersRetweetsDeleteResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Variant.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.Video.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.VideoAllOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.VideoAllOfNonPublicMetrics.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.VideoAllOfOrganicMetrics.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.VideoAllOfPromotedMetrics.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.twitter.clientlib.model.VideoAllOfPublicMetrics.CustomTypeAdapterFactory()); + gson = gsonBuilder.create(); } /** diff --git a/src/main/java/com/twitter/clientlib/api/BookmarksApi.java b/src/main/java/com/twitter/clientlib/api/BookmarksApi.java index 25d708a..372c439 100644 --- a/src/main/java/com/twitter/clientlib/api/BookmarksApi.java +++ b/src/main/java/com/twitter/clientlib/api/BookmarksApi.java @@ -36,6 +36,7 @@ import com.google.gson.reflect.TypeToken; import java.io.IOException; +import java.util.HashSet; import com.twitter.clientlib.model.BookmarkAddRequest; @@ -167,6 +168,13 @@ public class APIgetUsersIdBookmarksRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIgetUsersIdBookmarksRequest(String id) { this.id = id; @@ -198,7 +206,11 @@ public APIgetUsersIdBookmarksRequest paginationToken(String paginationToken) { * @return APIgetUsersIdBookmarksRequest */ public APIgetUsersIdBookmarksRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -208,7 +220,11 @@ public APIgetUsersIdBookmarksRequest tweetFields(Set tweetFields) { * @return APIgetUsersIdBookmarksRequest */ public APIgetUsersIdBookmarksRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -218,7 +234,11 @@ public APIgetUsersIdBookmarksRequest expansions(Set expansions) { * @return APIgetUsersIdBookmarksRequest */ public APIgetUsersIdBookmarksRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -228,7 +248,11 @@ public APIgetUsersIdBookmarksRequest mediaFields(Set mediaFields) { * @return APIgetUsersIdBookmarksRequest */ public APIgetUsersIdBookmarksRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -238,7 +262,11 @@ public APIgetUsersIdBookmarksRequest pollFields(Set pollFields) { * @return APIgetUsersIdBookmarksRequest */ public APIgetUsersIdBookmarksRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -248,7 +276,11 @@ public APIgetUsersIdBookmarksRequest userFields(Set userFields) { * @return APIgetUsersIdBookmarksRequest */ public APIgetUsersIdBookmarksRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -422,6 +454,7 @@ private okhttp3.Call postUsersIdBookmarksAsync(BookmarkAddRequest bookmarkAddReq public class APIpostUsersIdBookmarksRequest { private final BookmarkAddRequest bookmarkAddRequest; private final String id; + private APIpostUsersIdBookmarksRequest(BookmarkAddRequest bookmarkAddRequest, String id) { this.bookmarkAddRequest = bookmarkAddRequest; @@ -600,6 +633,7 @@ private okhttp3.Call usersIdBookmarksDeleteAsync(String id, String tweetId, fina public class APIusersIdBookmarksDeleteRequest { private final String id; private final String tweetId; + private APIusersIdBookmarksDeleteRequest(String id, String tweetId) { this.id = id; diff --git a/src/main/java/com/twitter/clientlib/api/ComplianceApi.java b/src/main/java/com/twitter/clientlib/api/ComplianceApi.java index cba9c3a..53dbd1b 100644 --- a/src/main/java/com/twitter/clientlib/api/ComplianceApi.java +++ b/src/main/java/com/twitter/clientlib/api/ComplianceApi.java @@ -36,6 +36,7 @@ import com.google.gson.reflect.TypeToken; import java.io.IOException; +import java.util.HashSet; import com.twitter.clientlib.model.CreateComplianceJobRequest; @@ -127,6 +128,7 @@ private okhttp3.Call createBatchComplianceJobAsync(CreateComplianceJobRequest cr public class APIcreateBatchComplianceJobRequest { private final CreateComplianceJobRequest createComplianceJobRequest; + private APIcreateBatchComplianceJobRequest(CreateComplianceJobRequest createComplianceJobRequest) { this.createComplianceJobRequest = createComplianceJobRequest; @@ -301,6 +303,8 @@ private okhttp3.Call getBatchComplianceJobAsync(String id, Set complianc public class APIgetBatchComplianceJobRequest { private final String id; private Set complianceJobFields; + private final Set complianceJobFieldsAll = new HashSet<>(Arrays.asList("created_at", "download_expires_at", "download_url", "id", "name", "resumable", "status", "type", "upload_expires_at", "upload_url")); + private APIgetBatchComplianceJobRequest(String id) { this.id = id; @@ -312,7 +316,11 @@ private APIgetBatchComplianceJobRequest(String id) { * @return APIgetBatchComplianceJobRequest */ public APIgetBatchComplianceJobRequest complianceJobFields(Set complianceJobFields) { - this.complianceJobFields = complianceJobFields; + if(complianceJobFields != null && complianceJobFields.size() == 1 && complianceJobFields.iterator().next().equalsIgnoreCase("ALL")) { + this.complianceJobFields = this.complianceJobFieldsAll; + } else { + this.complianceJobFields = complianceJobFields; + } return this; } @@ -493,6 +501,8 @@ public class APIlistBatchComplianceJobsRequest { private final String type; private String status; private Set complianceJobFields; + private final Set complianceJobFieldsAll = new HashSet<>(Arrays.asList("created_at", "download_expires_at", "download_url", "id", "name", "resumable", "status", "type", "upload_expires_at", "upload_url")); + private APIlistBatchComplianceJobsRequest(String type) { this.type = type; @@ -504,7 +514,7 @@ private APIlistBatchComplianceJobsRequest(String type) { * @return APIlistBatchComplianceJobsRequest */ public APIlistBatchComplianceJobsRequest status(String status) { - this.status = status; + return this; } @@ -514,7 +524,11 @@ public APIlistBatchComplianceJobsRequest status(String status) { * @return APIlistBatchComplianceJobsRequest */ public APIlistBatchComplianceJobsRequest complianceJobFields(Set complianceJobFields) { - this.complianceJobFields = complianceJobFields; + if(complianceJobFields != null && complianceJobFields.size() == 1 && complianceJobFields.iterator().next().equalsIgnoreCase("ALL")) { + this.complianceJobFields = this.complianceJobFieldsAll; + } else { + this.complianceJobFields = complianceJobFields; + } return this; } diff --git a/src/main/java/com/twitter/clientlib/api/GeneralApi.java b/src/main/java/com/twitter/clientlib/api/GeneralApi.java index 5514fe2..4e98f9a 100644 --- a/src/main/java/com/twitter/clientlib/api/GeneralApi.java +++ b/src/main/java/com/twitter/clientlib/api/GeneralApi.java @@ -36,6 +36,7 @@ import com.google.gson.reflect.TypeToken; import java.io.IOException; +import java.util.HashSet; @@ -114,6 +115,7 @@ private okhttp3.Call getOpenApiSpecAsync(final ApiCallback _callback) th } public class APIgetOpenApiSpecRequest { + private APIgetOpenApiSpecRequest() { } diff --git a/src/main/java/com/twitter/clientlib/api/ListsApi.java b/src/main/java/com/twitter/clientlib/api/ListsApi.java index 4c0bfb3..dbed35d 100644 --- a/src/main/java/com/twitter/clientlib/api/ListsApi.java +++ b/src/main/java/com/twitter/clientlib/api/ListsApi.java @@ -36,6 +36,7 @@ import com.google.gson.reflect.TypeToken; import java.io.IOException; +import java.util.HashSet; import com.twitter.clientlib.model.Error; @@ -166,6 +167,10 @@ public class APIgetUserListMembershipsRequest { private Set listFields; private Set expansions; private Set userFields; + private final Set listFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "follower_count", "id", "member_count", "name", "owner_id", "private")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("owner_id")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private APIgetUserListMembershipsRequest(String id) { this.id = id; @@ -197,7 +202,11 @@ public APIgetUserListMembershipsRequest paginationToken(String paginationToken) * @return APIgetUserListMembershipsRequest */ public APIgetUserListMembershipsRequest listFields(Set listFields) { - this.listFields = listFields; + if(listFields != null && listFields.size() == 1 && listFields.iterator().next().equalsIgnoreCase("ALL")) { + this.listFields = this.listFieldsAll; + } else { + this.listFields = listFields; + } return this; } @@ -207,7 +216,11 @@ public APIgetUserListMembershipsRequest listFields(Set listFields) { * @return APIgetUserListMembershipsRequest */ public APIgetUserListMembershipsRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -217,7 +230,11 @@ public APIgetUserListMembershipsRequest expansions(Set expansions) { * @return APIgetUserListMembershipsRequest */ public APIgetUserListMembershipsRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -386,6 +403,7 @@ private okhttp3.Call listAddMemberAsync(ListAddUserRequest listAddUserRequest, S public class APIlistAddMemberRequest { private final String id; private ListAddUserRequest listAddUserRequest; + private APIlistAddMemberRequest(String id) { this.id = id; @@ -559,6 +577,7 @@ private okhttp3.Call listIdCreateAsync(ListCreateRequest listCreateRequest, fina public class APIlistIdCreateRequest { private ListCreateRequest listCreateRequest; + private APIlistIdCreateRequest() { } @@ -736,6 +755,7 @@ private okhttp3.Call listIdDeleteAsync(String id, final ApiCallback listFields; private Set expansions; private Set userFields; + private final Set listFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "follower_count", "id", "member_count", "name", "owner_id", "private")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("owner_id")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private APIlistIdGetRequest(String id) { this.id = id; @@ -931,7 +955,11 @@ private APIlistIdGetRequest(String id) { * @return APIlistIdGetRequest */ public APIlistIdGetRequest listFields(Set listFields) { - this.listFields = listFields; + if(listFields != null && listFields.size() == 1 && listFields.iterator().next().equalsIgnoreCase("ALL")) { + this.listFields = this.listFieldsAll; + } else { + this.listFields = listFields; + } return this; } @@ -941,7 +969,11 @@ public APIlistIdGetRequest listFields(Set listFields) { * @return APIlistIdGetRequest */ public APIlistIdGetRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -951,7 +983,11 @@ public APIlistIdGetRequest expansions(Set expansions) { * @return APIlistIdGetRequest */ public APIlistIdGetRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -1120,6 +1156,7 @@ private okhttp3.Call listIdUpdateAsync(ListUpdateRequest listUpdateRequest, Stri public class APIlistIdUpdateRequest { private final String id; private ListUpdateRequest listUpdateRequest; + private APIlistIdUpdateRequest(String id) { this.id = id; @@ -1306,6 +1343,7 @@ private okhttp3.Call listRemoveMemberAsync(String id, String userId, final ApiCa public class APIlistRemoveMemberRequest { private final String id; private final String userId; + private APIlistRemoveMemberRequest(String id, String userId) { this.id = id; @@ -1478,6 +1516,7 @@ private okhttp3.Call listUserFollowAsync(ListFollowedRequest listFollowedRequest public class APIlistUserFollowRequest { private final String id; private ListFollowedRequest listFollowedRequest; + private APIlistUserFollowRequest(String id) { this.id = id; @@ -1682,6 +1721,10 @@ public class APIlistUserOwnedListsRequest { private Set listFields; private Set expansions; private Set userFields; + private final Set listFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "follower_count", "id", "member_count", "name", "owner_id", "private")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("owner_id")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private APIlistUserOwnedListsRequest(String id) { this.id = id; @@ -1713,7 +1756,11 @@ public APIlistUserOwnedListsRequest paginationToken(String paginationToken) { * @return APIlistUserOwnedListsRequest */ public APIlistUserOwnedListsRequest listFields(Set listFields) { - this.listFields = listFields; + if(listFields != null && listFields.size() == 1 && listFields.iterator().next().equalsIgnoreCase("ALL")) { + this.listFields = this.listFieldsAll; + } else { + this.listFields = listFields; + } return this; } @@ -1723,7 +1770,11 @@ public APIlistUserOwnedListsRequest listFields(Set listFields) { * @return APIlistUserOwnedListsRequest */ public APIlistUserOwnedListsRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -1733,7 +1784,11 @@ public APIlistUserOwnedListsRequest expansions(Set expansions) { * @return APIlistUserOwnedListsRequest */ public APIlistUserOwnedListsRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -1907,6 +1962,7 @@ private okhttp3.Call listUserPinAsync(ListPinnedRequest listPinnedRequest, Strin public class APIlistUserPinRequest { private final ListPinnedRequest listPinnedRequest; private final String id; + private APIlistUserPinRequest(ListPinnedRequest listPinnedRequest, String id) { this.listPinnedRequest = listPinnedRequest; @@ -2093,6 +2149,10 @@ public class APIlistUserPinnedListsRequest { private Set listFields; private Set expansions; private Set userFields; + private final Set listFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "follower_count", "id", "member_count", "name", "owner_id", "private")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("owner_id")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private APIlistUserPinnedListsRequest(String id) { this.id = id; @@ -2104,7 +2164,11 @@ private APIlistUserPinnedListsRequest(String id) { * @return APIlistUserPinnedListsRequest */ public APIlistUserPinnedListsRequest listFields(Set listFields) { - this.listFields = listFields; + if(listFields != null && listFields.size() == 1 && listFields.iterator().next().equalsIgnoreCase("ALL")) { + this.listFields = this.listFieldsAll; + } else { + this.listFields = listFields; + } return this; } @@ -2114,7 +2178,11 @@ public APIlistUserPinnedListsRequest listFields(Set listFields) { * @return APIlistUserPinnedListsRequest */ public APIlistUserPinnedListsRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -2124,7 +2192,11 @@ public APIlistUserPinnedListsRequest expansions(Set expansions) { * @return APIlistUserPinnedListsRequest */ public APIlistUserPinnedListsRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -2299,6 +2371,7 @@ private okhttp3.Call listUserUnfollowAsync(String id, String listId, final ApiCa public class APIlistUserUnfollowRequest { private final String id; private final String listId; + private APIlistUserUnfollowRequest(String id, String listId) { this.id = id; @@ -2477,6 +2550,7 @@ private okhttp3.Call listUserUnpinAsync(String id, String listId, final ApiCallb public class APIlistUserUnpinRequest { private final String id; private final String listId; + private APIlistUserUnpinRequest(String id, String listId) { this.id = id; @@ -2673,6 +2747,10 @@ public class APIuserFollowedListsRequest { private Set listFields; private Set expansions; private Set userFields; + private final Set listFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "follower_count", "id", "member_count", "name", "owner_id", "private")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("owner_id")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private APIuserFollowedListsRequest(String id) { this.id = id; @@ -2704,7 +2782,11 @@ public APIuserFollowedListsRequest paginationToken(String paginationToken) { * @return APIuserFollowedListsRequest */ public APIuserFollowedListsRequest listFields(Set listFields) { - this.listFields = listFields; + if(listFields != null && listFields.size() == 1 && listFields.iterator().next().equalsIgnoreCase("ALL")) { + this.listFields = this.listFieldsAll; + } else { + this.listFields = listFields; + } return this; } @@ -2714,7 +2796,11 @@ public APIuserFollowedListsRequest listFields(Set listFields) { * @return APIuserFollowedListsRequest */ public APIuserFollowedListsRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -2724,7 +2810,11 @@ public APIuserFollowedListsRequest expansions(Set expansions) { * @return APIuserFollowedListsRequest */ public APIuserFollowedListsRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } diff --git a/src/main/java/com/twitter/clientlib/api/SpacesApi.java b/src/main/java/com/twitter/clientlib/api/SpacesApi.java index 8778254..c0bc4ee 100644 --- a/src/main/java/com/twitter/clientlib/api/SpacesApi.java +++ b/src/main/java/com/twitter/clientlib/api/SpacesApi.java @@ -36,6 +36,7 @@ import com.google.gson.reflect.TypeToken; import java.io.IOException; +import java.util.HashSet; import com.twitter.clientlib.model.Error; @@ -150,6 +151,11 @@ public class APIfindSpaceByIdRequest { private Set expansions; private Set userFields; private Set topicFields; + private final Set spaceFieldsAll = new HashSet<>(Arrays.asList("created_at", "creator_id", "ended_at", "host_ids", "id", "invited_user_ids", "is_ticketed", "lang", "participant_count", "scheduled_start", "speaker_ids", "started_at", "state", "subscriber_count", "title", "topic_ids", "updated_at")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("creator_id", "host_ids", "invited_user_ids", "speaker_ids", "topic_ids")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set topicFieldsAll = new HashSet<>(Arrays.asList("description", "id", "name")); + private APIfindSpaceByIdRequest(String id) { this.id = id; @@ -161,7 +167,11 @@ private APIfindSpaceByIdRequest(String id) { * @return APIfindSpaceByIdRequest */ public APIfindSpaceByIdRequest spaceFields(Set spaceFields) { - this.spaceFields = spaceFields; + if(spaceFields != null && spaceFields.size() == 1 && spaceFields.iterator().next().equalsIgnoreCase("ALL")) { + this.spaceFields = this.spaceFieldsAll; + } else { + this.spaceFields = spaceFields; + } return this; } @@ -171,7 +181,11 @@ public APIfindSpaceByIdRequest spaceFields(Set spaceFields) { * @return APIfindSpaceByIdRequest */ public APIfindSpaceByIdRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -181,7 +195,11 @@ public APIfindSpaceByIdRequest expansions(Set expansions) { * @return APIfindSpaceByIdRequest */ public APIfindSpaceByIdRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -191,7 +209,11 @@ public APIfindSpaceByIdRequest userFields(Set userFields) { * @return APIfindSpaceByIdRequest */ public APIfindSpaceByIdRequest topicFields(Set topicFields) { - this.topicFields = topicFields; + if(topicFields != null && topicFields.size() == 1 && topicFields.iterator().next().equalsIgnoreCase("ALL")) { + this.topicFields = this.topicFieldsAll; + } else { + this.topicFields = topicFields; + } return this; } @@ -382,6 +404,11 @@ public class APIfindSpacesByCreatorIdsRequest { private Set expansions; private Set userFields; private Set topicFields; + private final Set spaceFieldsAll = new HashSet<>(Arrays.asList("created_at", "creator_id", "ended_at", "host_ids", "id", "invited_user_ids", "is_ticketed", "lang", "participant_count", "scheduled_start", "speaker_ids", "started_at", "state", "subscriber_count", "title", "topic_ids", "updated_at")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("creator_id", "host_ids", "invited_user_ids", "speaker_ids", "topic_ids")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set topicFieldsAll = new HashSet<>(Arrays.asList("description", "id", "name")); + private APIfindSpacesByCreatorIdsRequest(List userIds) { this.userIds = userIds; @@ -393,7 +420,11 @@ private APIfindSpacesByCreatorIdsRequest(List userIds) { * @return APIfindSpacesByCreatorIdsRequest */ public APIfindSpacesByCreatorIdsRequest spaceFields(Set spaceFields) { - this.spaceFields = spaceFields; + if(spaceFields != null && spaceFields.size() == 1 && spaceFields.iterator().next().equalsIgnoreCase("ALL")) { + this.spaceFields = this.spaceFieldsAll; + } else { + this.spaceFields = spaceFields; + } return this; } @@ -403,7 +434,11 @@ public APIfindSpacesByCreatorIdsRequest spaceFields(Set spaceFields) { * @return APIfindSpacesByCreatorIdsRequest */ public APIfindSpacesByCreatorIdsRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -413,7 +448,11 @@ public APIfindSpacesByCreatorIdsRequest expansions(Set expansions) { * @return APIfindSpacesByCreatorIdsRequest */ public APIfindSpacesByCreatorIdsRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -423,7 +462,11 @@ public APIfindSpacesByCreatorIdsRequest userFields(Set userFields) { * @return APIfindSpacesByCreatorIdsRequest */ public APIfindSpacesByCreatorIdsRequest topicFields(Set topicFields) { - this.topicFields = topicFields; + if(topicFields != null && topicFields.size() == 1 && topicFields.iterator().next().equalsIgnoreCase("ALL")) { + this.topicFields = this.topicFieldsAll; + } else { + this.topicFields = topicFields; + } return this; } @@ -614,6 +657,11 @@ public class APIfindSpacesByIdsRequest { private Set expansions; private Set userFields; private Set topicFields; + private final Set spaceFieldsAll = new HashSet<>(Arrays.asList("created_at", "creator_id", "ended_at", "host_ids", "id", "invited_user_ids", "is_ticketed", "lang", "participant_count", "scheduled_start", "speaker_ids", "started_at", "state", "subscriber_count", "title", "topic_ids", "updated_at")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("creator_id", "host_ids", "invited_user_ids", "speaker_ids", "topic_ids")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set topicFieldsAll = new HashSet<>(Arrays.asList("description", "id", "name")); + private APIfindSpacesByIdsRequest(List ids) { this.ids = ids; @@ -625,7 +673,11 @@ private APIfindSpacesByIdsRequest(List ids) { * @return APIfindSpacesByIdsRequest */ public APIfindSpacesByIdsRequest spaceFields(Set spaceFields) { - this.spaceFields = spaceFields; + if(spaceFields != null && spaceFields.size() == 1 && spaceFields.iterator().next().equalsIgnoreCase("ALL")) { + this.spaceFields = this.spaceFieldsAll; + } else { + this.spaceFields = spaceFields; + } return this; } @@ -635,7 +687,11 @@ public APIfindSpacesByIdsRequest spaceFields(Set spaceFields) { * @return APIfindSpacesByIdsRequest */ public APIfindSpacesByIdsRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -645,7 +701,11 @@ public APIfindSpacesByIdsRequest expansions(Set expansions) { * @return APIfindSpacesByIdsRequest */ public APIfindSpacesByIdsRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -655,7 +715,11 @@ public APIfindSpacesByIdsRequest userFields(Set userFields) { * @return APIfindSpacesByIdsRequest */ public APIfindSpacesByIdsRequest topicFields(Set topicFields) { - this.topicFields = topicFields; + if(topicFields != null && topicFields.size() == 1 && topicFields.iterator().next().equalsIgnoreCase("ALL")) { + this.topicFields = this.topicFieldsAll; + } else { + this.topicFields = topicFields; + } return this; } @@ -856,6 +920,11 @@ public class APIsearchSpacesRequest { private Set expansions; private Set userFields; private Set topicFields; + private final Set spaceFieldsAll = new HashSet<>(Arrays.asList("created_at", "creator_id", "ended_at", "host_ids", "id", "invited_user_ids", "is_ticketed", "lang", "participant_count", "scheduled_start", "speaker_ids", "started_at", "state", "subscriber_count", "title", "topic_ids", "updated_at")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("creator_id", "host_ids", "invited_user_ids", "speaker_ids", "topic_ids")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set topicFieldsAll = new HashSet<>(Arrays.asList("description", "id", "name")); + private APIsearchSpacesRequest(String query) { this.query = query; @@ -867,7 +936,7 @@ private APIsearchSpacesRequest(String query) { * @return APIsearchSpacesRequest */ public APIsearchSpacesRequest state(String state) { - this.state = state; + return this; } @@ -887,7 +956,11 @@ public APIsearchSpacesRequest maxResults(Integer maxResults) { * @return APIsearchSpacesRequest */ public APIsearchSpacesRequest spaceFields(Set spaceFields) { - this.spaceFields = spaceFields; + if(spaceFields != null && spaceFields.size() == 1 && spaceFields.iterator().next().equalsIgnoreCase("ALL")) { + this.spaceFields = this.spaceFieldsAll; + } else { + this.spaceFields = spaceFields; + } return this; } @@ -897,7 +970,11 @@ public APIsearchSpacesRequest spaceFields(Set spaceFields) { * @return APIsearchSpacesRequest */ public APIsearchSpacesRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -907,7 +984,11 @@ public APIsearchSpacesRequest expansions(Set expansions) { * @return APIsearchSpacesRequest */ public APIsearchSpacesRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -917,7 +998,11 @@ public APIsearchSpacesRequest userFields(Set userFields) { * @return APIsearchSpacesRequest */ public APIsearchSpacesRequest topicFields(Set topicFields) { - this.topicFields = topicFields; + if(topicFields != null && topicFields.size() == 1 && topicFields.iterator().next().equalsIgnoreCase("ALL")) { + this.topicFields = this.topicFieldsAll; + } else { + this.topicFields = topicFields; + } return this; } @@ -1110,6 +1195,10 @@ public class APIspaceBuyersRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIspaceBuyersRequest(String id) { this.id = id; @@ -1141,7 +1230,11 @@ public APIspaceBuyersRequest maxResults(Integer maxResults) { * @return APIspaceBuyersRequest */ public APIspaceBuyersRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -1151,7 +1244,11 @@ public APIspaceBuyersRequest userFields(Set userFields) { * @return APIspaceBuyersRequest */ public APIspaceBuyersRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -1161,7 +1258,11 @@ public APIspaceBuyersRequest expansions(Set expansions) { * @return APIspaceBuyersRequest */ public APIspaceBuyersRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -1364,6 +1465,13 @@ public class APIspaceTweetsRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIspaceTweetsRequest(String id) { this.id = id; @@ -1385,7 +1493,11 @@ public APIspaceTweetsRequest maxResults(Integer maxResults) { * @return APIspaceTweetsRequest */ public APIspaceTweetsRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -1395,7 +1507,11 @@ public APIspaceTweetsRequest tweetFields(Set tweetFields) { * @return APIspaceTweetsRequest */ public APIspaceTweetsRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -1405,7 +1521,11 @@ public APIspaceTweetsRequest expansions(Set expansions) { * @return APIspaceTweetsRequest */ public APIspaceTweetsRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -1415,7 +1535,11 @@ public APIspaceTweetsRequest mediaFields(Set mediaFields) { * @return APIspaceTweetsRequest */ public APIspaceTweetsRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -1425,7 +1549,11 @@ public APIspaceTweetsRequest pollFields(Set pollFields) { * @return APIspaceTweetsRequest */ public APIspaceTweetsRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -1435,7 +1563,11 @@ public APIspaceTweetsRequest userFields(Set userFields) { * @return APIspaceTweetsRequest */ public APIspaceTweetsRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } diff --git a/src/main/java/com/twitter/clientlib/api/TweetsApi.java b/src/main/java/com/twitter/clientlib/api/TweetsApi.java index c78fa94..4d737f2 100644 --- a/src/main/java/com/twitter/clientlib/api/TweetsApi.java +++ b/src/main/java/com/twitter/clientlib/api/TweetsApi.java @@ -36,6 +36,7 @@ import com.google.gson.reflect.TypeToken; import java.io.IOException; +import java.util.HashSet; import com.twitter.clientlib.model.AddOrDeleteRulesRequest; @@ -159,6 +160,7 @@ private okhttp3.Call addOrDeleteRulesAsync(AddOrDeleteRulesRequest addOrDeleteRu public class APIaddOrDeleteRulesRequest { private final AddOrDeleteRulesRequest addOrDeleteRulesRequest; private Boolean dryRun; + private APIaddOrDeleteRulesRequest(AddOrDeleteRulesRequest addOrDeleteRulesRequest) { this.addOrDeleteRulesRequest = addOrDeleteRulesRequest; @@ -337,6 +339,7 @@ private okhttp3.Call createTweetAsync(TweetCreateRequest tweetCreateRequest, fin public class APIcreateTweetRequest { private final TweetCreateRequest tweetCreateRequest; + private APIcreateTweetRequest(TweetCreateRequest tweetCreateRequest) { this.tweetCreateRequest = tweetCreateRequest; @@ -506,6 +509,7 @@ private okhttp3.Call deleteTweetByIdAsync(String id, final ApiCallback pollFields; private Set userFields; private Set placeFields; + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIfindTweetByIdRequest(String id) { this.id = id; @@ -716,7 +727,11 @@ private APIfindTweetByIdRequest(String id) { * @return APIfindTweetByIdRequest */ public APIfindTweetByIdRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -726,7 +741,11 @@ public APIfindTweetByIdRequest tweetFields(Set tweetFields) { * @return APIfindTweetByIdRequest */ public APIfindTweetByIdRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -736,7 +755,11 @@ public APIfindTweetByIdRequest expansions(Set expansions) { * @return APIfindTweetByIdRequest */ public APIfindTweetByIdRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -746,7 +769,11 @@ public APIfindTweetByIdRequest mediaFields(Set mediaFields) { * @return APIfindTweetByIdRequest */ public APIfindTweetByIdRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -756,7 +783,11 @@ public APIfindTweetByIdRequest pollFields(Set pollFields) { * @return APIfindTweetByIdRequest */ public APIfindTweetByIdRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -766,7 +797,11 @@ public APIfindTweetByIdRequest userFields(Set userFields) { * @return APIfindTweetByIdRequest */ public APIfindTweetByIdRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -967,6 +1002,13 @@ public class APIfindTweetsByIdRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIfindTweetsByIdRequest(List ids) { this.ids = ids; @@ -978,7 +1020,11 @@ private APIfindTweetsByIdRequest(List ids) { * @return APIfindTweetsByIdRequest */ public APIfindTweetsByIdRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -988,7 +1034,11 @@ public APIfindTweetsByIdRequest tweetFields(Set tweetFields) { * @return APIfindTweetsByIdRequest */ public APIfindTweetsByIdRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -998,7 +1048,11 @@ public APIfindTweetsByIdRequest expansions(Set expansions) { * @return APIfindTweetsByIdRequest */ public APIfindTweetsByIdRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -1008,7 +1062,11 @@ public APIfindTweetsByIdRequest mediaFields(Set mediaFields) { * @return APIfindTweetsByIdRequest */ public APIfindTweetsByIdRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -1018,7 +1076,11 @@ public APIfindTweetsByIdRequest pollFields(Set pollFields) { * @return APIfindTweetsByIdRequest */ public APIfindTweetsByIdRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -1028,7 +1090,11 @@ public APIfindTweetsByIdRequest userFields(Set userFields) { * @return APIfindTweetsByIdRequest */ public APIfindTweetsByIdRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -1241,6 +1307,14 @@ public class APIfindTweetsThatQuoteATweetRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set excludeAll = new HashSet<>(Arrays.asList("replies", "retweets")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIfindTweetsThatQuoteATweetRequest(String id) { this.id = id; @@ -1272,7 +1346,11 @@ public APIfindTweetsThatQuoteATweetRequest paginationToken(String paginationToke * @return APIfindTweetsThatQuoteATweetRequest */ public APIfindTweetsThatQuoteATweetRequest exclude(Set exclude) { - this.exclude = exclude; + if(exclude != null && exclude.size() == 1 && exclude.iterator().next().equalsIgnoreCase("ALL")) { + this.exclude = this.excludeAll; + } else { + this.exclude = exclude; + } return this; } @@ -1282,7 +1360,11 @@ public APIfindTweetsThatQuoteATweetRequest exclude(Set exclude) { * @return APIfindTweetsThatQuoteATweetRequest */ public APIfindTweetsThatQuoteATweetRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -1292,7 +1374,11 @@ public APIfindTweetsThatQuoteATweetRequest tweetFields(Set tweetFields) * @return APIfindTweetsThatQuoteATweetRequest */ public APIfindTweetsThatQuoteATweetRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -1302,7 +1388,11 @@ public APIfindTweetsThatQuoteATweetRequest expansions(Set expansions) { * @return APIfindTweetsThatQuoteATweetRequest */ public APIfindTweetsThatQuoteATweetRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -1312,7 +1402,11 @@ public APIfindTweetsThatQuoteATweetRequest mediaFields(Set mediaFields) * @return APIfindTweetsThatQuoteATweetRequest */ public APIfindTweetsThatQuoteATweetRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -1322,7 +1416,11 @@ public APIfindTweetsThatQuoteATweetRequest pollFields(Set pollFields) { * @return APIfindTweetsThatQuoteATweetRequest */ public APIfindTweetsThatQuoteATweetRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -1332,7 +1430,11 @@ public APIfindTweetsThatQuoteATweetRequest userFields(Set userFields) { * @return APIfindTweetsThatQuoteATweetRequest */ public APIfindTweetsThatQuoteATweetRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -1508,6 +1610,7 @@ public class APIgetRulesRequest { private List ids; private Integer maxResults; private String paginationToken; + private APIgetRulesRequest() { } @@ -1518,7 +1621,7 @@ private APIgetRulesRequest() { * @return APIgetRulesRequest */ public APIgetRulesRequest ids(List ids) { - this.ids = ids; + return this; } @@ -1706,6 +1809,7 @@ private okhttp3.Call hideReplyByIdAsync(TweetHideRequest tweetHideRequest, Strin public class APIhideReplyByIdRequest { private final String tweetId; private TweetHideRequest tweetHideRequest; + private APIhideReplyByIdRequest(String tweetId) { this.tweetId = tweetId; @@ -1925,6 +2029,13 @@ public class APIlistsIdTweetsRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIlistsIdTweetsRequest(String id) { this.id = id; @@ -1956,7 +2067,11 @@ public APIlistsIdTweetsRequest paginationToken(String paginationToken) { * @return APIlistsIdTweetsRequest */ public APIlistsIdTweetsRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -1966,7 +2081,11 @@ public APIlistsIdTweetsRequest tweetFields(Set tweetFields) { * @return APIlistsIdTweetsRequest */ public APIlistsIdTweetsRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -1976,7 +2095,11 @@ public APIlistsIdTweetsRequest expansions(Set expansions) { * @return APIlistsIdTweetsRequest */ public APIlistsIdTweetsRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -1986,7 +2109,11 @@ public APIlistsIdTweetsRequest mediaFields(Set mediaFields) { * @return APIlistsIdTweetsRequest */ public APIlistsIdTweetsRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -1996,7 +2123,11 @@ public APIlistsIdTweetsRequest pollFields(Set pollFields) { * @return APIlistsIdTweetsRequest */ public APIlistsIdTweetsRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -2006,7 +2137,11 @@ public APIlistsIdTweetsRequest userFields(Set userFields) { * @return APIlistsIdTweetsRequest */ public APIlistsIdTweetsRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -2202,6 +2337,13 @@ public class APIsampleStreamRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIsampleStreamRequest() { } @@ -2222,7 +2364,11 @@ public APIsampleStreamRequest backfillMinutes(Integer backfillMinutes) { * @return APIsampleStreamRequest */ public APIsampleStreamRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -2232,7 +2378,11 @@ public APIsampleStreamRequest tweetFields(Set tweetFields) { * @return APIsampleStreamRequest */ public APIsampleStreamRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -2242,7 +2392,11 @@ public APIsampleStreamRequest expansions(Set expansions) { * @return APIsampleStreamRequest */ public APIsampleStreamRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -2252,7 +2406,11 @@ public APIsampleStreamRequest mediaFields(Set mediaFields) { * @return APIsampleStreamRequest */ public APIsampleStreamRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -2262,7 +2420,11 @@ public APIsampleStreamRequest pollFields(Set pollFields) { * @return APIsampleStreamRequest */ public APIsampleStreamRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -2272,7 +2434,11 @@ public APIsampleStreamRequest userFields(Set userFields) { * @return APIsampleStreamRequest */ public APIsampleStreamRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -2468,6 +2634,13 @@ public class APIsearchStreamRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIsearchStreamRequest() { } @@ -2488,7 +2661,11 @@ public APIsearchStreamRequest backfillMinutes(Integer backfillMinutes) { * @return APIsearchStreamRequest */ public APIsearchStreamRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -2498,7 +2675,11 @@ public APIsearchStreamRequest tweetFields(Set tweetFields) { * @return APIsearchStreamRequest */ public APIsearchStreamRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -2508,7 +2689,11 @@ public APIsearchStreamRequest expansions(Set expansions) { * @return APIsearchStreamRequest */ public APIsearchStreamRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -2518,7 +2703,11 @@ public APIsearchStreamRequest mediaFields(Set mediaFields) { * @return APIsearchStreamRequest */ public APIsearchStreamRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -2528,7 +2717,11 @@ public APIsearchStreamRequest pollFields(Set pollFields) { * @return APIsearchStreamRequest */ public APIsearchStreamRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -2538,7 +2731,11 @@ public APIsearchStreamRequest userFields(Set userFields) { * @return APIsearchStreamRequest */ public APIsearchStreamRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -2731,6 +2928,10 @@ public class APIspaceBuyersRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIspaceBuyersRequest(String id) { this.id = id; @@ -2762,7 +2963,11 @@ public APIspaceBuyersRequest maxResults(Integer maxResults) { * @return APIspaceBuyersRequest */ public APIspaceBuyersRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -2772,7 +2977,11 @@ public APIspaceBuyersRequest userFields(Set userFields) { * @return APIspaceBuyersRequest */ public APIspaceBuyersRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -2782,7 +2991,11 @@ public APIspaceBuyersRequest expansions(Set expansions) { * @return APIspaceBuyersRequest */ public APIspaceBuyersRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -2985,6 +3198,13 @@ public class APIspaceTweetsRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIspaceTweetsRequest(String id) { this.id = id; @@ -3006,7 +3226,11 @@ public APIspaceTweetsRequest maxResults(Integer maxResults) { * @return APIspaceTweetsRequest */ public APIspaceTweetsRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -3016,7 +3240,11 @@ public APIspaceTweetsRequest tweetFields(Set tweetFields) { * @return APIspaceTweetsRequest */ public APIspaceTweetsRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -3026,7 +3254,11 @@ public APIspaceTweetsRequest expansions(Set expansions) { * @return APIspaceTweetsRequest */ public APIspaceTweetsRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -3036,7 +3268,11 @@ public APIspaceTweetsRequest mediaFields(Set mediaFields) { * @return APIspaceTweetsRequest */ public APIspaceTweetsRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -3046,7 +3282,11 @@ public APIspaceTweetsRequest pollFields(Set pollFields) { * @return APIspaceTweetsRequest */ public APIspaceTweetsRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -3056,7 +3296,11 @@ public APIspaceTweetsRequest userFields(Set userFields) { * @return APIspaceTweetsRequest */ public APIspaceTweetsRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -3267,6 +3511,8 @@ public class APItweetCountsFullArchiveSearchRequest { private String paginationToken; private String granularity; private Set searchCountFields; + private final Set searchCountFieldsAll = new HashSet<>(Arrays.asList("end", "start", "tweet_count")); + private APItweetCountsFullArchiveSearchRequest(String query) { this.query = query; @@ -3338,7 +3584,7 @@ public APItweetCountsFullArchiveSearchRequest paginationToken(String paginationT * @return APItweetCountsFullArchiveSearchRequest */ public APItweetCountsFullArchiveSearchRequest granularity(String granularity) { - this.granularity = granularity; + return this; } @@ -3348,7 +3594,11 @@ public APItweetCountsFullArchiveSearchRequest granularity(String granularity) { * @return APItweetCountsFullArchiveSearchRequest */ public APItweetCountsFullArchiveSearchRequest searchCountFields(Set searchCountFields) { - this.searchCountFields = searchCountFields; + if(searchCountFields != null && searchCountFields.size() == 1 && searchCountFields.iterator().next().equalsIgnoreCase("ALL")) { + this.searchCountFields = this.searchCountFieldsAll; + } else { + this.searchCountFields = searchCountFields; + } return this; } @@ -3559,6 +3809,8 @@ public class APItweetCountsRecentSearchRequest { private String paginationToken; private String granularity; private Set searchCountFields; + private final Set searchCountFieldsAll = new HashSet<>(Arrays.asList("end", "start", "tweet_count")); + private APItweetCountsRecentSearchRequest(String query) { this.query = query; @@ -3630,7 +3882,7 @@ public APItweetCountsRecentSearchRequest paginationToken(String paginationToken) * @return APItweetCountsRecentSearchRequest */ public APItweetCountsRecentSearchRequest granularity(String granularity) { - this.granularity = granularity; + return this; } @@ -3640,7 +3892,11 @@ public APItweetCountsRecentSearchRequest granularity(String granularity) { * @return APItweetCountsRecentSearchRequest */ public APItweetCountsRecentSearchRequest searchCountFields(Set searchCountFields) { - this.searchCountFields = searchCountFields; + if(searchCountFields != null && searchCountFields.size() == 1 && searchCountFields.iterator().next().equalsIgnoreCase("ALL")) { + this.searchCountFields = this.searchCountFieldsAll; + } else { + this.searchCountFields = searchCountFields; + } return this; } @@ -3881,6 +4137,13 @@ public class APItweetsFullarchiveSearchRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APItweetsFullarchiveSearchRequest(String query) { this.query = query; @@ -3962,7 +4225,7 @@ public APItweetsFullarchiveSearchRequest paginationToken(String paginationToken) * @return APItweetsFullarchiveSearchRequest */ public APItweetsFullarchiveSearchRequest sortOrder(String sortOrder) { - this.sortOrder = sortOrder; + return this; } @@ -3972,7 +4235,11 @@ public APItweetsFullarchiveSearchRequest sortOrder(String sortOrder) { * @return APItweetsFullarchiveSearchRequest */ public APItweetsFullarchiveSearchRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -3982,7 +4249,11 @@ public APItweetsFullarchiveSearchRequest tweetFields(Set tweetFields) { * @return APItweetsFullarchiveSearchRequest */ public APItweetsFullarchiveSearchRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -3992,7 +4263,11 @@ public APItweetsFullarchiveSearchRequest expansions(Set expansions) { * @return APItweetsFullarchiveSearchRequest */ public APItweetsFullarchiveSearchRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -4002,7 +4277,11 @@ public APItweetsFullarchiveSearchRequest mediaFields(Set mediaFields) { * @return APItweetsFullarchiveSearchRequest */ public APItweetsFullarchiveSearchRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -4012,7 +4291,11 @@ public APItweetsFullarchiveSearchRequest pollFields(Set pollFields) { * @return APItweetsFullarchiveSearchRequest */ public APItweetsFullarchiveSearchRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -4022,7 +4305,11 @@ public APItweetsFullarchiveSearchRequest userFields(Set userFields) { * @return APItweetsFullarchiveSearchRequest */ public APItweetsFullarchiveSearchRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -4263,6 +4550,13 @@ public class APItweetsRecentSearchRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APItweetsRecentSearchRequest(String query) { this.query = query; @@ -4344,7 +4638,7 @@ public APItweetsRecentSearchRequest paginationToken(String paginationToken) { * @return APItweetsRecentSearchRequest */ public APItweetsRecentSearchRequest sortOrder(String sortOrder) { - this.sortOrder = sortOrder; + return this; } @@ -4354,7 +4648,11 @@ public APItweetsRecentSearchRequest sortOrder(String sortOrder) { * @return APItweetsRecentSearchRequest */ public APItweetsRecentSearchRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -4364,7 +4662,11 @@ public APItweetsRecentSearchRequest tweetFields(Set tweetFields) { * @return APItweetsRecentSearchRequest */ public APItweetsRecentSearchRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -4374,7 +4676,11 @@ public APItweetsRecentSearchRequest expansions(Set expansions) { * @return APItweetsRecentSearchRequest */ public APItweetsRecentSearchRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -4384,7 +4690,11 @@ public APItweetsRecentSearchRequest mediaFields(Set mediaFields) { * @return APItweetsRecentSearchRequest */ public APItweetsRecentSearchRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -4394,7 +4704,11 @@ public APItweetsRecentSearchRequest pollFields(Set pollFields) { * @return APItweetsRecentSearchRequest */ public APItweetsRecentSearchRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -4404,7 +4718,11 @@ public APItweetsRecentSearchRequest userFields(Set userFields) { * @return APItweetsRecentSearchRequest */ public APItweetsRecentSearchRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -4573,6 +4891,7 @@ private okhttp3.Call usersIdLikeAsync(UsersLikesCreateRequest usersLikesCreateRe public class APIusersIdLikeRequest { private final String id; private UsersLikesCreateRequest usersLikesCreateRequest; + private APIusersIdLikeRequest(String id) { this.id = id; @@ -4792,6 +5111,13 @@ public class APIusersIdLikedTweetsRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIusersIdLikedTweetsRequest(String id) { this.id = id; @@ -4823,7 +5149,11 @@ public APIusersIdLikedTweetsRequest paginationToken(String paginationToken) { * @return APIusersIdLikedTweetsRequest */ public APIusersIdLikedTweetsRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -4833,7 +5163,11 @@ public APIusersIdLikedTweetsRequest tweetFields(Set tweetFields) { * @return APIusersIdLikedTweetsRequest */ public APIusersIdLikedTweetsRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -4843,7 +5177,11 @@ public APIusersIdLikedTweetsRequest expansions(Set expansions) { * @return APIusersIdLikedTweetsRequest */ public APIusersIdLikedTweetsRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -4853,7 +5191,11 @@ public APIusersIdLikedTweetsRequest mediaFields(Set mediaFields) { * @return APIusersIdLikedTweetsRequest */ public APIusersIdLikedTweetsRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -4863,7 +5205,11 @@ public APIusersIdLikedTweetsRequest pollFields(Set pollFields) { * @return APIusersIdLikedTweetsRequest */ public APIusersIdLikedTweetsRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -4873,7 +5219,11 @@ public APIusersIdLikedTweetsRequest userFields(Set userFields) { * @return APIusersIdLikedTweetsRequest */ public APIusersIdLikedTweetsRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -5101,6 +5451,13 @@ public class APIusersIdMentionsRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIusersIdMentionsRequest(String id) { this.id = id; @@ -5172,7 +5529,11 @@ public APIusersIdMentionsRequest endTime(OffsetDateTime endTime) { * @return APIusersIdMentionsRequest */ public APIusersIdMentionsRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -5182,7 +5543,11 @@ public APIusersIdMentionsRequest tweetFields(Set tweetFields) { * @return APIusersIdMentionsRequest */ public APIusersIdMentionsRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -5192,7 +5557,11 @@ public APIusersIdMentionsRequest expansions(Set expansions) { * @return APIusersIdMentionsRequest */ public APIusersIdMentionsRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -5202,7 +5571,11 @@ public APIusersIdMentionsRequest mediaFields(Set mediaFields) { * @return APIusersIdMentionsRequest */ public APIusersIdMentionsRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -5212,7 +5585,11 @@ public APIusersIdMentionsRequest pollFields(Set pollFields) { * @return APIusersIdMentionsRequest */ public APIusersIdMentionsRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -5222,7 +5599,11 @@ public APIusersIdMentionsRequest userFields(Set userFields) { * @return APIusersIdMentionsRequest */ public APIusersIdMentionsRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -5391,6 +5772,7 @@ private okhttp3.Call usersIdRetweetsAsync(UsersRetweetsCreateRequest usersRetwee public class APIusersIdRetweetsRequest { private final String id; private UsersRetweetsCreateRequest usersRetweetsCreateRequest; + private APIusersIdRetweetsRequest(String id) { this.id = id; @@ -5635,6 +6017,14 @@ public class APIusersIdTimelineRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set excludeAll = new HashSet<>(Arrays.asList("replies", "retweets")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIusersIdTimelineRequest(String id) { this.id = id; @@ -5686,7 +6076,11 @@ public APIusersIdTimelineRequest paginationToken(String paginationToken) { * @return APIusersIdTimelineRequest */ public APIusersIdTimelineRequest exclude(Set exclude) { - this.exclude = exclude; + if(exclude != null && exclude.size() == 1 && exclude.iterator().next().equalsIgnoreCase("ALL")) { + this.exclude = this.excludeAll; + } else { + this.exclude = exclude; + } return this; } @@ -5716,7 +6110,11 @@ public APIusersIdTimelineRequest endTime(OffsetDateTime endTime) { * @return APIusersIdTimelineRequest */ public APIusersIdTimelineRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -5726,7 +6124,11 @@ public APIusersIdTimelineRequest tweetFields(Set tweetFields) { * @return APIusersIdTimelineRequest */ public APIusersIdTimelineRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -5736,7 +6138,11 @@ public APIusersIdTimelineRequest expansions(Set expansions) { * @return APIusersIdTimelineRequest */ public APIusersIdTimelineRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -5746,7 +6152,11 @@ public APIusersIdTimelineRequest mediaFields(Set mediaFields) { * @return APIusersIdTimelineRequest */ public APIusersIdTimelineRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -5756,7 +6166,11 @@ public APIusersIdTimelineRequest pollFields(Set pollFields) { * @return APIusersIdTimelineRequest */ public APIusersIdTimelineRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -5766,7 +6180,11 @@ public APIusersIdTimelineRequest userFields(Set userFields) { * @return APIusersIdTimelineRequest */ public APIusersIdTimelineRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -5999,6 +6417,14 @@ public class APIusersIdTweetsRequest { private Set pollFields; private Set userFields; private Set placeFields; + private final Set excludeAll = new HashSet<>(Arrays.asList("replies", "retweets")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("attachments.media_keys", "attachments.poll_ids", "author_id", "entities.mentions.username", "geo.place_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id")); + private final Set mediaFieldsAll = new HashSet<>(Arrays.asList("alt_text", "duration_ms", "height", "media_key", "non_public_metrics", "organic_metrics", "preview_image_url", "promoted_metrics", "public_metrics", "type", "url", "variants", "width")); + private final Set pollFieldsAll = new HashSet<>(Arrays.asList("duration_minutes", "end_datetime", "id", "options", "voting_status")); + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set placeFieldsAll = new HashSet<>(Arrays.asList("contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type")); + private APIusersIdTweetsRequest(String id) { this.id = id; @@ -6050,7 +6476,11 @@ public APIusersIdTweetsRequest paginationToken(String paginationToken) { * @return APIusersIdTweetsRequest */ public APIusersIdTweetsRequest exclude(Set exclude) { - this.exclude = exclude; + if(exclude != null && exclude.size() == 1 && exclude.iterator().next().equalsIgnoreCase("ALL")) { + this.exclude = this.excludeAll; + } else { + this.exclude = exclude; + } return this; } @@ -6080,7 +6510,11 @@ public APIusersIdTweetsRequest endTime(OffsetDateTime endTime) { * @return APIusersIdTweetsRequest */ public APIusersIdTweetsRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -6090,7 +6524,11 @@ public APIusersIdTweetsRequest tweetFields(Set tweetFields) { * @return APIusersIdTweetsRequest */ public APIusersIdTweetsRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -6100,7 +6538,11 @@ public APIusersIdTweetsRequest expansions(Set expansions) { * @return APIusersIdTweetsRequest */ public APIusersIdTweetsRequest mediaFields(Set mediaFields) { - this.mediaFields = mediaFields; + if(mediaFields != null && mediaFields.size() == 1 && mediaFields.iterator().next().equalsIgnoreCase("ALL")) { + this.mediaFields = this.mediaFieldsAll; + } else { + this.mediaFields = mediaFields; + } return this; } @@ -6110,7 +6552,11 @@ public APIusersIdTweetsRequest mediaFields(Set mediaFields) { * @return APIusersIdTweetsRequest */ public APIusersIdTweetsRequest pollFields(Set pollFields) { - this.pollFields = pollFields; + if(pollFields != null && pollFields.size() == 1 && pollFields.iterator().next().equalsIgnoreCase("ALL")) { + this.pollFields = this.pollFieldsAll; + } else { + this.pollFields = pollFields; + } return this; } @@ -6120,7 +6566,11 @@ public APIusersIdTweetsRequest pollFields(Set pollFields) { * @return APIusersIdTweetsRequest */ public APIusersIdTweetsRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -6130,7 +6580,11 @@ public APIusersIdTweetsRequest userFields(Set userFields) { * @return APIusersIdTweetsRequest */ public APIusersIdTweetsRequest placeFields(Set placeFields) { - this.placeFields = placeFields; + if(placeFields != null && placeFields.size() == 1 && placeFields.iterator().next().equalsIgnoreCase("ALL")) { + this.placeFields = this.placeFieldsAll; + } else { + this.placeFields = placeFields; + } return this; } @@ -6305,6 +6759,7 @@ private okhttp3.Call usersIdUnlikeAsync(String id, String tweetId, final ApiCall public class APIusersIdUnlikeRequest { private final String id; private final String tweetId; + private APIusersIdUnlikeRequest(String id, String tweetId) { this.id = id; @@ -6483,6 +6938,7 @@ private okhttp3.Call usersIdUnretweetsAsync(String id, String sourceTweetId, fin public class APIusersIdUnretweetsRequest { private final String id; private final String sourceTweetId; + private APIusersIdUnretweetsRequest(String id, String sourceTweetId) { this.id = id; diff --git a/src/main/java/com/twitter/clientlib/api/TwitterApi.java b/src/main/java/com/twitter/clientlib/api/TwitterApi.java index 5441589..5838632 100644 --- a/src/main/java/com/twitter/clientlib/api/TwitterApi.java +++ b/src/main/java/com/twitter/clientlib/api/TwitterApi.java @@ -34,13 +34,13 @@ public class TwitterApi { - private final BookmarksApi bookmarks = new BookmarksApi(); - private final ComplianceApi compliance = new ComplianceApi(); - private final GeneralApi general = new GeneralApi(); - private final ListsApi lists = new ListsApi(); - private final SpacesApi spaces = new SpacesApi(); - private final TweetsApi tweets = new TweetsApi(); - private final UsersApi users = new UsersApi(); + private final BookmarksApi bookmarks = new BookmarksApi(); + private final ComplianceApi compliance = new ComplianceApi(); + private final GeneralApi general = new GeneralApi(); + private final ListsApi lists = new ListsApi(); + private final SpacesApi spaces = new SpacesApi(); + private final TweetsApi tweets = new TweetsApi(); + private final UsersApi users = new UsersApi(); private ApiClient localVarApiClient = new ApiClient(); public TwitterApi(TwitterCredentialsBearer credentials) { @@ -75,13 +75,13 @@ private void init() { } private void initApis() { - bookmarks.setClient(localVarApiClient); - compliance.setClient(localVarApiClient); - general.setClient(localVarApiClient); - lists.setClient(localVarApiClient); - spaces.setClient(localVarApiClient); - tweets.setClient(localVarApiClient); - users.setClient(localVarApiClient); + bookmarks.setClient(localVarApiClient); + compliance.setClient(localVarApiClient); + general.setClient(localVarApiClient); + lists.setClient(localVarApiClient); + spaces.setClient(localVarApiClient); + tweets.setClient(localVarApiClient); + users.setClient(localVarApiClient); } public BookmarksApi bookmarks() { diff --git a/src/main/java/com/twitter/clientlib/api/UsersApi.java b/src/main/java/com/twitter/clientlib/api/UsersApi.java index 43ccb80..56409e4 100644 --- a/src/main/java/com/twitter/clientlib/api/UsersApi.java +++ b/src/main/java/com/twitter/clientlib/api/UsersApi.java @@ -36,6 +36,7 @@ import com.google.gson.reflect.TypeToken; import java.io.IOException; +import java.util.HashSet; import com.twitter.clientlib.model.BlockUserMutationResponse; @@ -152,6 +153,10 @@ public class APIfindMyUserRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIfindMyUserRequest() { } @@ -162,7 +167,11 @@ private APIfindMyUserRequest() { * @return APIfindMyUserRequest */ public APIfindMyUserRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -172,7 +181,11 @@ public APIfindMyUserRequest userFields(Set userFields) { * @return APIfindMyUserRequest */ public APIfindMyUserRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -182,7 +195,11 @@ public APIfindMyUserRequest expansions(Set expansions) { * @return APIfindMyUserRequest */ public APIfindMyUserRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -364,6 +381,10 @@ public class APIfindUserByIdRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIfindUserByIdRequest(String id) { this.id = id; @@ -375,7 +396,11 @@ private APIfindUserByIdRequest(String id) { * @return APIfindUserByIdRequest */ public APIfindUserByIdRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -385,7 +410,11 @@ public APIfindUserByIdRequest userFields(Set userFields) { * @return APIfindUserByIdRequest */ public APIfindUserByIdRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -395,7 +424,11 @@ public APIfindUserByIdRequest expansions(Set expansions) { * @return APIfindUserByIdRequest */ public APIfindUserByIdRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -578,6 +611,10 @@ public class APIfindUserByUsernameRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIfindUserByUsernameRequest(String username) { this.username = username; @@ -589,7 +626,11 @@ private APIfindUserByUsernameRequest(String username) { * @return APIfindUserByUsernameRequest */ public APIfindUserByUsernameRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -599,7 +640,11 @@ public APIfindUserByUsernameRequest userFields(Set userFields) { * @return APIfindUserByUsernameRequest */ public APIfindUserByUsernameRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -609,7 +654,11 @@ public APIfindUserByUsernameRequest expansions(Set expansions) { * @return APIfindUserByUsernameRequest */ public APIfindUserByUsernameRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -795,6 +844,10 @@ public class APIfindUsersByIdRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIfindUsersByIdRequest(List ids) { this.ids = ids; @@ -806,7 +859,11 @@ private APIfindUsersByIdRequest(List ids) { * @return APIfindUsersByIdRequest */ public APIfindUsersByIdRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -816,7 +873,11 @@ public APIfindUsersByIdRequest userFields(Set userFields) { * @return APIfindUsersByIdRequest */ public APIfindUsersByIdRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -826,7 +887,11 @@ public APIfindUsersByIdRequest expansions(Set expansions) { * @return APIfindUsersByIdRequest */ public APIfindUsersByIdRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -1012,6 +1077,10 @@ public class APIfindUsersByUsernameRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIfindUsersByUsernameRequest(List usernames) { this.usernames = usernames; @@ -1023,7 +1092,11 @@ private APIfindUsersByUsernameRequest(List usernames) { * @return APIfindUsersByUsernameRequest */ public APIfindUsersByUsernameRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -1033,7 +1106,11 @@ public APIfindUsersByUsernameRequest userFields(Set userFields) { * @return APIfindUsersByUsernameRequest */ public APIfindUsersByUsernameRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -1043,7 +1120,11 @@ public APIfindUsersByUsernameRequest expansions(Set expansions) { * @return APIfindUsersByUsernameRequest */ public APIfindUsersByUsernameRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -1236,6 +1317,10 @@ public class APIlistGetFollowersRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIlistGetFollowersRequest(String id) { this.id = id; @@ -1267,7 +1352,11 @@ public APIlistGetFollowersRequest paginationToken(String paginationToken) { * @return APIlistGetFollowersRequest */ public APIlistGetFollowersRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -1277,7 +1366,11 @@ public APIlistGetFollowersRequest userFields(Set userFields) { * @return APIlistGetFollowersRequest */ public APIlistGetFollowersRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -1287,7 +1380,11 @@ public APIlistGetFollowersRequest expansions(Set expansions) { * @return APIlistGetFollowersRequest */ public APIlistGetFollowersRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -1480,6 +1577,10 @@ public class APIlistGetMembersRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIlistGetMembersRequest(String id) { this.id = id; @@ -1511,7 +1612,11 @@ public APIlistGetMembersRequest paginationToken(String paginationToken) { * @return APIlistGetMembersRequest */ public APIlistGetMembersRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -1521,7 +1626,11 @@ public APIlistGetMembersRequest userFields(Set userFields) { * @return APIlistGetMembersRequest */ public APIlistGetMembersRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -1531,7 +1640,11 @@ public APIlistGetMembersRequest expansions(Set expansions) { * @return APIlistGetMembersRequest */ public APIlistGetMembersRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -1724,6 +1837,10 @@ public class APItweetsIdLikingUsersRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APItweetsIdLikingUsersRequest(String id) { this.id = id; @@ -1755,7 +1872,11 @@ public APItweetsIdLikingUsersRequest paginationToken(String paginationToken) { * @return APItweetsIdLikingUsersRequest */ public APItweetsIdLikingUsersRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -1765,7 +1886,11 @@ public APItweetsIdLikingUsersRequest userFields(Set userFields) { * @return APItweetsIdLikingUsersRequest */ public APItweetsIdLikingUsersRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -1775,7 +1900,11 @@ public APItweetsIdLikingUsersRequest expansions(Set expansions) { * @return APItweetsIdLikingUsersRequest */ public APItweetsIdLikingUsersRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -1968,6 +2097,10 @@ public class APItweetsIdRetweetingUsersRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APItweetsIdRetweetingUsersRequest(String id) { this.id = id; @@ -1999,7 +2132,11 @@ public APItweetsIdRetweetingUsersRequest paginationToken(String paginationToken) * @return APItweetsIdRetweetingUsersRequest */ public APItweetsIdRetweetingUsersRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -2009,7 +2146,11 @@ public APItweetsIdRetweetingUsersRequest userFields(Set userFields) { * @return APItweetsIdRetweetingUsersRequest */ public APItweetsIdRetweetingUsersRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -2019,7 +2160,11 @@ public APItweetsIdRetweetingUsersRequest expansions(Set expansions) { * @return APItweetsIdRetweetingUsersRequest */ public APItweetsIdRetweetingUsersRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -2193,6 +2338,7 @@ private okhttp3.Call usersIdBlockAsync(BlockUserRequest blockUserRequest, String public class APIusersIdBlockRequest { private final BlockUserRequest blockUserRequest; private final String id; + private APIusersIdBlockRequest(BlockUserRequest blockUserRequest, String id) { this.blockUserRequest = blockUserRequest; @@ -2389,6 +2535,10 @@ public class APIusersIdBlockingRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIusersIdBlockingRequest(String id) { this.id = id; @@ -2420,7 +2570,11 @@ public APIusersIdBlockingRequest paginationToken(String paginationToken) { * @return APIusersIdBlockingRequest */ public APIusersIdBlockingRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -2430,7 +2584,11 @@ public APIusersIdBlockingRequest userFields(Set userFields) { * @return APIusersIdBlockingRequest */ public APIusersIdBlockingRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -2440,7 +2598,11 @@ public APIusersIdBlockingRequest expansions(Set expansions) { * @return APIusersIdBlockingRequest */ public APIusersIdBlockingRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -2609,6 +2771,7 @@ private okhttp3.Call usersIdFollowAsync(UsersFollowingCreateRequest usersFollowi public class APIusersIdFollowRequest { private final String id; private UsersFollowingCreateRequest usersFollowingCreateRequest; + private APIusersIdFollowRequest(String id) { this.id = id; @@ -2813,6 +2976,10 @@ public class APIusersIdFollowersRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIusersIdFollowersRequest(String id) { this.id = id; @@ -2844,7 +3011,11 @@ public APIusersIdFollowersRequest paginationToken(String paginationToken) { * @return APIusersIdFollowersRequest */ public APIusersIdFollowersRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -2854,7 +3025,11 @@ public APIusersIdFollowersRequest userFields(Set userFields) { * @return APIusersIdFollowersRequest */ public APIusersIdFollowersRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -2864,7 +3039,11 @@ public APIusersIdFollowersRequest expansions(Set expansions) { * @return APIusersIdFollowersRequest */ public APIusersIdFollowersRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -3057,6 +3236,10 @@ public class APIusersIdFollowingRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIusersIdFollowingRequest(String id) { this.id = id; @@ -3088,7 +3271,11 @@ public APIusersIdFollowingRequest paginationToken(String paginationToken) { * @return APIusersIdFollowingRequest */ public APIusersIdFollowingRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -3098,7 +3285,11 @@ public APIusersIdFollowingRequest userFields(Set userFields) { * @return APIusersIdFollowingRequest */ public APIusersIdFollowingRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -3108,7 +3299,11 @@ public APIusersIdFollowingRequest expansions(Set expansions) { * @return APIusersIdFollowingRequest */ public APIusersIdFollowingRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -3277,6 +3472,7 @@ private okhttp3.Call usersIdMuteAsync(MuteUserRequest muteUserRequest, String id public class APIusersIdMuteRequest { private final String id; private MuteUserRequest muteUserRequest; + private APIusersIdMuteRequest(String id) { this.id = id; @@ -3481,6 +3677,10 @@ public class APIusersIdMutingRequest { private Set userFields; private Set expansions; private Set tweetFields; + private final Set userFieldsAll = new HashSet<>(Arrays.asList("created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld")); + private final Set expansionsAll = new HashSet<>(Arrays.asList("pinned_tweet_id")); + private final Set tweetFieldsAll = new HashSet<>(Arrays.asList("attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "non_public_metrics", "organic_metrics", "possibly_sensitive", "promoted_metrics", "public_metrics", "referenced_tweets", "reply_settings", "source", "text", "withheld")); + private APIusersIdMutingRequest(String id) { this.id = id; @@ -3512,7 +3712,11 @@ public APIusersIdMutingRequest paginationToken(String paginationToken) { * @return APIusersIdMutingRequest */ public APIusersIdMutingRequest userFields(Set userFields) { - this.userFields = userFields; + if(userFields != null && userFields.size() == 1 && userFields.iterator().next().equalsIgnoreCase("ALL")) { + this.userFields = this.userFieldsAll; + } else { + this.userFields = userFields; + } return this; } @@ -3522,7 +3726,11 @@ public APIusersIdMutingRequest userFields(Set userFields) { * @return APIusersIdMutingRequest */ public APIusersIdMutingRequest expansions(Set expansions) { - this.expansions = expansions; + if(expansions != null && expansions.size() == 1 && expansions.iterator().next().equalsIgnoreCase("ALL")) { + this.expansions = this.expansionsAll; + } else { + this.expansions = expansions; + } return this; } @@ -3532,7 +3740,11 @@ public APIusersIdMutingRequest expansions(Set expansions) { * @return APIusersIdMutingRequest */ public APIusersIdMutingRequest tweetFields(Set tweetFields) { - this.tweetFields = tweetFields; + if(tweetFields != null && tweetFields.size() == 1 && tweetFields.iterator().next().equalsIgnoreCase("ALL")) { + this.tweetFields = this.tweetFieldsAll; + } else { + this.tweetFields = tweetFields; + } return this; } @@ -3707,6 +3919,7 @@ private okhttp3.Call usersIdUnblockAsync(String sourceUserId, String targetUserI public class APIusersIdUnblockRequest { private final String sourceUserId; private final String targetUserId; + private APIusersIdUnblockRequest(String sourceUserId, String targetUserId) { this.sourceUserId = sourceUserId; @@ -3885,6 +4098,7 @@ private okhttp3.Call usersIdUnfollowAsync(String sourceUserId, String targetUser public class APIusersIdUnfollowRequest { private final String sourceUserId; private final String targetUserId; + private APIusersIdUnfollowRequest(String sourceUserId, String targetUserId) { this.sourceUserId = sourceUserId; @@ -4063,6 +4277,7 @@ private okhttp3.Call usersIdUnmuteAsync(String sourceUserId, String targetUserId public class APIusersIdUnmuteRequest { private final String sourceUserId; private final String targetUserId; + private APIusersIdUnmuteRequest(String sourceUserId, String targetUserId) { this.sourceUserId = sourceUserId; diff --git a/src/main/java/com/twitter/clientlib/model/MentionEntity.java b/src/main/java/com/twitter/clientlib/model/MentionEntity.java index 1addffd..e4d5d16 100644 --- a/src/main/java/com/twitter/clientlib/model/MentionEntity.java +++ b/src/main/java/com/twitter/clientlib/model/MentionEntity.java @@ -137,8 +137,8 @@ public MentionEntity id(String id) { * Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers. * @return id **/ - @javax.annotation.Nonnull - @ApiModelProperty(example = "2244994945", required = true, value = "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.") + @javax.annotation.Nullable + @ApiModelProperty(example = "2244994945", value = "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.") public String getId() { return id; @@ -233,7 +233,6 @@ private String toIndentedString(Object o) { openapiRequiredFields = new HashSet(); openapiRequiredFields.add("end"); openapiRequiredFields.add("start"); - openapiRequiredFields.add("id"); openapiRequiredFields.add("username"); } diff --git a/src/main/java/com/twitter/clientlib/model/MentionFields.java b/src/main/java/com/twitter/clientlib/model/MentionFields.java index 4ce8907..6f3806e 100644 --- a/src/main/java/com/twitter/clientlib/model/MentionFields.java +++ b/src/main/java/com/twitter/clientlib/model/MentionFields.java @@ -80,8 +80,8 @@ public MentionFields id(String id) { * Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers. * @return id **/ - @javax.annotation.Nonnull - @ApiModelProperty(example = "2244994945", required = true, value = "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.") + @javax.annotation.Nullable + @ApiModelProperty(example = "2244994945", value = "Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.") public String getId() { return id; @@ -168,7 +168,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("id"); openapiRequiredFields.add("username"); } diff --git a/src/test/java/com/twitter/clientlib/integration/ApiBookmarksTester.java b/src/test/java/com/twitter/clientlib/integration/ApiBookmarksTester.java index aaa23f4..a06b73a 100644 --- a/src/test/java/com/twitter/clientlib/integration/ApiBookmarksTester.java +++ b/src/test/java/com/twitter/clientlib/integration/ApiBookmarksTester.java @@ -141,7 +141,7 @@ public void createDeleteTweetErrorTest() throws ApiException { apiInstance.bookmarks().postUsersIdBookmarks(req, userId).execute(); }); checkGenericProblem(exception.getErrorObject().getProblem(), - "You are not permitted to bookmark this Tweet.", "Forbidden", - 403); + "You cannot bookmark a Tweet that does not exist.", "Bad Request", + 400); } } diff --git a/src/test/java/com/twitter/clientlib/integration/ApiComplianceTester.java b/src/test/java/com/twitter/clientlib/integration/ApiComplianceTester.java new file mode 100644 index 0000000..db9ae1a --- /dev/null +++ b/src/test/java/com/twitter/clientlib/integration/ApiComplianceTester.java @@ -0,0 +1,103 @@ +/* +Copyright 2020 Twitter, Inc. +SPDX-License-Identifier: Apache-2.0 + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +https://openapi-generator.tech +Do not edit the class manually. +*/ + + +package com.twitter.clientlib.integration; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; + +import com.twitter.clientlib.ApiException; +import com.twitter.clientlib.model.*; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + + + +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +public class ApiComplianceTester extends ApiTester { + + String complianceJobByID = "1537616980307456001"; //1382081613278814209 + String complianceJobByIDNotFound = "998837616980307456099"; //1382081613278814209 + + @BeforeAll + public void init() { + initApiInstanceBearer(); + } + + public CreateComplianceJobResponse createCompliance() throws ApiException { + CreateComplianceJobRequest req = new CreateComplianceJobRequest(); + req.setType(CreateComplianceJobRequest.TypeEnum.TWEETS); + return apiInstance.compliance().createBatchComplianceJob(req) + .execute(); + } + + @Test + public void getBatchComplianceJobJobTest() throws ApiException { + String id = createCompliance().getData().getId(); + Get2ComplianceJobsIdResponse result = apiInstance.compliance().getBatchComplianceJob(id).execute(); + checkErrors(false, result.getErrors()); + checkComplianceJobData(result.getData()); + } + + @Test + public void getBatchComplianceJobErrorTest() throws ApiException { + ApiException exception = assertThrows(ApiException.class, () -> { + Get2ComplianceJobsIdResponse result = apiInstance.compliance().getBatchComplianceJob(complianceJobByIDNotFound).execute(); + }); + checkApiExceptionProblem(exception, InvalidRequestProblem.class, + "The `id` query parameter value [" + complianceJobByIDNotFound + "] does not match ^[0-9]{1,19}$", + "Invalid Request", "One or more parameters to your request was invalid."); + } + +// ComplianceJobStatus should have "expired value +// @Test +// public void listBatchComplianceJobsTest() throws ApiException { +// Get2ComplianceJobsResponse result = apiInstance.compliance().listBatchComplianceJobs( +// CreateComplianceJobRequest.TypeEnum.TWEETS.getValue()).execute(); +// checkErrors(false, result.getErrors()); +// assertNotNull(result.getData()); +// checkComplianceJobData(result.getData().get(0)); +// } + + @Test + public void listBatchComplianceJobsErrorTest() throws ApiException { + ApiException exception = assertThrows(ApiException.class, () -> { + apiInstance.compliance().listBatchComplianceJobs("DUMMY").execute(); + }); + checkApiExceptionProblem(exception, InvalidRequestProblem.class, + "The `type` query parameter value [" + "DUMMY" + "] is not one of [tweets,users]", + "Invalid Request", "One or more parameters to your request was invalid."); + } + + @Test + public void createBatchComplianceJobTest() throws ApiException { + CreateComplianceJobResponse result = createCompliance(); + checkErrors(false, result.getErrors()); + assertNotNull(result.getData()); + assertNotNull(result.getData().getId()); + assertNotNull(result.getData().getType()); + } +} diff --git a/src/test/java/com/twitter/clientlib/integration/ApiListsTester.java b/src/test/java/com/twitter/clientlib/integration/ApiListsTester.java index 522895d..dd2cb55 100644 --- a/src/test/java/com/twitter/clientlib/integration/ApiListsTester.java +++ b/src/test/java/com/twitter/clientlib/integration/ApiListsTester.java @@ -36,6 +36,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -577,12 +578,14 @@ public void listUserFollowUserNotExistsTest() throws ApiException { @Test public void listUserPinTest() throws ApiException { + listUserFollowTest(); ListPinnedRequest request = new ListPinnedRequest(); request.setListId(listId); ListPinnedResponse result = apiInstance.lists().listUserPin(request, userId).execute(); checkErrors(false, result.getErrors()); assertNotNull(result.getData()); assertTrue(result.getData().getPinned()); + listUserUnfollowTest(); } @Test @@ -634,4 +637,58 @@ public void listUserUnpinUserNotFoundTest() throws ApiException { "The `id` query parameter value [" + userNotExists + "] must be the same as the authenticating user", "Invalid Request", "One or more parameters to your request was invalid."); } + + @Test + public void listUserPinnedListsTest() throws ApiException { + Get2UsersIdPinnedListsResponse result = apiInstance.lists().listUserPinnedLists(userId) + .userFields(userFields) + .listFields(listFields) + .execute(); + checkErrors(false, result.getErrors()); + assertNotNull(result.getData()); + checkModelListData(result.getData().get(0)); + assertNull(result.getIncludes()); + } + + @Test + public void listUserPinnedListsErrorTest() throws ApiException { + ApiException exception = assertThrows(ApiException.class, () -> { + apiInstance.lists().listUserPinnedLists(userNotExists) + .userFields(userFields) + .listFields(listFields) + .execute(); + }); + checkApiExceptionProblem(exception, InvalidRequestProblem.class, + "The `id` query parameter value [" + userNotExists + "] must be the same as the authenticating user", + "Invalid Request", "One or more parameters to your request was invalid."); + } + + @Test + public void listUserUnfollowTest() throws ApiException { + ListFollowedResponse result = apiInstance.lists().listUserUnfollow(userId, listId) + .execute(); + checkErrors(false, result.getErrors()); + assertNotNull(result.getData()); + assertNotEquals(Boolean.TRUE, result.getData().getFollowing()); + } + + @Test + public void listUserUnfollowUserNotFoundTest() throws ApiException { + ApiException exception = assertThrows(ApiException.class, () -> { + apiInstance.lists().listUserUnfollow(userNotExists, listId) + .execute(); + }); + checkApiExceptionProblem(exception, InvalidRequestProblem.class, + "The `id` query parameter value [" + userNotExists + "] must be the same as the authenticating user", + "Invalid Request", "One or more parameters to your request was invalid."); + } + + @Test + public void listUserUnfollowListNotFoundTest() throws ApiException { + ListFollowedResponse result = apiInstance.lists().listUserUnfollow(userId, listIdNotFound) + .execute(); + checkErrors(false, result.getErrors()); + assertNotNull(result.getData()); + assertFalse(result.getData().getFollowing()); + } } diff --git a/src/test/java/com/twitter/clientlib/integration/ApiTester.java b/src/test/java/com/twitter/clientlib/integration/ApiTester.java index 34ff3a3..d09e591 100644 --- a/src/test/java/com/twitter/clientlib/integration/ApiTester.java +++ b/src/test/java/com/twitter/clientlib/integration/ApiTester.java @@ -34,16 +34,7 @@ import com.twitter.clientlib.TwitterCredentialsBearer; import com.twitter.clientlib.TwitterCredentialsOAuth2; import com.twitter.clientlib.api.TwitterApi; -import com.twitter.clientlib.model.DuplicateRuleProblem; -import com.twitter.clientlib.model.Expansions; -import com.twitter.clientlib.model.GenericProblem; -import com.twitter.clientlib.model.InvalidRequestProblem; -import com.twitter.clientlib.model.ModelList; -import com.twitter.clientlib.model.Problem; -import com.twitter.clientlib.model.ResourceNotFoundProblem; -import com.twitter.clientlib.model.Space; -import com.twitter.clientlib.model.Tweet; -import com.twitter.clientlib.model.User; +import com.twitter.clientlib.model.*; @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") @@ -65,6 +56,8 @@ abstract public class ApiTester { protected final String userNotExists = "9999999999999"; protected final List usersIds = Arrays.asList(popularUserId); protected final List usersIdsNotFound = Arrays.asList(userNotExists); + protected final Set allFields = new HashSet<>(Arrays.asList("ALL")); + protected final Set allFieldsError = new HashSet<>(Arrays.asList("ALL", "id", "created_at")); protected void initApiInstance() { apiInstance = new TwitterApi(new TwitterCredentialsOAuth2(System.getenv("TWITTER_OAUTH2_CLIENT_ID"), @@ -138,6 +131,20 @@ protected void checkListData(ModelList list) { Assertions.assertNotNull(list.getFollowerCount()); } + protected void checkComplianceJobData(ComplianceJob complianceJob) { + Assertions.assertNotNull(complianceJob); + Assertions.assertNotNull(complianceJob.getType()); + Assertions.assertNotNull(complianceJob.getId()); + Assertions.assertNotNull(complianceJob.getCreatedAt()); + } + + protected void checkModelListData(ModelList modelList) { + Assertions.assertNotNull(modelList); + Assertions.assertNotNull(modelList.getName()); + Assertions.assertNotNull(modelList.getId()); + Assertions.assertNotNull(modelList.getCreatedAt()); + } + protected void checkResourceNotFoundProblem( Problem problem, String value, String title, String parameter ) { diff --git a/src/test/java/com/twitter/clientlib/integration/ApiTweetTester.java b/src/test/java/com/twitter/clientlib/integration/ApiTweetTester.java index 1e5d814..789015c 100644 --- a/src/test/java/com/twitter/clientlib/integration/ApiTweetTester.java +++ b/src/test/java/com/twitter/clientlib/integration/ApiTweetTester.java @@ -24,6 +24,7 @@ import java.util.Arrays; import java.util.List; +import java.util.HashSet; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -79,6 +80,45 @@ public void findTweetByIdErrorTest() throws ApiException { "id"); } + @Test + public void findTweetByIdAllTest() throws ApiException { + Get2TweetsIdResponse result = apiInstance.tweets().findTweetById(tweetId) + .tweetFields(tweetFields) + .expansions(allFields) + .userFields(allFields) + .execute(); + checkErrors(false, result.getErrors()); + checkTweetData(result.getData()); + checkTweetIncludes(result.getIncludes()); + checkUserData(result.getIncludes().getUsers().get(0)); + } + + @Test + public void findTweetByIdAllIgnoreCaseTest() throws ApiException { + Get2TweetsIdResponse result = apiInstance.tweets().findTweetById(tweetId) + .tweetFields(tweetFields) + .expansions(new HashSet<>(Arrays.asList("All"))) + .userFields(new HashSet<>(Arrays.asList("aLL"))) + .execute(); + checkErrors(false, result.getErrors()); + checkTweetData(result.getData()); + checkTweetIncludes(result.getIncludes()); + checkUserData(result.getIncludes().getUsers().get(0)); + } + + @Test + public void findTweetByIdAllErrorTest() throws ApiException { + ApiException exception = assertThrows(ApiException.class, () -> { + apiInstance.tweets().findTweetById(tweetId) + .tweetFields(tweetFields) + .expansions(allFieldsError) + .userFields(allFields) + .execute(); + }); + checkApiExceptionProblem(exception, InvalidRequestProblem.class, "The `expansions` query parameter value [ALL] is not one of", + "Invalid Request", "One or more parameters to your request was invalid."); + } + @Test public void findTweetsByIdTest() throws ApiException { Get2TweetsResponse result = apiInstance.tweets().findTweetsById(tweetIds) @@ -402,6 +442,31 @@ public void usersIdLikeUserNotFoundTest() throws ApiException { "Invalid Request", "One or more parameters to your request was invalid."); } + @Test + public void usersIdTimelineTest() throws ApiException { + Get2UsersIdTimelinesReverseChronologicalResponse result = apiInstance.tweets().usersIdTimeline(userId) + .userFields(userFields) + .tweetFields(tweetFields) + .execute(); + checkErrors(false, result.getErrors()); + assertNotNull(result.getData()); + checkTweetData(result.getData().get(0)); + assertNull(result.getIncludes()); + } + + @Test + public void usersIdTimelineErrorTest() throws ApiException { + ApiException exception = assertThrows(ApiException.class, () -> { + apiInstance.tweets().usersIdTimeline(userNotExists) + .userFields(userFields) + .tweetFields(tweetFields) + .execute(); + }); + checkApiExceptionProblem(exception, InvalidRequestProblem.class, + "The `id` query parameter value [" + userNotExists + "] must be the same as the authenticating user [" + userId + "]", + "Invalid Request", "One or more parameters to your request was invalid."); + } + /* Does not work for now Streaming */ diff --git a/src/test/java/com/twitter/clientlib/integration/ApiUserTester.java b/src/test/java/com/twitter/clientlib/integration/ApiUserTester.java index acbc706..834c180 100644 --- a/src/test/java/com/twitter/clientlib/integration/ApiUserTester.java +++ b/src/test/java/com/twitter/clientlib/integration/ApiUserTester.java @@ -45,6 +45,8 @@ public class ApiUserTester extends ApiTester { private final String popularUsername = "TheRock"; private final String usernameNotFound = "cprttfdgq"; + private final String listId = "84839422"; + private final String listIdNotFound = "11111112"; private final List usernames = Arrays.asList(popularUsername); private final List usernamesNotFounds = Arrays.asList(usernameNotFound); @@ -459,4 +461,27 @@ public void usersIdUnmuteMutingNotFoundTest() throws ApiException { "The `source_user_id` query parameter value [" + userNotExists + "] must be the same as the authenticating user", "Invalid Request", "One or more parameters to your request was invalid."); } + + @Test + public void listGetFollowersTest() throws ApiException { + Get2ListsIdFollowersResponse result = apiInstance.users().listGetFollowers(listId) + .userFields(userFields) + .tweetFields(tweetFields) + .execute(); + checkErrors(false, result.getErrors()); + assertNotNull(result.getData()); + checkUserData(result.getData().get(0)); + assertNull(result.getIncludes()); + } + + @Test + public void listGetFollowersErrorTest() throws ApiException { + Get2ListsIdFollowersResponse result = apiInstance.users().listGetFollowers(listIdNotFound) + .userFields(userFields) + .tweetFields(tweetFields) + .execute(); + checkErrors(true, result.getErrors()); + assertNull(result.getData()); + checkResourceNotFoundProblem(result.getErrors().get(0), listIdNotFound, "Not Found Error", "id"); + } }