]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-12718 return author and assignee as login
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Fri, 20 Dec 2019 13:54:19 +0000 (14:54 +0100)
committerSonarTech <sonartech@sonarsource.com>
Mon, 13 Jan 2020 19:46:31 +0000 (20:46 +0100)
server/sonar-webserver-webapi/src/main/java/org/sonar/server/hotspot/ws/ShowAction.java
server/sonar-webserver-webapi/src/test/java/org/sonar/server/hotspot/ws/ShowActionTest.java
sonar-ws/src/main/protobuf/ws-hotspots.proto

index 1ff2504d10529786b47aa323a5b2cd0f73c8637c..68ca028099e38c01924f8a901d781a5227f017a2 100644 (file)
@@ -109,14 +109,12 @@ public class ShowAction implements HotspotsWsAction {
       RuleDefinitionDto rule = loadRule(dbSession, hotspot);
 
       ShowWsResponse.Builder responseBuilder = ShowWsResponse.newBuilder();
-      Common.User.Builder userBuilder = Common.User.newBuilder();
-      formatHotspot(responseBuilder, hotspot);
-      formatHotspotAuthorAndAssignee(responseBuilder, userBuilder, users, hotspot);
+      formatHotspot(responseBuilder, hotspot, users);
       formatComponents(components, responseBuilder);
       formatRule(responseBuilder, rule);
       formatTextRange(responseBuilder, hotspot);
       FormattingContext formattingContext = formatChangeLogAndComments(dbSession, hotspot, users, components, responseBuilder);
-      formatUsers(responseBuilder, userBuilder, users, formattingContext);
+      formatUsers(responseBuilder, users, formattingContext);
 
       writeProtobuf(responseBuilder.build(), request, response);
     }
@@ -137,7 +135,7 @@ public class ShowAction implements HotspotsWsAction {
     return new Users(assignee, author);
   }
 
