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 final String comment = json.getString("comment");
37 final DateTime creationDate = JsonParseUtil.parseDateTime(json, "created");
38 final DateTime updateDate = JsonParseUtil.parseDateTime(json, "updated");
39 final DateTime startDate = JsonParseUtil.parseDateTime(json, "started");
40 final int minutesSpent = json.getInt("minutesSpent");
41 final Visibility visibility = new VisibilityJsonParser().parseVisibility(json);
42 return new Worklog(self, issueUri, author, updateAuthor, comment, creationDate, updateDate, startDate, minutesSpent, visibility);
43 }
44 }