From afa40b01fc3109797305b3f1732f4f3aa4c6c9ca Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Tue, 26 May 2015 13:54:35 +0200 Subject: [PATCH] SONAR-6579 add user email fields to responses of api/issues/search and api/issues/changelog WS --- .../main/java/org/sonar/server/issue/ws/SearchAction.java | 5 +++-- .../main/java/org/sonar/server/user/ws/SearchAction.java | 2 +- .../org/sonar/server/issue/ws/SearchActionMediumTest.java | 2 +- .../ws/SearchActionMediumTest/issue_with_comment.json | 1 + .../sonar-web/src/main/webapp/WEB-INF/app/models/issue.rb | 7 +++++-- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java b/server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java index 167c4ff8d33..c5ebc6cdf5a 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java @@ -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 usersByLogin, Map actionPlanByKeys, + private void writeIssueExtraFields(Issue issue, Map usersByLogin, Map actionPlanByKeys, @Nullable List extraFields, JsonWriter json) { if (extraFields != null) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/user/ws/SearchAction.java b/server/sonar-server/src/main/java/org/sonar/server/user/ws/SearchAction.java index ae039a0830a..311b31555e5 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/user/ws/SearchAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/user/ws/SearchAction.java @@ -123,7 +123,7 @@ public class SearchAction implements UsersWsAction { json.endArray(); } - private void writeIfNeeded(JsonWriter json, String value, String field, @Nullable List fields) { + private void writeIfNeeded(JsonWriter json, @Nullable String value, String field, @Nullable List fields) { if (fieldIsWanted(field, fields)) { json.prop(field, value); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java index 7c429c8c139..4cf591bc187 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java @@ -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")); diff --git a/server/sonar-server/src/test/resources/org/sonar/server/issue/ws/SearchActionMediumTest/issue_with_comment.json b/server/sonar-server/src/test/resources/org/sonar/server/issue/ws/SearchActionMediumTest/issue_with_comment.json index 8da9530a83f..22f83f1021c 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/issue/ws/SearchActionMediumTest/issue_with_comment.json +++ b/server/sonar-server/src/test/resources/org/sonar/server/issue/ws/SearchActionMediumTest/issue_with_comment.json @@ -15,6 +15,7 @@ "key": "COMMENT-ABCE", "login": "fabrice", "userName": "Fabrice", + "email": "fabrice@email.com", "htmlText": "Another comment", "markdown": "Another comment", "updatable": false diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/models/issue.rb b/server/sonar-web/src/main/webapp/WEB-INF/app/models/issue.rb index 60e44f79fb3..1af6920069a 100644 --- a/server/sonar-web/src/main/webapp/WEB-INF/app/models/issue.rb +++ b/server/sonar-web/src/main/webapp/WEB-INF/app/models/issue.rb @@ -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] = [] -- 2.39.5