Skip to content

Commit 5aed751

Browse files
a-panizza_globantBeta Bot
authored andcommitted
Cherry pick branch 'genexuslabs:feature/APIHeaderParms' into beta
1 parent a3ccab9 commit 5aed751

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

java/src/main/java/com/genexus/internet/GXRestAPIClient.java

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class GXRestAPIClient {
3838
private JSONObject jsonResponse;
3939
private HashMap<String, String> queryVars = new HashMap<String, String>();
4040
private HashMap<String, String> bodyVars = new HashMap<String, String>();
41+
private HashMap<String, String> headerVars = new HashMap<String, String>();
4142
private HashMap<String, String> responseData = new HashMap<String, String>();
4243

4344
static final String DATE_FMT = "yyyy-MM-dd";
@@ -190,6 +191,71 @@ private String quoteString(String value) {
190191
return "\"" + value + "\"";
191192
}
192193

194+
/// Add Header parameters
195+
196+
public <T extends GXXMLSerializable> void addHeaderVar(String varName, GXBaseCollection<T> varValue) {
197+
if ( varValue != null) {
198+
headerVars.put(varName, varValue.toJSonString(false));
199+
}
200+
}
201+
202+
public void addHeaderVar(String varName, GXXMLSerializable varValue) {
203+
if ( varValue != null) {
204+
headerVars.put(varName, varValue.toJSonString(false));
205+
}
206+
}
207+
208+
public void addHeaderVar(String varName, String varValue) {
209+
headerVars.put( varName, quoteString(varValue));
210+
}
211+
212+
public void addHeaderVar(String varName, double varValue) {
213+
headerVars.put(varName, quoteString(Double.toString(varValue)));
214+
}
215+
216+
public void addHeaderVar(String varName, Date varValue) {
217+
SimpleDateFormat df = new SimpleDateFormat(DATE_FMT);
218+
headerVars.put(varName, quoteString(df.format(varValue)));
219+
}
220+
221+
public void addHeaderVar(String varName, Date varValue, boolean hasMilliseconds) {
222+
String fmt = DATETIME_FMT;
223+
if (hasMilliseconds)
224+
fmt = DATETIME_FMT_MS;
225+
SimpleDateFormat df = new SimpleDateFormat(fmt);
226+
headerVars.put( varName, quoteString(df.format(varValue)));
227+
}
228+
229+
public void addHeaderVar(String varName, short varValue) {
230+
headerVars.put( varName, Short.toString(varValue));
231+
}
232+
233+
public void addHeaderVar(String varName, int varValue) {
234+
headerVars.put( varName, Integer.toString(varValue));
235+
}
236+
237+
public void addHeaderVar(String varName, long varValue) {
238+
headerVars.put( varName, Long.toString(varValue));
239+
}
240+
241+
public void addHeaderVar(String varName, Boolean varValue) {
242+
headerVars.put( varName, varValue.toString());
243+
}
244+
245+
public void addHeaderVar(String varName, BigDecimal varValue) {
246+
headerVars.put( varName, varValue.toString());
247+
}
248+
249+
public void addHeaderVar(String varName, java.util.UUID varValue) {
250+
headerVars.put( varName, quoteString(varValue.toString()));
251+
}
252+
253+
public void addHeaderVar(String varName, IGxJSONSerializable varValue) {
254+
headerVars.put( varName, quoteString(varValue.toJSonString()));
255+
}
256+
257+
///
258+
193259
public <T extends GXXMLSerializable> void addBodyVar(String varName, GXBaseCollection<T> varValue) {
194260
if ( varValue != null) {
195261
bodyVars.put(varName, varValue.toJSonString(false));
@@ -418,6 +484,7 @@ public <T extends GXXMLSerializable> GXBaseCollection<T> getBodyObjCollection(St
418484
fillCollection(varName, elementClass, col);
419485
return col;
420486
}
487+
421488
private <T extends GXXMLSerializable> void fillCollection(String varName, Class<T> elementClass, GXBaseCollection col) {
422489
JSONArray jsonarr = new JSONArray();
423490
try {
@@ -515,6 +582,13 @@ public void RestExecute() {
515582
if (location.getAuthenticationMethod() == 4 && location.getAccessToken() != null && ! location.getAccessToken().trim().isEmpty()) {
516583
httpClient.addHeader("Authorization", location.getAccessToken());
517584
}
585+
if (headerVars.size() > 0) {
586+
separator = "";
587+
for( Map.Entry<String, String> entry : headerVars.entrySet()) {
588+
httpClient.addHeader(entry.getKey(), entry.getValue());
589+
}
590+
}
591+
headerVars.clear();
518592
String serviceuri = ((location.getSecure() > 0) ? "https" : "http") + "://" + location.getHost();
519593
serviceuri += (location.getPort() != 80) ? ":" + Integer.toString(location.getPort()): "";
520594
serviceuri += "/" + location.getBaseURL() + "/" + location.getResourceName();

0 commit comments

Comments
 (0)