PageRenderTime 27ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/jira-project/jira-components/jira-plugins/jira-rest/jira-rest-plugin/src/main/java/com/atlassian/jira/rest/v2/issue/IssueResourceExamples.java

https://bitbucket.org/ahmed_bilal_360factors/jira7-core
Java | 199 lines | 157 code | 26 blank | 16 comment | 0 complexity | 863cfcc9ba8bb6fbe9c97fd836f38eb4 MD5 | raw file
Possible License(s): Apache-2.0
  1. package com.atlassian.jira.rest.v2.issue;
  2. import com.atlassian.jira.issue.IssueFieldConstants;
  3. import com.atlassian.jira.issue.fields.rest.StandardOperation;
  4. import com.atlassian.jira.issue.fields.rest.json.beans.CommentJsonBean;
  5. import com.atlassian.jira.issue.fields.rest.json.beans.IssueLinkJsonBean;
  6. import com.atlassian.jira.issue.fields.rest.json.beans.IssueLinkTypeJsonBean;
  7. import com.atlassian.jira.issue.fields.rest.json.beans.IssueRefJsonBean;
  8. import com.atlassian.jira.issue.fields.rest.json.beans.StatusJsonBean;
  9. import com.atlassian.jira.issue.fields.rest.json.beans.WorklogJsonBean;
  10. import com.atlassian.jira.rest.api.issue.BulkOperationErrorResult;
  11. import com.atlassian.jira.rest.api.issue.FieldOperation;
  12. import com.atlassian.jira.rest.api.issue.IssueCreateResponse;
  13. import com.atlassian.jira.rest.api.issue.IssueFields;
  14. import com.atlassian.jira.rest.api.issue.IssueUpdateRequest;
  15. import com.atlassian.jira.rest.api.issue.IssuesCreateResponse;
  16. import com.atlassian.jira.rest.api.issue.IssuesUpdateRequest;
  17. import com.atlassian.jira.rest.api.issue.TimeTracking;
  18. import com.atlassian.jira.rest.api.util.ErrorCollection;
  19. import com.atlassian.jira.rest.v2.issue.attachment.format.AttachmentBean;
  20. import com.atlassian.jira.rest.v2.issue.project.ProjectBean;
  21. import com.atlassian.jira.util.collect.CollectionBuilder;
  22. import com.atlassian.jira.util.collect.MapBuilder;
  23. import com.google.common.collect.ImmutableList;
  24. import com.google.common.collect.Lists;
  25. import java.util.Arrays;
  26. import java.util.Collections;
  27. import java.util.Date;
  28. import java.util.HashMap;
  29. import java.util.Map;
  30. import static com.atlassian.jira.issue.IssueFieldConstants.DESCRIPTION;
  31. import static com.atlassian.jira.issue.IssueFieldConstants.PROJECT;
  32. import static com.atlassian.jira.issue.IssueFieldConstants.TIMETRACKING;
  33. import static com.atlassian.jira.issue.IssueFieldConstants.UPDATED;
  34. import static com.atlassian.jira.rest.api.issue.ResourceRef.withId;
  35. import static com.atlassian.jira.rest.api.issue.ResourceRef.withName;
  36. /**
  37. * Example JSON payloads for issue-related use cases.
  38. *
  39. * @since v5.0
  40. */
  41. public class IssueResourceExamples {
  42. public static final IssueUpdateRequest CREATE_REQUEST, CREATE_REQUEST_SECOND_ELEMENT;
  43. public static final IssuesUpdateRequest BULK_CREATE_REQUEST;
  44. public static final IssueCreateResponse CREATE_RESPONSE_201 = new IssueCreateResponse()
  45. .id("10000")
  46. .key("TST-24")
  47. .self(Examples.restURI("issue/10000").toString());
  48. private static final IssueCreateResponse CREATE_RESPONSE_201_SECOND_ELEMENT = new IssueCreateResponse()
  49. .id("10001")
  50. .key("TST-25")
  51. .self(Examples.restURI("issue/10001").toString());
  52. public static final ErrorCollection CREATE_RESPONSE_400 = ErrorCollection.of("Field 'priority' is required");
  53. public static final IssuesCreateResponse BULK_CREATE_RESPONSE_201 = new IssuesCreateResponse(ImmutableList
  54. .of(CREATE_RESPONSE_201, CREATE_RESPONSE_201_SECOND_ELEMENT), Collections.<BulkOperationErrorResult>emptyList());
  55. public static final BulkOperationErrorResult BULK_CREATE_RESPONSE_400 = new BulkOperationErrorResult(400, CREATE_RESPONSE_400, 3);
  56. /**
  57. * Short example for use in automatically generated documentation.
  58. */
  59. public static final IssueBean ISSUE_SHORT = new IssueBean(10001L, "HSP-1", Examples.restURI("issue/10001"));
  60. public static final IssueLinkTypeJsonBean SUBTASK_ISSUE_LINK_TYPE = new IssueLinkTypeJsonBean(10000L, "", "Parent", "Sub-task", null);
  61. public static final IssueLinkTypeJsonBean DEPENDENT_ISSUE_LINK_TYPE = new IssueLinkTypeJsonBean(10000L, "Dependent", "depends on", "is depended by", null);
  62. /**
  63. * Example IssueBean instance for use in automatically generated documentation.
  64. */
  65. public static final IssueBean GET_RESPONSE_200;
  66. static {
  67. StatusJsonBean status = new StatusJsonBean().name("Open").iconUrl(Examples.jiraURI("/images/icons/statuses/open.png").toString());
  68. IssueBean issue = new IssueBean(10002L, "EX-1", Examples.restURI("issue/10002"));
  69. issue.addRawField(UPDATED, UPDATED, null, new Date(1));
  70. issue.addRawField(DESCRIPTION, DESCRIPTION, null, "example bug report");
  71. issue.addRawField(PROJECT, PROJECT, null, ProjectBean.SHORT_DOC_EXAMPLE_1);
  72. issue.addRawField(TIMETRACKING, TIMETRACKING, null, new TimeTrackingBean(600L, 200L, 400L));
  73. issue.addRawField(IssueFieldConstants.ATTACHMENT, IssueFieldConstants.ATTACHMENT, null, CollectionBuilder.list(
  74. AttachmentBean.DOC_EXAMPLE));
  75. issue.addRawField(IssueFieldConstants.COMMENT, IssueFieldConstants.COMMENT, null, CollectionBuilder.list(CommentJsonBean.DOC_EXAMPLE));
  76. issue.addRawField(IssueFieldConstants.WORKLOG, IssueFieldConstants.WORKLOG, null, CollectionBuilder.list(WorklogJsonBean.DOC_EXAMPLE));
  77. issue.addRawField("sub-tasks", "sub-tasks", null,
  78. CollectionBuilder.list(new IssueLinkJsonBean().id("10000").outwardIssue(new IssueRefJsonBean("10003", "EX-2", Examples.restURI("issue/EX-2"), new IssueRefJsonBean.Fields().status(status))).type(SUBTASK_ISSUE_LINK_TYPE)));
  79. issue.addRawField(IssueFieldConstants.ISSUE_LINKS, IssueFieldConstants.ISSUE_LINKS, null,
  80. CollectionBuilder.list(
  81. new IssueLinkJsonBean().id("10001").type(DEPENDENT_ISSUE_LINK_TYPE).outwardIssue(new IssueRefJsonBean("10004L", "PRJ-2", Examples.restURI("issue/PRJ-2"), new IssueRefJsonBean.Fields().status(status))),
  82. new IssueLinkJsonBean().id("10002").type(DEPENDENT_ISSUE_LINK_TYPE).inwardIssue(new IssueRefJsonBean("10004", "PRJ-3", Examples.restURI("issue/PRJ-3"), new IssueRefJsonBean.Fields().status(status)))
  83. ));
  84. issue.addRawField(IssueFieldConstants.WATCHERS, IssueFieldConstants.WATCHERS, null, WatchersBean.DOC_EXAMPLE);
  85. GET_RESPONSE_200 = issue;
  86. CREATE_REQUEST = new com.atlassian.jira.rest.api.issue.IssueUpdateRequest().fields(new IssueFields()
  87. .project(withId("10000")) // TST
  88. .issueType(withId("10000")) // Bug
  89. .priority(withId("20000")) // Blocker
  90. .reporter(withName("smithers"))
  91. .assignee(withName("homer"))
  92. .summary("something's wrong")
  93. .labels(Arrays.asList("bugfix", "blitz_test"))
  94. .timeTracking(new TimeTracking("10", "5"))
  95. .securityLevel(withId("10000"))
  96. .versions(withId("10000"))
  97. .environment("environment")
  98. .description("description")
  99. .dueDate("2011-03-11")
  100. .fixVersions(withId("10001"))
  101. .components(withId("10000"))
  102. // .logWork(new LogWork().started("05/Jul/11 11:05 AM").timeSpent("1h"))
  103. .customField(10000L, "09/Jun/81")
  104. .customField(20000L, "06/Jul/11 3:25 PM")
  105. .customField(30000L, new String[]{"10000", "10002"})
  106. .customField(40000L, "this is a text field")
  107. .customField(50000L, "this is a text area. big text.")
  108. .customField(60000L, "jira-software-users")
  109. .customField(70000L, new String[]{"jira-administrators", "jira-software-users"})
  110. .customField(80000L, Collections.singletonMap("value", "red"))
  111. );
  112. CREATE_REQUEST_SECOND_ELEMENT = new com.atlassian.jira.rest.api.issue.IssueUpdateRequest().fields(new IssueFields()
  113. .project(withId("1000")) // TST
  114. .issueType(withId("10000")) // Bug
  115. .priority(withId("20000")) // Blocker
  116. .reporter(withName("kosecki"))
  117. .assignee(withName("jerry"))
  118. .summary("something's very wrong")
  119. .labels(Arrays.asList("new_release"))
  120. .timeTracking(new TimeTracking("15", "5"))
  121. .securityLevel(withId("10000"))
  122. .versions(withId("10000"))
  123. .environment("environment")
  124. .description("description")
  125. .dueDate("2011-04-16")
  126. .fixVersions(withId("10001"))
  127. .components(withId("10000"))
  128. // .logWork(new LogWork().started("05/Jul/11 11:05 AM").timeSpent("1h"))
  129. .customField(10000L, "09/Jun/81")
  130. .customField(20000L, "06/Jul/11 3:25 PM")
  131. .customField(30000L, new String[]{"10000", "10002"})
  132. .customField(40000L, "this is a text field")
  133. .customField(50000L, "this is a text area. big text.")
  134. .customField(60000L, "jira-software-users")
  135. .customField(70000L, new String[]{"jira-administrators", "jira-software-users"})
  136. .customField(80000L, Collections.singletonMap("value", "red"))
  137. );
  138. final Map<Object, Object> worklog = MapBuilder.newBuilder().add("started", "2011-07-05T11:05:00.000+0000").add("timeSpent", "60m").toMap();
  139. CREATE_REQUEST.update(MapBuilder.build("worklog", Arrays.asList(new FieldOperation().operation("add").value(worklog))));
  140. BULK_CREATE_REQUEST = new IssuesUpdateRequest(ImmutableList.of(CREATE_REQUEST, CREATE_REQUEST_SECOND_ELEMENT));
  141. }
  142. /**
  143. * Example CreateMetaBean instance for use in automatically generated documentation.
  144. */
  145. public static final CreateMetaBean GET_CREATEMETA_RESPONSE_200;
  146. static {
  147. Map<String, FieldMetaBean> fields = new HashMap<String, FieldMetaBean>();
  148. fields.put("issuetype", new FieldMetaBean(true, false, null, "Issue Type", null, Lists.newArrayList(StandardOperation.SET.getName()), null));
  149. CreateMetaIssueTypeBean issueType = new CreateMetaIssueTypeBean(
  150. Examples.restURI("issueType/1").toString(),
  151. "1",
  152. "Bug",
  153. "An error in the code",
  154. false,
  155. Examples.jiraURI("images/icons/issuetypes/bug.png").toString(),
  156. null);
  157. issueType.setFields(fields);
  158. Map<String, String> projectAvatarUrls = MapBuilder.<String, String>newBuilder()
  159. .add("16x16", Examples.jiraURI("secure/projectavatar?size=xsmall&pid=10000&avatarId=10011").toString())
  160. .add("24x24", Examples.jiraURI("secure/projectavatar?size=small&pid=10000&avatarId=10011").toString())
  161. .add("32x32", Examples.jiraURI("secure/projectavatar?size=medium&pid=10000&avatarId=10011").toString())
  162. .add("48x48", Examples.jiraURI("secure/projectavatar?pid=10000&avatarId=10011").toString())
  163. .toMap();
  164. CreateMetaProjectBean project = new CreateMetaProjectBean(
  165. Examples.restURI("project/EX").toString(),
  166. "10000",
  167. "EX",
  168. "Example Project",
  169. projectAvatarUrls,
  170. Arrays.asList(issueType));
  171. GET_CREATEMETA_RESPONSE_200 = new CreateMetaBean(Arrays.asList(project));
  172. }
  173. }