]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6579 add user email fields to responses of api/issues/search and api/issues...
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Tue, 26 May 2015 11:54:35 +0000 (13:54 +0200)
committerStas Vilchik <vilchiks@gmail.com>
Thu, 28 May 2015 08:06:01 +0000 (10:06 +0200)
server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java
server/sonar-server/src/main/java/org/sonar/server/user/ws/SearchAction.java
server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java
server/sonar-server/src/test/resources/org/sonar/server/issue/ws/SearchActionMediumTest/issue_with_comment.json
server/sonar-web/src/main/webapp/WEB-INF/app/models/issue.rb

index 167c4ff8d33d5c75683c175d8d4bd38998b5029d..c5ebc6cdf5ac834608ab6f806160c891ce0597d2 100644 (file)
@@ -553,7 +553,7 @@ public class SearchAction implements IssuesWsAction {
       writeTags(issue, json);
       writeIssueComments(commentsByIssues.get(issue.key()), usersByLogin, json);
       writeIssueAttributes(issue, json);
-      writeIssueExtraFields(issue, project != null ? project.getKey() : null, usersByLogin, actionPlanByKeys, extraFields, json);
+      writeIssueExtraFields(issue, usersByLogin, actionPlanByKeys, extraFields, json);
       json.endObject();
     }
 
@@ -581,6 +581,7 @@ public class SearchAction implements IssuesWsAction {
         json.beginObject()
           .prop("key", comment.key())
           .prop("login", comment.userLogin())
+          .prop("email", user != null ? user.email() : null)
           .prop("userName", user != null ? user.name() : null)
           .prop("htmlText", Markdown.convertToHtml(comment.markdownText()))
           .prop("markdown", comment.markdownText())
@@ -602,7 +603,7 @@ public class SearchAction implements IssuesWsAction {
     }
   }
 
-  private void writeIssueExtraFields(Issue issue, @Nullable String projectKey, Map<String, User> usersByLogin, Map<String, ActionPlan> actionPlanByKeys,
+  private void writeIssueExtraFields(Issue issue, Map<String, User> usersByLogin, Map<String, ActionPlan> actionPlanByKeys,
     @Nullable List<String> extraFields,
     JsonWriter json) {
     if (extraFields != null) {
index ae039a0830ac62131a803c0610e92b783d21e156..311b31555e59a8d33da3c1485dbbd207a7d50724 100644 (file)
@@ -123,7 +123,7 @@ public class SearchAction implements UsersWsAction {
     json.endArray();
   }
 
-  private void writeIfNeeded(JsonWriter json, String value, String field, @Nullable List<String> fields) {
+  private void writeIfNeeded(JsonWriter json, @Nullable String value, String field, @Nullable List<String> fields) {
     if (fieldIsWanted(field, fields)) {
       json.prop(field, value);
     }
index 7c429c8c139d60e6ebc95ff390ab88dce6b234e9..4cf591bc18762e92b60d9e61e4e049c88b9afba3 100644 (file)
@@ -136,7 +136,7 @@ public class SearchActionMediumTest {
 
   @Test
   public void issue_with_comment() throws Exception {
-    db.userDao().insert(session, new UserDto().setLogin("john").setName("John").setEmail("john@email.com"));
+    db.userDao().insert(session, new UserDto().setLogin("john").setName("John"));
     db.userDao().insert(session, new UserDto().setLogin("fabrice").setName("Fabrice").setEmail("fabrice@email.com"));
 
     ComponentDto project = insertComponent(ComponentTesting.newProjectDto("ABCD").setKey("MyProject"));
index 8da9530a83fd9fdf15390719e8ecb659e63a59cc..22f83f1021c59af210805ae29a61707e73ea76b4 100644 (file)
@@ -15,6 +15,7 @@
           "key": "COMMENT-ABCE",
           "login": "fabrice",
           "userName": "Fabrice",
+          "email": "fabrice@email.com",
           "htmlText": "Another comment",
           "markdown": "Another comment",
           "updatable": false
index 60e44f79fb37f80e2bb7d70f30914534bad25383..1af6920069ac2bfc7779e4cb2c6253d9c9a82f02 100644 (file)
@@ -69,8 +69,11 @@ class Issue
       user = changelog.user(change)
 
       hash_change = {}
-      hash_change[:user] = user.login() if user
-      hash_change[:userName] = user.name() if user
+      if user
+        hash_change[:user] = user.login()
+        hash_change[:userName] = user.name()
+        hash_change[:email] = user.email()
+      end
       hash_change[:creationDate] = Api::Utils.format_datetime(change.creationDate()) if change.creationDate()
       hash_change[:diffs] = []