-  private void formatHotspot(ShowWsResponse.Builder builder, IssueDto hotspot) {
+  private void formatHotspot(ShowWsResponse.Builder builder, IssueDto hotspot, Users users) {
     builder.setKey(hotspot.getKey());
     ofNullable(hotspot.getStatus()).ifPresent(builder::setStatus);
     ofNullable(hotspot.getResolution()).ifPresent(builder::setResolution);
@@ -145,16 +143,8 @@ public class ShowAction implements HotspotsWsAction {
     builder.setMessage(nullToEmpty(hotspot.getMessage()));
     builder.setCreationDate(formatDateTime(hotspot.getIssueCreationDate()));
     builder.setUpdateDate(formatDateTime(hotspot.getIssueUpdateDate()));
-  }
-
-  private void formatHotspotAuthorAndAssignee(ShowWsResponse.Builder responseBuilder,
-    Common.User.Builder userBuilder, Users users, IssueDto hotspot) {
-    users.getAssignee().map(t -> userFormatter.formatUser(userBuilder, t)).ifPresent(responseBuilder::setAssignee);
-
-    Common.User author = users.getAuthor()
-      .map(t -> userFormatter.formatUser(userBuilder, t))
-      .orElseGet(() -> userBuilder.clear().setLogin(nullToEmpty(hotspot.getAuthorLogin())).build());
-    responseBuilder.setAuthor(author);
+    users.getAssignee().map(UserDto::getLogin).ifPresent(builder::setAssignee);
+    Optional.ofNullable(hotspot.getAuthorLogin()).ifPresent(builder::setAuthor);
   }
 
   private void formatComponents(Components components, ShowWsResponse.Builder responseBuilder) {
@@ -199,7 +189,8 @@ public class ShowAction implements HotspotsWsAction {
     return formattingContext;
   }
 
-  private void formatUsers(ShowWsResponse.Builder responseBuilder, Common.User.Builder userBuilder, Users users, FormattingContext formattingContext) {
+  private void formatUsers(ShowWsResponse.Builder responseBuilder, Users users, FormattingContext formattingContext) {
+    Common.User.Builder userBuilder = Common.User.newBuilder();
     Stream.concat(
       Stream.of(users.getAssignee(), users.getAuthor())
         .filter(Optional::isPresent)
index 2a2f67a226398d2d227b37105ca9c423b1702d6c..1e73526a84d6ec0973cfc76fb152e2e969243b31 100644 (file)
@@ -331,7 +331,9 @@ public class ShowActionTest {
     Hotspots.ShowWsResponse response = newRequest(hotspot)
       .executeProtobuf(Hotspots.ShowWsResponse.class);
 
-    User wsAssignee = response.getAssignee();
+    assertThat(response.getAssignee()).isEqualTo(assignee.getLogin());
+    assertThat(response.getUsersList()).hasSize(1);
+    User wsAssignee = response.getUsersList().iterator().next();
     assertThat(wsAssignee.getLogin()).isEqualTo(assignee.getLogin());
     assertThat(wsAssignee.getName()).isEqualTo(assignee.getName());
     assertThat(wsAssignee.getActive()).isEqualTo(assignee.isActive());
@@ -352,11 +354,12 @@ public class ShowActionTest {
     Hotspots.ShowWsResponse response = newRequest(hotspot)
       .executeProtobuf(Hotspots.ShowWsResponse.class);
 
-    assertThat(response.getAssignee().hasAvatar()).isFalse();
+    assertThat(response.getUsersList()).hasSize(1);
+    assertThat(response.getUsersList().iterator().next().hasAvatar()).isFalse();
   }
 
   @Test
-  public void returns_inactive_when_author_is_inactive() {
+  public void returns_inactive_when_assignee_is_inactive() {
     ComponentDto project = dbTester.components().insertPublicProject();
     userSessionRule.registerComponents(project);
     ComponentDto file = dbTester.components().insertComponent(newFileDto(project));
@@ -369,7 +372,6 @@ public class ShowActionTest {
     Hotspots.ShowWsResponse response = newRequest(hotspot)
       .executeProtobuf(Hotspots.ShowWsResponse.class);
 
-    assertThat(response.getAssignee().getActive()).isFalse();
     assertThat(response.getUsersList()).hasSize(1);
     assertThat(response.getUsersList().iterator().next().getActive()).isFalse();
   }
@@ -388,12 +390,8 @@ public class ShowActionTest {
     Hotspots.ShowWsResponse response = newRequest(hotspot)
       .executeProtobuf(Hotspots.ShowWsResponse.class);
 
-    User wsAuthor = response.getAuthor();
-    assertThat(wsAuthor.getLogin()).isEqualTo(authorLogin);
-    assertThat(wsAuthor.hasName()).isFalse();
-    assertThat(wsAuthor.hasActive()).isFalse();
-    assertThat(wsAuthor.hasAvatar()).isFalse();
     assertThat(response.getUsersList()).isEmpty();
+    assertThat(response.getAuthor()).isEqualTo(authorLogin);
   }
 
   @Test
@@ -410,12 +408,7 @@ public class ShowActionTest {
     Hotspots.ShowWsResponse response = newRequest(hotspot)
       .executeProtobuf(Hotspots.ShowWsResponse.class);
 
-    User wsAuthor = response.getAuthor();
-    assertThat(wsAuthor.getLogin()).isEqualTo(author.getLogin());
-    assertThat(wsAuthor.getName()).isEqualTo(author.getName());
-    assertThat(wsAuthor.getActive()).isEqualTo(author.isActive());
-    assertThat(wsAuthor.getAvatar()).isEqualTo(avatarResolver.create(author));
-    assertThat(response.getUsersList()).hasSize(1);
+    assertThat(response.getAuthor()).isEqualTo(author.getLogin());
     User wsAuthorFromList = response.getUsersList().iterator().next();
     assertThat(wsAuthorFromList.getLogin()).isEqualTo(author.getLogin());
     assertThat(wsAuthorFromList.getName()).isEqualTo(author.getName());
@@ -437,7 +430,6 @@ public class ShowActionTest {
     Hotspots.ShowWsResponse response = newRequest(hotspot)
       .executeProtobuf(Hotspots.ShowWsResponse.class);
 
-    assertThat(response.getAuthor().hasAvatar()).isFalse();
     assertThat(response.getUsersList()).hasSize(1);
     assertThat(response.getUsersList().iterator().next().hasAvatar()).isFalse();
   }
@@ -456,7 +448,8 @@ public class ShowActionTest {
     Hotspots.ShowWsResponse response = newRequest(hotspot)
       .executeProtobuf(Hotspots.ShowWsResponse.class);
 
-    assertThat(response.getAuthor().getActive()).isFalse();
+    assertThat(response.getUsersList()).hasSize(1);
+    assertThat(response.getUsersList().iterator().next().getActive()).isFalse();
   }
 
   @DataProvider
index 66ea284f4a9258345ca69183a04f3ded2ac72ea2..2a4c53025e1a57847c7e30e0c169d428127baf18 100644 (file)
@@ -59,8 +59,8 @@ message ShowWsResponse {
   optional string resolution = 6;
   optional int32 line = 7;
   optional string message = 8;
-  optional sonarqube.ws.commons.User assignee = 9;
-  optional sonarqube.ws.commons.User author = 10;
+  optional string assignee = 9;
+  optional string author = 10;
   optional string creationDate = 11;
   optional string updateDate = 12;
   optional sonarqube.ws.commons.TextRange textRange = 13;