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.api.domain.BasicUser;
20 import com.atlassian.jira.rest.client.api.domain.Visibility;
21 import com.atlassian.jira.rest.client.api.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 WorklogJsonParserV5 implements JsonObjectParser<Worklog> {
29
30 private final URI issue;
31
32 public WorklogJsonParserV5(URI issue) {
33 this.issue = issue;
34 }
35
36
37 @Override
38 public Worklog parse(JSONObject json) throws JSONException {
39 final URI self = JsonParseUtil.getSelfUri(json);
40 final BasicUser author = JsonParseUtil.parseBasicUser(json.optJSONObject("author"));
41 final BasicUser updateAuthor = JsonParseUtil.parseBasicUser(json.optJSONObject("updateAuthor"));
42
43 final String comment = json.optString("comment");
44 final DateTime creationDate = JsonParseUtil.parseDateTime(json, "created");
45 final DateTime updateDate = JsonParseUtil.parseDateTime(json, "updated");
46 final DateTime startDate = JsonParseUtil.parseDateTime(json, "started");
47
48 final int secondsSpent = json.optInt("timeSpentSeconds", 0);
49 final Visibility visibility = new VisibilityJsonParser().parseVisibility(json);
50 return new Worklog(self, issue, author, updateAuthor, comment, creationDate, updateDate, startDate,
51 secondsSpent / 60, visibility);
52 }
53 }