Skip to content

Commit e11b2e4

Browse files
committed
A new Builder interface
Bugfixes
1 parent f6e085e commit e11b2e4

File tree

9 files changed

+58
-20
lines changed

9 files changed

+58
-20
lines changed

client/src/main/java/in/clayfish/printful/clients/OrdersApiClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public Response<Order> createANewOrder(Order order, boolean confirm, boolean upd
8585
String response = LibUtils.createConnection(base64Key, "orders", configuration)
8686
.method(Connection.Method.POST).requestBody(LibUtils.gson.toJson(order))
8787
.data("confirm", String.valueOf(confirm),
88-
"updateExisting", String.valueOf(updateExisting))
88+
"update_existing", String.valueOf(updateExisting))
8989
.execute().body();
9090

9191
return createResponseFromApi(response);

client/src/main/java/in/clayfish/printful/enums/OrderStatus.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ public enum OrderStatus {
6161
* @return Found OrderStatus
6262
*/
6363
public static OrderStatus find(String term) {
64+
if (term == null || term.isEmpty()) {
65+
return null;
66+
}
6467
return OrderStatus.valueOf(term.trim().toUpperCase());
6568
}
6669

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package in.clayfish.printful.models;
2+
3+
/**
4+
* @author shuklaalok7
5+
* @since 18/01/2017
6+
*/
7+
public interface Builder<T> {
8+
9+
/**
10+
* @return
11+
*/
12+
T build();
13+
14+
/**
15+
* @return Builder object
16+
*/
17+
Builder<T> check();
18+
19+
}

client/src/main/java/in/clayfish/printful/models/Order.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -178,17 +178,15 @@ public void setPackingSlip(PackingSlip packingSlip) {
178178
/**
179179
* Builds an order
180180
*/
181-
public static class Builder {
181+
public static class Builder implements in.clayfish.printful.models.Builder<Order> {
182182
private Order order;
183183
private boolean checkValidity;
184184

185185
public Builder() {
186186
this.order = new Order();
187187
}
188188

189-
/**
190-
* @return Builder object
191-
*/
189+
@Override
192190
public Builder check() {
193191
this.checkValidity = true;
194192
return this;
@@ -281,9 +279,7 @@ public Builder gift(GiftData gift) {
281279
return this;
282280
}
283281

284-
/**
285-
* @return
286-
*/
282+
@Override
287283
public Order build() {
288284
if (checkValidity) {
289285
checkValidity();

client/src/main/java/in/clayfish/printful/models/includable/Address.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public void setEmail(String email) {
118118
* @author shuklaalok7
119119
* @since 2/01/2017
120120
*/
121-
public static class Builder {
121+
public static class Builder implements in.clayfish.printful.models.Builder<Address> {
122122
private Address address;
123123
private boolean checkValidity;
124124

@@ -176,18 +176,29 @@ public Builder phone(String phone) {
176176
return this;
177177
}
178178

179+
/**
180+
* @param company
181+
* @return
182+
*/
179183
public Builder company(String company) {
180184
this.address.company = company;
181185
return this;
182186
}
183187

188+
/**
189+
*
190+
* @return
191+
*/
184192
public Address build() {
185193
if (checkValidity) {
186194
checkValidity();
187195
}
188196
return this.address;
189197
}
190198

199+
/**
200+
*
201+
*/
191202
private void checkValidity() {
192203
if (this.address.country == null || this.address.country.getCode() == null || this.address.country.getCode().isEmpty()
193204
|| this.address.state == null || this.address.state.getCode() == null || this.address.state.getCode().isEmpty()

client/src/main/java/in/clayfish/printful/models/includable/Item.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public void setSku(String sku) {
147147
* @author shuklaalok7
148148
* @since 2/01/2017
149149
*/
150-
public static class Builder {
150+
public static class Builder implements in.clayfish.printful.models.Builder<Item> {
151151
private Item item;
152152
private boolean checkValidity;
153153

@@ -156,6 +156,7 @@ public Builder() {
156156
this.item.quantity = 1;
157157
}
158158

159+
@Override
159160
public Builder check() {
160161
this.checkValidity = true;
161162
return this;
@@ -212,6 +213,7 @@ public Builder files(Collection<File> files) {
212213
return this;
213214
}
214215

216+
@Override
215217
public Item build() {
216218
if (checkValidity) {
217219
checkValidity();

client/src/main/java/in/clayfish/printful/utils/GsonAdapters.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,16 @@ static class ImageSizeSerializer implements JsonDeserializer<ImageSize>, JsonSer
6363

6464
@Override
6565
public ImageSize deserialize(JsonElement jsonElement, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
66-
// TODO implement
67-
return null;
66+
String imageSizeObject = jsonElement.getAsString();
67+
68+
return new ImageSize(Integer.parseInt(imageSizeObject.split("x")[0].trim()),
69+
Integer.parseInt(imageSizeObject.split("x")[1].trim()));
6870
}
6971

7072
@Override
7173
public JsonElement serialize(ImageSize imageSize, Type typeOfSrc, JsonSerializationContext context) {
72-
return null;
74+
String imageSizeString = String.format("%d x %d", imageSize.getWidth(), imageSize.getHeight());
75+
return new JsonPrimitive(imageSizeString);
7376
}
7477
}
7578

@@ -251,8 +254,9 @@ protected void beforeToObject(JsonElement json) {
251254
super.beforeToObject(json);
252255

253256
JsonObject jsonObject = json.getAsJsonObject();
254-
jsonObject.addProperty("stringId", jsonObject.get("id").getAsString());
257+
jsonObject.addProperty("stringId", LibUtils.getFromJson(jsonObject, "id", String.class));
255258
jsonObject.remove("id");
259+
256260
FileStatus fileStatus = FileStatus.find(LibUtils.getFromJson(jsonObject, "status", String.class));
257261
if (fileStatus != null) {
258262
jsonObject.addProperty("status", fileStatus.name());

client/src/test/java/in/clayfish/printful/test/OrdersApiClientTest.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,25 +31,28 @@ public void setup() {
3131
}
3232

3333
@Test
34-
public void getListOfOrders() {
34+
public void testGetListOfOrders() {
3535
List<Order> orders = client.getListOfOrders(OrderStatus.DRAFT, 0, 0).getResult();
3636
System.out.println(orders.size());
3737
}
3838

3939
@Test
40-
public void createANewOrder() {
40+
public void testCreateANewOrder() {
4141
Address recipient = new Address.Builder().name("Googleplex")
4242
.address1("1600 Amphitheatre Parkway").phone("+1 650-253-0000")
4343
.city("Mountain View").zip("94043").state(new State("CA", "California"))
44-
.country(new Country("US", "United States")).check().build();
44+
.country(new Country("US", "United States"))//.check()
45+
.build();
4546

4647
File file1 = new File();
4748
file1.setUrl("http://68.media.tumblr.com/tumblr_m99eygsfkn1qaoylwo1_1280.jpg");
4849

4950
Item item1 = new Item.Builder().variantId(4).retailPrice("76.95").externalId("231")
5051
.sku("TEST_ITEM").file(file1).check().build();
5152

52-
Order order = new Order.Builder().externalId("12331").recipient(recipient).item(item1)
53+
String orderString = "{\"items\":[{\"files\":[{\"dpi\":0,\"height\":0,\"size\":0,\"type\":\"back\",\"url\":\"https://parsefiles.back4app.com/Hql4XPmDwP33CMFe5SQpQlJKDmJQvBDl2mqBTAd8/e3fa6e7fa13c3d7210a725cd7e5dd130_d5d2828a-74b1-4626-a463-ff512d32871e.png\",\"visible\":false,\"width\":0,\"additional_price\":0.0},{\"dpi\":0,\"height\":0,\"size\":0,\"visible\":false,\"width\":0,\"additional_price\":0.0}],\"quantity\":1,\"id\":0,\"variant_id\":4565}],\"recipient\":{\"address1\":\"637 Akdj\",\"city\":\"Montreal\",\"name\":\"Alok\",\"zip\":\"52626\",\"state_code\":\"\",\"state_name\":\"\",\"country_name\":\"CA\"},\"id\":0,\"external_id\":\"KLhUHUxYmU\",\"retail_costs\":{\"total\":\"35.0\"}}";
54+
55+
Order order = new Order.Builder().externalId("12332").recipient(recipient).item(item1)
5356
.check().build();
5457

5558
Response<Order> orderResponse = client.createANewOrder(order, false, false);
@@ -67,7 +70,7 @@ public void testGetOrderData1() {
6770

6871
@Test
6972
public void testGetOrderData2() {
70-
Response<Order> orderResponse = client.getOrderData("12331");
73+
Response<Order> orderResponse = client.getOrderData("12332");
7174
Assert.assertTrue(orderResponse.getCode() == 200);
7275
}
7376

client/src/test/java/in/clayfish/printful/test/ProductCatalogApiClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
2121
*/
2222
public class ProductCatalogApiClientTest {
23-
static String API_KEY = "YOUR_API_KEY";
23+
static String API_KEY = "l1zpya7z-w5e3-ce2a:kop5-fvlklkzc0qkn";
2424
private Client client;
2525

2626
@Before

0 commit comments

Comments
 (0)