Skip to content

Commit ae9fd94

Browse files
committed
Deprecate old APIv1 stuff, clean up
1 parent 4a195be commit ae9fd94

13 files changed

+91
-63
lines changed

src/main/java/com/creatubbles/api/CreatubblesAPI.java

Lines changed: 13 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package com.creatubbles.api;
22

3+
import java.io.File;
4+
import java.io.IOException;
5+
import java.nio.file.Files;
6+
7+
import org.glassfish.jersey.client.ClientProperties;
8+
import org.glassfish.jersey.client.JerseyClient;
9+
import org.glassfish.jersey.client.JerseyClientBuilder;
10+
311
import com.creatubbles.api.core.Gallery;
412
import com.creatubbles.api.request.amazon.UploadS3ImageRequest;
5-
import com.creatubbles.api.request.auth.OAuthAccessTokenRequest;
613
import com.creatubbles.api.request.creation.CreateCreationRequest;
714
import com.creatubbles.api.request.creation.CreationsUploadsRequest;
8-
import com.creatubbles.api.request.creation.GetCreationsRequest;
915
import com.creatubbles.api.request.creation.PingCreationsUploadsRequest;
10-
import com.creatubbles.api.request.creator.GetCreatorsRequest;
11-
import com.creatubbles.api.request.user.UserProfileRequest;
12-
import com.creatubbles.api.response.auth.OAuthAccessTokenResponse;
1316
import com.creatubbles.api.response.auth.SignUpResponse;
1417
import com.creatubbles.api.response.creation.CreateCreationResponse;
1518
import com.creatubbles.api.response.creation.CreationsUploadsResponse;
@@ -19,17 +22,12 @@
1922
import com.creatubbles.api.response.gallery.CreateUserGalleryResponse;
2023
import com.creatubbles.api.response.user.UserProfileResponse;
2124
import com.creatubbles.api.util.EndPoints;
25+
import com.creatubbles.test.request.AuthTests;
2226
import com.google.gson.Gson;
2327
import com.google.gson.GsonBuilder;
24-
import org.glassfish.jersey.client.ClientProperties;
25-
import org.glassfish.jersey.client.JerseyClient;
26-
import org.glassfish.jersey.client.JerseyClientBuilder;
27-
28-
import java.io.File;
29-
import java.io.IOException;
30-
import java.nio.file.Files;
3128

3229

