Skip to content

Commit b4db308

Browse files
committed
v3.2.0-SNAPSHOT
Refactored to use com.amilesend:okhttp-client-extensions:1.0
1 parent 85ed6c2 commit b4db308

67 files changed

Lines changed: 185 additions & 1549 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ requires these APIs.
8585
<dependency>
8686
<groupId>com.amilesend</groupId>
8787
<artifactId>tmdb-java-client</artifactId>
88-
<version>3.1.1</version>
88+
<version>3.2</version>
8989
</dependency>
9090
```
9191
3. Instantiate the client with the read access token:

pom.xml

Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
<groupId>com.amilesend</groupId>
2727
<artifactId>tmdb-java-client</artifactId>
28-
<version>3.1.2-SNAPSHOT</version>
28+
<version>3.2.0-SNAPSHOT</version>
2929

3030
<name>tmdb-java-client</name>
3131
<description>A client to access the TMDB API</description>
@@ -159,62 +159,24 @@
159159
<artifactId>slf4j-api</artifactId>
160160
<version>${slf4j.version}</version>
161161
</dependency>
162-
<dependency>
163-
<groupId>org.slf4j</groupId>
164-
<artifactId>slf4j-simple</artifactId>
165-
<version>${slf4j.version}</version>
166-
<scope>test</scope>
167-
</dependency>
168162
<!-- JSON -->
169-
<dependency>
170-
<groupId>com.google.code.gson</groupId>
171-
<artifactId>gson</artifactId>
172-
<version>2.13.1</version>
173-
</dependency>
174163
<dependency>
175164
<groupId>io.gsonfire</groupId>
176165
<artifactId>gson-fire</artifactId>
177166
<version>1.9.0</version>
178167
</dependency>
179-
<!-- Guava -->
180-
<dependency>
181-
<groupId>com.google.guava</groupId>
182-
<artifactId>guava</artifactId>
183-
<version>33.4.8-jre</version>
184-
</dependency>
185-
<!-- Apache Commons -->
186-
<dependency>
187-
<groupId>org.apache.commons</groupId>
188-
<artifactId>commons-lang3</artifactId>
189-
<version>3.17.0</version>
190-
</dependency>
191-
<dependency>
192-
<groupId>org.apache.commons</groupId>
193-
<artifactId>commons-collections4</artifactId>
194-
<version>4.5.0</version>
195-
</dependency>
196168
<!-- HttpClient -->
197169
<dependency>
198-
<groupId>com.squareup.okhttp3</groupId>
199-
<artifactId>okhttp</artifactId>
200-
<version>${okhttp.version}</version>
201-
</dependency>
202-
<dependency>
203-
<groupId>com.squareup.okhttp3</groupId>
204-
<artifactId>okhttp-jvm</artifactId>
205-
<version>${okhttp.version}</version>
170+
<groupId>com.amilesend</groupId>
171+
<artifactId>okhttp-client-extensions</artifactId>
172+
<version>1.0</version>
206173
</dependency>
207174
<dependency>
208175
<groupId>com.squareup.okhttp3</groupId>
209176
<artifactId>mockwebserver3-junit5</artifactId>
210177
<version>${okhttp.version}</version>
211178
<scope>test</scope>
212179
</dependency>
213-
<dependency>
214-
<groupId>com.squareup.okio</groupId>
215-
<artifactId>okio</artifactId>
216-
<version>3.15.0</version>
217-
</dependency>
218180
</dependencies>
219181

220182
<build>

src/main/java/com/amilesend/tmdb/client/Tmdb.java

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
*/
1818
package com.amilesend.tmdb.client;
1919

20+
import com.amilesend.client.connection.Connection;
21+
import com.amilesend.client.connection.DefaultConnectionBuilder;
2022
import com.amilesend.tmdb.client.api.AccountApi;
2123
import com.amilesend.tmdb.client.api.AuthenticationApi;
2224
import com.amilesend.tmdb.client.api.CertificationsApi;
@@ -45,15 +47,21 @@
4547
import com.amilesend.tmdb.client.api.TvSeriesApi;
4648
import com.amilesend.tmdb.client.api.TvSeriesListsApi;
4749
import com.amilesend.tmdb.client.api.WatchProvidersApi;
48-
import com.amilesend.tmdb.client.connection.Connection;
50+
import com.amilesend.tmdb.client.connection.auth.TokenAuthInfo;
51+
import com.amilesend.tmdb.client.connection.auth.TokenAuthManager;
52+
import com.amilesend.tmdb.client.parse.GsonFactory;
4953
import lombok.Getter;
54+
import okhttp3.OkHttpClient;
5055

5156
/**
5257
* A helper class to vend API classes that are associated with a {@link Connection} to TMDB service.
5358
*
5459
* @see Connection
5560
*/
5661
public class Tmdb {
62+
public static final String API_URL = "https://api.themoviedb.org/3";
63+
public static final String USER_AGENT = "TMDBJavaClient/3.2";
64+
5765
@Getter
5866
private final Connection connection;
5967

@@ -63,7 +71,25 @@ public class Tmdb {
6371
* @param readAccessToken the authenticated read access token
6472
*/
6573
public Tmdb(final String readAccessToken) {
66-
connection = Connection.newDefaultInstance(readAccessToken);
74+
this(readAccessToken, USER_AGENT);
75+
}
76+
77+
/**
78+
* Creates a new {@code Tmdb} object that is configured with the default settings.
79+
*
80+
* @param readAccessToken the authenticated read access token
81+
* @param userAgent the user agent to define in requests made to the service
82+
*/
83+
public Tmdb(final String readAccessToken, final String userAgent) {
84+
final TokenAuthInfo authInfo = new TokenAuthInfo(readAccessToken);
85+
connection = new DefaultConnectionBuilder()
86+
.userAgent(userAgent)
87+
.baseUrl(API_URL)
88+
.httpClient(new OkHttpClient.Builder().build())
89+
.authManager(new TokenAuthManager(authInfo))
90+
.gsonFactory(new GsonFactory())
91+
.isGzipContentEncodingEnabled(false)
92+
.build();
6793
}
6894

6995
/**

src/main/java/com/amilesend/tmdb/client/api/AccountApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818
package com.amilesend.tmdb.client.api;
1919

20-
import com.amilesend.tmdb.client.connection.Connection;
20+
import com.amilesend.client.connection.Connection;
2121
import com.amilesend.tmdb.client.model.acount.AddFavoriteRequest;
2222
import com.amilesend.tmdb.client.model.acount.AddFavoriteResponse;
2323
import com.amilesend.tmdb.client.model.acount.AddWatchlistRequest;

src/main/java/com/amilesend/tmdb/client/api/ApiBase.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@
1717
*/
1818
package com.amilesend.tmdb.client.api;
1919

20-
import com.amilesend.tmdb.client.connection.Connection;
20+
import com.amilesend.client.connection.Connection;
21+
import com.amilesend.client.parse.parser.BasicParser;
2122
import com.amilesend.tmdb.client.model.BodyBasedRequest;
2223
import com.amilesend.tmdb.client.model.QueryParameterBasedRequest;
23-
import com.amilesend.tmdb.client.parse.parser.BasicParser;
24+
import com.amilesend.tmdb.client.parse.GsonFactory;
2425
import lombok.Getter;
2526
import lombok.NonNull;
2627
import lombok.RequiredArgsConstructor;
@@ -29,7 +30,7 @@
2930
import okhttp3.RequestBody;
3031
import org.apache.commons.lang3.Validate;
3132

32-
import static com.amilesend.tmdb.client.connection.Connection.JSON_MEDIA_TYPE;
33+
import static com.amilesend.client.connection.Connection.JSON_MEDIA_TYPE;
3334

3435
/**
3536
* The API Base class used to simplify the construction of API URLs for the {@link Connection}.
@@ -41,7 +42,7 @@ public abstract class ApiBase {
4142
/** The connection that wraps the underlying HTTP client. */
4243
@NonNull
4344
@Getter
44-
private final Connection connection;
45+
private final Connection<GsonFactory> connection;
4546

4647
/**
4748
* Executes a GET request for the given URL path and expected response type class.
@@ -109,7 +110,9 @@ protected <T> T executePost(
109110
final HttpUrl.Builder urlBuilder = HttpUrl.parse(urlPath).newBuilder();
110111
final Request httpRequest = connection.newRequestBuilder()
111112
.url(request.populateQueryParameters(urlBuilder).build())
112-
.post(RequestBody.create(connection.getGson().toJson(request), JSON_MEDIA_TYPE))
113+
.post(RequestBody.create(
114+
connection.getGsonFactory().getInstance(connection).toJson(request),
115+
JSON_MEDIA_TYPE))
113116
.build();
114117
return connection.execute(httpRequest, new BasicParser<>(responseType));
115118
}
@@ -135,7 +138,9 @@ protected <T> T executeDelete(
135138

136139
final Request.Builder requestBuilder = connection.newRequestBuilder().url(httpUrl);
137140
if (request instanceof BodyBasedRequest) {
138-
requestBuilder.delete(RequestBody.create(connection.getGson().toJson(request), JSON_MEDIA_TYPE));
141+
requestBuilder.delete(RequestBody.create(
142+
connection.getGsonFactory().getInstance(connection).toJson(request),
143+
JSON_MEDIA_TYPE));
139144
} else {
140145
requestBuilder.delete();
141146
}

src/main/java/com/amilesend/tmdb/client/api/AuthenticationApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818
package com.amilesend.tmdb.client.api;
1919

20-
import com.amilesend.tmdb.client.connection.Connection;
20+
import com.amilesend.client.connection.Connection;
2121
import com.amilesend.tmdb.client.model.auth.CreateGuestSessionResponse;
2222
import com.amilesend.tmdb.client.model.auth.CreateRequestTokenResponse;
2323
import com.amilesend.tmdb.client.model.auth.CreateSessionRequest;

src/main/java/com/amilesend/tmdb/client/api/CertificationsApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818
package com.amilesend.tmdb.client.api;
1919

20-
import com.amilesend.tmdb.client.connection.Connection;
20+
import com.amilesend.client.connection.Connection;
2121
import com.amilesend.tmdb.client.model.certification.GetMovieCertificationsResponse;
2222
import com.amilesend.tmdb.client.model.certification.GetTVCertificationsResponse;
2323

src/main/java/com/amilesend/tmdb/client/api/ChangesApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818
package com.amilesend.tmdb.client.api;
1919

20-
import com.amilesend.tmdb.client.connection.Connection;
20+
import com.amilesend.client.connection.Connection;
2121
import com.amilesend.tmdb.client.model.change.GetMovieChangesRequest;
2222
import com.amilesend.tmdb.client.model.change.GetMovieChangesResponse;
2323
import com.amilesend.tmdb.client.model.change.GetPersonChangesRequest;

src/main/java/com/amilesend/tmdb/client/api/CollectionsApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818
package com.amilesend.tmdb.client.api;
1919

20-
import com.amilesend.tmdb.client.connection.Connection;
20+
import com.amilesend.client.connection.Connection;
2121
import com.amilesend.tmdb.client.model.collection.GetCollectionDetailsRequest;
2222
import com.amilesend.tmdb.client.model.collection.GetCollectionDetailsResponse;
2323
import com.amilesend.tmdb.client.model.collection.GetCollectionImagesRequest;

src/main/java/com/amilesend/tmdb/client/api/CompaniesApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818
package com.amilesend.tmdb.client.api;
1919

20-
import com.amilesend.tmdb.client.connection.Connection;
20+
import com.amilesend.client.connection.Connection;
2121
import com.amilesend.tmdb.client.model.company.GetAlternativeNamesRequest;
2222
import com.amilesend.tmdb.client.model.company.GetAlternativeNamesResponse;
2323
import com.amilesend.tmdb.client.model.company.GetCompanyDetailsRequest;

0 commit comments

Comments
 (0)