Skip to content

Commit 7763727

Browse files
committed
Set a back reference in the CreatubblesResponse object to the originating CreatubblesRequest object (for checking response codes, etc)
1 parent 2028ad3 commit 7763727

14 files changed

Lines changed: 262 additions & 30 deletions

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

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ public CreatubblesRequest(String endPoint, HttpMethod httpMethod, String accessT
4545
}
4646
}
4747

48+
public CreatubblesRequest setAccessToken(String accessToken) {
49+
this.urlParameters.put("access_token", accessToken);
50+
return this;
51+
}
52+
4853
public String getEndPoint() {
4954
return endPoint;
5055
}
@@ -112,6 +117,13 @@ public boolean isDone() {
112117
return ((response != null) || (futureResponse != null && futureResponse.isDone()));
113118
}
114119

120+
public boolean wasSuccessful() {
121+
if (isDone()) {
122+
return getRawResponse().getStatus() == 200;
123+
}
124+
return false;
125+
}
126+
115127
public void cancelRequest() {
116128
if (futureResponse != null & !futureResponse.isDone()) {
117129
futureResponse.cancel(true);
@@ -136,7 +148,9 @@ public T getResponse() {
136148
Response response = getRawResponse();
137149
Class<? extends T> responseClass = getResponseClass();
138150
if (response != null && responseClass != null) {
139-
return CreatubblesAPI.GSON.fromJson(response.readEntity(String.class), responseClass);
151+
T creatubblesResponse = CreatubblesAPI.GSON.fromJson(response.readEntity(String.class), responseClass);
152+
creatubblesResponse.setOriginatingRequest(this);
153+
return creatubblesResponse;
140154
}
141155

142156
return null;

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,13 @@
22

33
public abstract class CreatubblesResponse {
44
public String message;
5+
private CreatubblesRequest originatingRequest;
6+
7+
public final CreatubblesRequest getOriginalRequest() {
8+
return originatingRequest;
9+
}
10+
11+
public void setOriginatingRequest(CreatubblesRequest originatingRequest) {
12+
this.originatingRequest = originatingRequest;
13+
}
514
}

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

Lines changed: 0 additions & 26 deletions
This file was deleted.
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
package com.creatubbles.api.request.creation;
2+
3+
import com.creatubbles.api.core.CreatubblesRequest;
4+
import com.creatubbles.api.core.CreatubblesResponse;
5+
import com.creatubbles.api.response.creation.GetCreationsResponse;
6+
import com.creatubbles.api.util.EndPoints;
7+
import com.creatubbles.api.util.HttpMethod;
8+
9+
public class GetCreationsRequest extends CreatubblesRequest {
10+
11+
public GetCreationsRequest() {
12+
super(EndPoints.CREATIONS, HttpMethod.GET);
13+
}
14+
15+
public GetCreationsRequest(String id) {
16+
super(String.format(EndPoints.CREATORS_CREATIONS, id), HttpMethod.GET);
17+
}
18+
19+
public GetCreationsRequest(String id, String accessToken) {
20+
super(String.format(EndPoints.CREATORS_CREATIONS, id), HttpMethod.GET, accessToken);
21+
}
22+
23+
public String getCreatorIdParam() {
24+
return getUrlParameters().get("creator_id");
25+
}
26+
27+
public GetCreationsRequest setCreatorIdParam(boolean creatorId) {
28+
setUrlParameter("creator_id", String.valueOf(creatorId));
29+
return this;
30+
}
31+
32+
public String getByCreatorIdParam() {
33+
return getUrlParameters().get("by_creator");
34+
}
35+
36+
public GetCreationsRequest setByCreatorIdParam(boolean creatorId) {
37+
setUrlParameter("by_creator", String.valueOf(creatorId));
38+
return this;
39+
}
40+
41+
public boolean getFeaturedParam() {
42+
return Boolean.parseBoolean(getUrlParameters().get("featured"));
43+
}
44+
45+
public GetCreationsRequest setFeaturedParam(boolean featured) {
46+
setUrlParameter("featured", String.valueOf(featured));
47+
return this;
48+
}
49+
50+
public boolean getRecentParam() {
51+
return Boolean.parseBoolean(getUrlParameters().get("recent"));
52+
}
53+
54+
public GetCreationsRequest setRecentParam(boolean recent) {
55+
setUrlParameter("recent", String.valueOf(recent));
56+
return this;
57+
}
58+
59+
public boolean getPopularParam() {
60+
return Boolean.parseBoolean(getUrlParameters().get("popular"));
61+
}
62+
63+
public GetCreationsRequest setPopularParam(boolean popular) {
64+
setUrlParameter("popular", String.valueOf(popular));
65+
return this;
66+
}
67+
68+
public boolean getBubbledParam() {
69+
return Boolean.parseBoolean(getUrlParameters().get("bubbled"));
70+
}
71+
72+
public GetCreationsRequest setBubbledParam(boolean bubbled) {
73+
setUrlParameter("bubbled", String.valueOf(bubbled));
74+
return this;
75+
}
76+
77+
public Integer getPageNumber() {
78+
try {
79+
return Integer.parseInt(getUrlParameters().get("page"));
80+
} catch (NumberFormatException e) {
81+
82+
}
83+
return null;
84+
}
85+
86+
public GetCreationsRequest setPageNumber(int pageNumber) {
87+
setUrlParameter("page", String.valueOf(pageNumber));
88+
return this;
89+
}
90+
91+
@Override
92+
public Class<? extends CreatubblesResponse> getResponseClass() {
93+
return GetCreationsResponse.class;
94+
}
95+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.creatubbles.api.request.creation;
2+
3+
import com.creatubbles.api.core.CreatubblesRequest;
4+
import com.creatubbles.api.core.CreatubblesResponse;
5+
import com.creatubbles.api.response.creation.SearchCreationsResponse;
6+
import com.creatubbles.api.util.EndPoints;
7+
import com.creatubbles.api.util.HttpMethod;
8+
9+
public class SearchCreationsRequest extends CreatubblesRequest {
10+
11+
public SearchCreationsRequest(String searchParam) {
12+
super(EndPoints.SEARCH_CREATIONS, HttpMethod.GET);
13+
setUrlParameter("search", searchParam);
14+
}
15+
16+
public String getSearchParam() {
17+
return getUrlParameters().get("search");
18+
}
19+
20+
public SearchCreationsRequest setSearchParam(String searchParam) {
21+
setUrlParameter("search", searchParam);
22+
return this;
23+
}
24+
25+
public Integer getPageNumber() {
26+
try {
27+
return Integer.parseInt(getUrlParameters().get("page"));
28+
} catch (NumberFormatException e) {
29+
30+
}
31+
return null;
32+
}
33+
34+
public SearchCreationsRequest setPageNumber(int pageNumber) {
35+
setUrlParameter("page", String.valueOf(pageNumber));
36+
return this;
37+
}
38+
39+
@Override
40+
public Class<? extends CreatubblesResponse> getResponseClass() {
41+
return SearchCreationsResponse.class;
42+
}
43+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.creatubbles.api.request.creation;
2+
3+
import com.creatubbles.api.core.CreatubblesRequest;
4+
import com.creatubbles.api.core.CreatubblesResponse;
5+
import com.creatubbles.api.response.creation.UploadCreationResponse;
6+
import com.creatubbles.api.util.EndPoints;
7+
import com.creatubbles.api.util.HttpMethod;
8+
9+
// TODO Order of operations (and how the upload actually happens) is kind of vague in the API docs - figure out OoO
10+
public class UploadCreationRequest extends CreatubblesRequest {
11+
12+
public UploadCreationRequest() {
13+
super(EndPoints.CREATIONS, HttpMethod.POST);
14+
}
15+
16+
@Override
17+
public Class<? extends CreatubblesResponse> getResponseClass() {
18+
return UploadCreationResponse.class;
19+
}
20+
}

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,20 @@ public CreatorsFollowersRequest(String id, int page) {
1616
setUrlParameter("page", String.valueOf(page));
1717
}
1818

19+
public Integer getPageNumber() {
20+
try {
21+
return Integer.parseInt(getUrlParameters().get("page"));
22+
} catch (NumberFormatException e) {
23+
24+
}
25+
return null;
26+
}
27+
28+
public CreatorsFollowersRequest setPageNumber(int pageNumber) {
29+
setUrlParameter("page", String.valueOf(pageNumber));
30+
return this;
31+
}
32+
1933
@Override
2034
public Class<? extends CreatorsFollowersResponse> getResponseClass() {
2135
return CreatorsFollowersResponse.class;

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,20 @@ public CreatorsFollowingUsersRequest(String id, int page) {
1717
setUrlParameter("page", String.valueOf(page));
1818
}
1919

20+
public Integer getPageNumber() {
21+
try {
22+
return Integer.parseInt(getUrlParameters().get("page"));
23+
} catch (NumberFormatException e) {
24+
25+
}
26+
return null;
27+
}
28+
29+
public CreatorsFollowingUsersRequest setPageNumber(int pageNumber) {
30+
setUrlParameter("page", String.valueOf(pageNumber));
31+
return this;
32+
}
33+
2034
@Override
2135
public Class<? extends CreatorsFollowingUsersResponse> getResponseClass() {
2236
return CreatorsFollowingUsersResponse.class;

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,9 @@ public Integer getPageNumber() {
3737
return null;
3838
}
3939

40-
public void setPageNumber(int pageNumber) {
40+
public UsersCreatorsRequest setPageNumber(int pageNumber) {
4141
setUrlParameter("page", String.valueOf(pageNumber));
42+
return this;
4243
}
4344

4445
@Override

src/main/java/com/creatubbles/api/response/CreationResponse.java renamed to src/main/java/com/creatubbles/api/response/creation/GetCreationsResponse.java

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

33
import com.creatubbles.api.core.Creation;
44
import com.creatubbles.api.core.CreatubblesResponse;
55

66
import java.util.List;
77

8-
public class CreationResponse extends CreatubblesResponse {
8+
public class GetCreationsResponse extends CreatubblesResponse {
99
public int total_entries, total_pages, page;
1010
public List<Creation> creations;
1111
}

0 commit comments

Comments
 (0)