Skip to content

Commit fb023c7

Browse files
committed
Remade some of the mapping functions
1 parent 39bcd43 commit fb023c7

File tree

3 files changed

+42
-21
lines changed

3 files changed

+42
-21
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</dependency>
2424
<dependency>
2525
<groupId>org.javawebstack</groupId>
26-
<artifactId>QueryString</artifactId>
26+
<artifactId>Graph</artifactId>
2727
<version>1.0-SNAPSHOT</version>
2828
</dependency>
2929
</dependencies>

src/main/java/org/javawebstack/httpclient/HTTPClient.java

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.javawebstack.httpclient;
22

3-
import com.google.gson.FieldNamingPolicy;
4-
import com.google.gson.Gson;
5-
import com.google.gson.GsonBuilder;
3+
import org.javawebstack.graph.GraphElement;
4+
import org.javawebstack.graph.GraphMapper;
5+
import org.javawebstack.graph.NamingPolicy;
66
import org.javawebstack.httpclient.interceptor.BeforeRequestInterceptor;
77
import org.javawebstack.httpclient.interceptor.ResponseTransformer;
88

@@ -11,11 +11,8 @@
1111

1212
public class HTTPClient {
1313

14-
private Gson gson = new GsonBuilder()
15-
.setDateFormat("yyyy-MM-dd HH:mm:ss")
16-
.disableHtmlEscaping()
17-
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
18-
.create();
14+
private GraphMapper graphMapper = new GraphMapper()
15+
.setNamingPolicy(NamingPolicy.SNAKE_CASE);
1916
private int timeout = 5000;
2017
private String baseUrl = "";
2118
private Map<String, String> defaultHeaders = new HashMap<>();
@@ -30,13 +27,13 @@ public HTTPClient(String baseUrl) {
3027

3128
public HTTPClient() { }
3229

33-
public HTTPClient gson(Gson gson){
34-
this.gson = gson;
30+
public HTTPClient graphMapper(GraphMapper mapper){
31+
this.graphMapper = mapper;
3532
return this;
3633
}
3734

38-
public Gson getGson() {
39-
return gson;
35+
public GraphMapper getGraphMapper(){
36+
return graphMapper;
4037
}
4138

4239
public HTTPClient timeout(int timeout){
@@ -122,7 +119,7 @@ public HTTPRequest post(String path){
122119
}
123120

124121
public HTTPRequest post(String path, Object body){
125-
return post(path).jsonBody(body);
122+
return post(path).jsonBody((GraphElement) body);
126123
}
127124

128125
public HTTPRequest put(String path){

src/main/java/org/javawebstack/httpclient/HTTPRequest.java

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.javawebstack.httpclient;
22

3+
import org.javawebstack.graph.GraphElement;
34
import org.javawebstack.httpclient.interceptor.ResponseTransformer;
45
import org.javawebstack.querystring.QueryString;
56

@@ -75,20 +76,34 @@ public HTTPRequest basicAuthorization(String username, String password){
7576
return authorization("Basic", Base64.getEncoder().encodeToString((username+":"+password).getBytes()));
7677
}
7778

78-
public HTTPRequest formBody(Map<String, String> data){
79-
return body(new QueryString(data).toString());
79+
public HTTPRequest formBodyString(QueryString query) {
80+
return body(query.toString()).contentType("application/x-www-form-urlencoded");
8081
}
8182

82-
public HTTPRequest formBody(QueryString query) {
83-
return body(query.toString());
83+
public HTTPRequest formBody(Object object){
84+
if(object instanceof QueryString)
85+
return formBodyString((QueryString) object);
86+
if(object instanceof GraphElement)
87+
return formBodyElement((GraphElement) object);
88+
return formBodyElement(client.getGraphMapper().toGraph(object));
89+
}
90+
91+
public HTTPRequest formBodyElement(GraphElement element){
92+
return body(element.toJsonString()).contentType("application/x-www-form-urlencoded");
8493
}
8594

8695
public HTTPRequest bearer(String token){
8796
return authorization("Bearer", token);
8897
}
8998

9099
public HTTPRequest jsonBody(Object object){
91-
return body(client.getGson().toJson(object)).contentType("application/json");
100+
if(object instanceof GraphElement)
101+
return jsonBodyElement((GraphElement) object);
102+
return jsonBodyElement(client.getGraphMapper().toGraph(object));
103+
}
104+
105+
public HTTPRequest jsonBodyElement(GraphElement element){
106+
return body(element.toJsonString()).contentType("application/json");
92107
}
93108

94109
public int status(){
@@ -106,14 +121,23 @@ public String string(){
106121
return new String(bytes(), StandardCharsets.UTF_8);
107122
}
108123

109-
public <T> T json(Class<T> type){
124+
public <T> T object(Class<T> type){
110125
if(type == null)
111126
return null;
112127
if(type.equals(byte[].class))
113128
return (T) responseBody;
114129
if(type.equals(String.class))
115130
return (T) string();
116-
return client.getGson().fromJson(string(), type);
131+
return client.getGraphMapper().fromGraph(graph(), type);
132+
}
133+
134+
public GraphElement graph(){
135+
String contentType = header("Content-Type");
136+
switch (contentType){
137+
case "application/x-www-form-urlencoded":
138+
GraphElement.fromFormData(string());
139+
}
140+
return GraphElement.fromJson(string());
117141
}
118142

119143
public String header(String key){

0 commit comments

Comments
 (0)