From db67f5bd46fe70073548e9acfc590ecd35b72272 Mon Sep 17 00:00:00 2001 From: Jonathan Brachthäuser Date: Thu, 3 Sep 2015 23:16:16 +0200 Subject: Refactor: Have only one generic parse method --- .../bitbucket/ApiClient.java | 45 ++++------------------ 1 file changed, 8 insertions(+), 37 deletions(-) (limited to 'src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/bitbucket/ApiClient.java') diff --git a/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/bitbucket/ApiClient.java b/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/bitbucket/ApiClient.java index ceec1a8..ad9b16b 100644 --- a/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/bitbucket/ApiClient.java +++ b/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/bitbucket/ApiClient.java @@ -39,7 +39,7 @@ public class ApiClient { public List getPullRequests() { String response = getRequest(V2_API_BASE_URL + this.owner + "/" + this.repositoryName + "/pullrequests/"); try { - return parsePullRequestJson(response).getPullrequests(); + return parse(response, Pullrequest.Response.class).getPullrequests(); } catch(Exception e) { logger.log(Level.WARNING, "invalid pull request response.", e); } @@ -50,7 +50,7 @@ public class ApiClient { String response = getRequest( V1_API_BASE_URL + commentOwnerName + "/" + commentRepositoryName + "/pullrequests/" + pullRequestId + "/comments"); try { - return parseCommentJson(response); + return parse(response, new TypeReference>() {}); } catch(Exception e) { logger.log(Level.WARNING, "invalid pull request response.", e); } @@ -69,8 +69,7 @@ public class ApiClient { try { NameValuePair content = new NameValuePair("content", comment); String response = postRequest(path, new NameValuePair[]{ content }); - return parseSingleCommentJson(response); - + return parse(response, Pullrequest.Comment.class); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } @@ -89,7 +88,7 @@ public class ApiClient { String path = V2_API_BASE_URL + this.owner + "/" + this.repositoryName + "/pullrequests/" + pullRequestId + "/approve"; try { String response = postRequest(path, new NameValuePair[]{}); - return parseApprovalJson(response); + return parse(response, Pullrequest.Participant.class); } catch (IOException e) { e.printStackTrace(); } @@ -166,39 +165,11 @@ public class ApiClient { } - private Pullrequest.Response parsePullRequestJson(String response) throws IOException { - ObjectMapper mapper = new ObjectMapper(); - Pullrequest.Response parsedResponse; - parsedResponse = mapper.readValue(response, Pullrequest.Response.class); - return parsedResponse; - } - - private List parseCommentJson(String response) throws IOException { - ObjectMapper mapper = new ObjectMapper(); - List parsedResponse; - parsedResponse = mapper.readValue( - response, - new TypeReference>() { - }); - return parsedResponse; + private R parse(String response, Class cls) throws IOException { + return new ObjectMapper().readValue(response, cls); } - - private Pullrequest.Comment parseSingleCommentJson(String response) throws IOException { - ObjectMapper mapper = new ObjectMapper(); - Pullrequest.Comment parsedResponse; - parsedResponse = mapper.readValue( - response, - Pullrequest.Comment.class); - return parsedResponse; - } - - private Pullrequest.Participant parseApprovalJson(String response) throws IOException { - ObjectMapper mapper = new ObjectMapper(); - Pullrequest.Participant parsedResponse; - parsedResponse = mapper.readValue( - response, - Pullrequest.Participant.class); - return parsedResponse; + private R parse(String response, TypeReference ref) throws IOException { + return new ObjectMapper().readValue(response, ref); } } -- cgit v1.2.3