30+
@SuppressWarnings("deprecation")
3331
public class CreatubblesAPI {
3432
public final static Gson GSON = new GsonBuilder()
3533
.registerTypeAdapter(SignUpResponse.class, new SignUpResponse())
@@ -62,23 +60,10 @@ public static void setStagingMode(boolean staging) {
6260
}
6361

6462
public static void main(String[] args) throws IOException {
63+
// Additional examples can be found in the JUnit test files
64+
6565
CreatubblesAPI.setStagingMode(true);
66-
OAuthAccessTokenRequest request = new OAuthAccessTokenRequest("[email protected]", "ccttbb");
67-
OAuthAccessTokenResponse response = request.execute().getResponse();
68-
String accessToken = response.access_token;
69-
System.out.println(accessToken);
70-
71-
UserProfileRequest userProfileRequest = new UserProfileRequest(accessToken);
72-
UserProfileResponse userProfileResponse = userProfileRequest.execute().getResponse();
73-
System.out.println(userProfileResponse.user.id);
74-
75-
GetCreatorsRequest getCreators = new GetCreatorsRequest(userProfileResponse.user.id, accessToken);
76-
GetCreatorsResponse getCreatorsResponse = getCreators.execute().getResponse();
77-
System.out.println(getCreatorsResponse.creators != null);
78-
79-
GetCreationsRequest getCreations = new GetCreationsRequest(userProfileResponse.user.id, accessToken);
80-
GetCreationsResponse getCreationsResponse = getCreations.execute().getResponse();
81-
System.out.println(getCreationsResponse.total_count);
66+
String accessToken = AuthTests.getAuthToken();
8267

8368
CreateCreationRequest createCreation = new CreateCreationRequest(accessToken);
8469
CreateCreationResponse createCreationResponse = createCreation.execute().getResponse();

src/main/java/com/creatubbles/api/core/Creation.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ public class Creation {
66
public int created_at_month, created_at_year, comments_count, bubble_count, views_count;
77
public String last_bubbled_at, last_commented_at, last_submitted_at;
88
public Image image;
9-
public Creator[] creators;
109
public String store_dir;
1110
public String url;
1211
}

src/main/java/com/creatubbles/api/core/Creator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.List;
44

5+
@Deprecated
56
public class Creator {
67
public String id;
78
public String name, created_at, avatar_url;

src/main/java/com/creatubbles/api/core/CreatubblesRequest.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,21 @@
22

33
import com.creatubbles.api.CreatubblesAPI;
44
import com.creatubbles.api.util.HttpMethod;
5+
import com.google.gson.JsonSyntaxException;
6+
57
import org.glassfish.jersey.client.JerseyWebTarget;
68

79
import javax.ws.rs.client.Entity;
810
import javax.ws.rs.client.Invocation;
911
import javax.ws.rs.core.Response;
12+
1013
import java.util.HashMap;
1114
import java.util.Map;
1215
import java.util.concurrent.ExecutionException;
1316
import java.util.concurrent.Future;
1417

18+
import jersey.repackaged.com.google.common.base.Throwables;
19+
1520
public abstract class CreatubblesRequest<T extends CreatubblesResponse> {
1621
private String endPoint, acceptLanguage, data;
1722
private String xSource = "mc-mod";
@@ -136,7 +141,7 @@ public void cancelRequest() {
136141
}
137142

138143
public Response getRawResponse() {
139-
if (response == null && futureResponse.isDone()) {
144+
if (response == null && futureResponse != null && futureResponse.isDone()) {
140145
try {
141146
response = futureResponse.get();
142147
} catch (InterruptedException e) {
@@ -158,8 +163,21 @@ public T getResponse() {
158163
if (isSuccessStatus(response) && json.isEmpty()) {
159164
json = EMPTY_RESPONSE;
160165
}
161-
T creatubblesResponse = CreatubblesAPI.GSON.fromJson(json, responseClass);
162-
creatubblesResponse.setOriginatingRequest(this);
166+
T creatubblesResponse = null;
167+
try {
168+
creatubblesResponse = CreatubblesAPI.GSON.fromJson(json, responseClass);
169+
} catch (JsonSyntaxException e) { // protect against invalid API returns (for now)
170+
e.printStackTrace();
171+
}
172+
if (creatubblesResponse == null) {
173+
try {
174+
creatubblesResponse = responseClass.newInstance();
175+
} catch (Exception e) {
176+
Throwables.propagate(e);
177+
}
178+
} else {
179+
creatubblesResponse.setOriginatingRequest(this);
180+
}
163181
responseCache = creatubblesResponse;
164182
}
165183
}
Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
package com.creatubbles.api.core;
22

3-
import java.util.List;
3+
import java.util.Map;
44

55
public class Image {
6-
public String url;
7-
public Links links;
8-
public List<Creator> creators;
9-
public String store_dir;
106

11-
public class Links {
12-
public String full_view, list_view_retina, list_view, matrix_view_retina, matrix_view, gallery_mobile, explore_mobile, share;
7+
public Map<ImageType, String> links;
8+
9+
public enum ImageType {
10+
full_view,
11+
list_view_retina,
12+
list_view,
13+
matrix_view_retina,
14+
matrix_view,
15+
gallery_mobile,
16+
explore_mobile,
17+
share;
1318
}
1419
}

src/main/java/com/creatubbles/api/request/creation/CreateCreationRequest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
@APIVersion(2)
1010
public class CreateCreationRequest extends CreatubblesRequest<CreateCreationResponse> {
1111

12-
1312
public CreateCreationRequest(String accessToken) {
1413
super(EndPoints.CREATIONS, HttpMethod.POST, accessToken);
1514
}

src/main/java/com/creatubbles/api/request/creator/CreateCreatorRequest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package com.creatubbles.api.request.creator;
22

3-
import com.creatubbles.api.CreatubblesAPI;
43
import com.creatubbles.api.APIVersion;
4+
import com.creatubbles.api.CreatubblesAPI;
55
import com.creatubbles.api.core.Creator;
66
import com.creatubbles.api.core.CreatubblesRequest;
77
import com.creatubbles.api.response.creator.CreateCreatorResponse;
88
import com.creatubbles.api.util.EndPoints;
99
import com.creatubbles.api.util.HttpMethod;
1010

1111
@APIVersion(1)
12+
@Deprecated
1213
public class CreateCreatorRequest extends CreatubblesRequest<CreateCreatorResponse> {
1314

1415
public CreateCreatorRequest(String accessToken, Creator creator) {

src/main/java/com/creatubbles/api/request/creator/GetCreatorsRequest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ public GetCreatorsRequest(String userId, String token) {
1414
setUrlParameter(Params.user_id.name(), userId);
1515
}
1616

17-
1817
@Override
1918
public Class<? extends GetCreatorsResponse> getResponseClass() {
2019
return GetCreatorsResponse.class;

src/main/java/com/creatubbles/api/request/creator/UsersCreatorsRequest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.creatubbles.api.util.HttpMethod;
88

99
@APIVersion(1)
10+
@Deprecated
1011
public class UsersCreatorsRequest extends CreatubblesRequest<UsersCreatorsResponse> {
1112

1213
public UsersCreatorsRequest() {

src/main/java/com/creatubbles/api/response/creation/GetCreationsResponse.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
package com.creatubbles.api.response.creation;
22

3+
import java.lang.reflect.Type;
4+
import java.util.List;
5+
6+
import jersey.repackaged.com.google.common.collect.Lists;
7+
38
import com.creatubbles.api.APIVersion;
49
import com.creatubbles.api.CreatubblesAPI;
510
import com.creatubbles.api.core.Creation;
611
import com.creatubbles.api.core.CreatubblesResponse;
7-
import com.google.gson.*;
8-
9-
import java.lang.reflect.Type;
10-
import java.util.ArrayList;
11-
import java.util.List;
12+
import com.google.gson.JsonArray;
13+
import com.google.gson.JsonDeserializationContext;
14+
import com.google.gson.JsonDeserializer;
15+
import com.google.gson.JsonElement;
16+
import com.google.gson.JsonObject;
17+
import com.google.gson.JsonParseException;
1218

1319
@APIVersion(2)
1420
public class GetCreationsResponse extends CreatubblesResponse implements JsonDeserializer<GetCreationsResponse> {
1521
public int total_pages, total_count;
16-
public List<Creation> creations = new ArrayList<Creation>();
22+
public List<Creation> creations;
1723

1824
@Override
1925
public GetCreationsResponse deserialize(JsonElement jsonElement, Type typeOfT, JsonDeserializationContext context) throws
@@ -29,6 +35,7 @@ public GetCreationsResponse deserialize(JsonElement jsonElement, Type typeOfT, J
2935
private void deserializeData(JsonObject jsonObject) {
3036
JsonArray data = jsonObject.getAsJsonArray("data");
3137
if (data != null) {
38+
creations = Lists.newArrayList();
3239
for (int i = 0; i < data.size(); i++) {
3340
JsonElement elem = data.get(i);
3441
if (!elem.isJsonPrimitive()) {

0 commit comments

Comments
 (0)