Skip to content
This repository was archived by the owner on Jan 5, 2019. It is now read-only.

Commit cd89e03

Browse files
committed
Remove duplicate request param collection code
1 parent 466eda9 commit cd89e03

1 file changed

Lines changed: 35 additions & 20 deletions

File tree

src/main/java/com/scorpiac/javarant/DevRant.java

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import java.io.IOException;
1414
import java.io.InputStream;
1515
import java.io.InputStreamReader;
16+
import java.io.UnsupportedEncodingException;
17+
import java.net.URLEncoder;
1618
import java.util.ArrayList;
1719
import java.util.Arrays;
1820
import java.util.List;
@@ -323,20 +325,7 @@ public boolean postComment(int rantId, String comment) {
323325
* @return A {@link JsonObject} containing the response.
324326
*/
325327
JsonObject post(String url, NameValuePair... params) {
326-
List<NameValuePair> paramList = new ArrayList<>(params.length + 5);
327-
paramList.addAll(Arrays.asList(params));
328-
329-
// Add the parameters which always need to be present.
330-
paramList.add(new BasicNameValuePair("app", APP_ID));
331-
paramList.add(new BasicNameValuePair("plat", PLAT_ID));
332-
333-
// Add the auth information.
334-
if (isLoggedIn()) {
335-
paramList.add(new BasicNameValuePair("token_id", auth.getId()));
336-
paramList.add(new BasicNameValuePair("token_key", auth.getKey()));
337-
paramList.add(new BasicNameValuePair("user_id", auth.getUserId()));
338-
}
339-
328+
List<NameValuePair> paramList = getParameters(params);
340329
return executeRequest(Request.Post(BASE_URL + url).bodyForm(paramList));
341330
}
342331

@@ -347,17 +336,43 @@ JsonObject post(String url, NameValuePair... params) {
347336
* @return A {@link JsonObject} containing the response.
348337
*/
349338
JsonObject get(String url, NameValuePair... params) {
350-
StringBuilder finalUrl = new StringBuilder(url).append("?app=").append(APP_ID).append("&plat=").append(PLAT_ID);
339+
StringBuilder finalUrl = new StringBuilder(url).append('?');
340+
List<NameValuePair> paramList = getParameters(params);
351341

352342
// Add all parameters.
353-
for (NameValuePair param : params)
354-
finalUrl.append('&').append(param.getName()).append('=').append(param.getValue());
343+
try {
344+
for (NameValuePair param : paramList)
345+
finalUrl.append('&').append(param.getName()).append('=').append(URLEncoder.encode(param.getValue(), "UTF-8"));
346+
} catch (UnsupportedEncodingException e) {
347+
// This never happens.
348+
e.printStackTrace();
349+
}
350+
351+
return executeRequest(Request.Get(BASE_URL + finalUrl.toString()));
352+
}
353+
354+
/**
355+
* Get a list with all the parameters, including default and auth parameters.
356+
*
357+
* @param params The parameters to use.
358+
* @return A list containing the given parameters, the default parameters, and the auth parameters.
359+
*/
360+
private List<NameValuePair> getParameters(NameValuePair... params) {
361+
List<NameValuePair> paramList = new ArrayList<>(params.length + 5);
362+
paramList.addAll(Arrays.asList(params));
363+
364+
// Add the parameters which always need to be present.
365+
paramList.add(new BasicNameValuePair("app", APP_ID));
366+
paramList.add(new BasicNameValuePair("plat", PLAT_ID));
355367

356368
// Add the auth information.
357-
if (isLoggedIn())
358-
finalUrl.append("&token_id=").append(auth.getId()).append("&token_key=").append(auth.getKey()).append("&user_id=").append(auth.getUserId());
369+
if (isLoggedIn()) {
370+
paramList.add(new BasicNameValuePair("token_id", auth.getId()));
371+
paramList.add(new BasicNameValuePair("token_key", auth.getKey()));
372+
paramList.add(new BasicNameValuePair("user_id", auth.getUserId()));
373+
}
359374

360-
return executeRequest(Request.Get(BASE_URL + finalUrl.toString()));
375+
return paramList;
361376
}
362377

363378
/**

0 commit comments

Comments
 (0)