1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.atlassian.jira.rest.client.internal.json;
18
19 import com.atlassian.jira.rest.client.domain.BasicUser;
20 import com.atlassian.jira.rest.client.domain.Visibility;
21 import com.atlassian.jira.rest.client.domain.Worklog;
22 import org.codehaus.jettison.json.JSONException;
23 import org.codehaus.jettison.json.JSONObject;
24 import org.joda.time.DateTime;
25
26 import java.net.URI;
27
28 public class WorklogJsonParser implements JsonParser<Worklog> {
29
30 @Override
31 public Worklog parse(JSONObject json) throws JSONException {
32 final URI self = JsonParseUtil.getSelfUri(json);
33 final URI issueUri = JsonParseUtil.parseURI(json.getString("issue"));
34 final BasicUser author = JsonParseUtil.parseBasicUser(json.getJSONObject("author"));
35 final BasicUser updateAuthor = JsonParseUtil.parseBasicUser(json.getJSONObject("updateAuthor"));
36
37 final String comment = JsonParseUtil.getOptionalString(json, "comment");
38 final DateTime creationDate = JsonParseUtil.parseDateTime(json, "created");
39 final DateTime updateDate = JsonParseUtil.parseDateTime(json, "updated");
40 final DateTime startDate = JsonParseUtil.parseDateTime(json, "started");
41 final int minutesSpent = json.getInt("minutesSpent");
42 final Visibility visibility = new VisibilityJsonParser().parseVisibility(json);
43 return new Worklog(self, issueUri, author, updateAuthor, comment, creationDate, updateDate, startDate, minutesSpent, visibility);
44 }
45 }