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 WorklogJsonParserV5 implements JsonParser<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.getJSONObject("author"));
41 final BasicUser updateAuthor = JsonParseUtil.parseBasicUser(json.getJSONObject("updateAuthor"));
42 final String comment = json.getString("comment");
43 final DateTime creationDate = JsonParseUtil.parseDateTime(json, "created");
44 final DateTime updateDate = JsonParseUtil.parseDateTime(json, "updated");
45 final DateTime startDate = JsonParseUtil.parseDateTime(json, "started");
46 final int secondsSpent = json.getInt("timeSpentSeconds");
47 final Visibility visibility = new VisibilityJsonParser().parseVisibility(json);
48 return new Worklog(self, issue, author, updateAuthor, comment, creationDate, updateDate, startDate, secondsSpent / 60, visibility);
49 }
50 }