1 package com.atlassian.jira.rest.client.internal.json;
2
3 import com.atlassian.jira.rest.client.api.domain.IssueType;
4 import com.atlassian.jira.rest.client.api.domain.Subtask;
5 import com.atlassian.jira.rest.client.api.domain.Status;
6 import org.codehaus.jettison.json.JSONException;
7 import org.codehaus.jettison.json.JSONObject;
8
9 import java.net.URI;
10
11 public class SubtaskJsonParser implements JsonObjectParser<Subtask> {
12 private final IssueTypeJsonParser issueTypeJsonParser = new IssueTypeJsonParser();
13 private final StatusJsonParser statusJsonParser = new StatusJsonParser();
14
15 @Override
16 public Subtask parse(JSONObject json) throws JSONException {
17 final URI issueUri = JsonParseUtil.parseURI(json.getString("self"));
18 final String issueKey = json.getString("key");
19 final JSONObject fields = json.getJSONObject("fields");
20 final String summary = fields.getString("summary");
21 final Status status = statusJsonParser.parse(fields.getJSONObject("status"));
22 final IssueType issueType = issueTypeJsonParser.parse(fields.getJSONObject("issuetype"));
23 return new Subtask(issueKey, issueUri, summary, issueType, status);
24 }
25 }