]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-20181 Rename api/v2 pageRestResponse to page and improve doc
authorAurelien Poscia <aurelien.poscia@sonarsource.com>
Wed, 16 Aug 2023 12:21:04 +0000 (14:21 +0200)
committersonartech <sonartech@sonarsource.com>
Fri, 18 Aug 2023 20:02:50 +0000 (20:02 +0000)
server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/model/RestPage.java
server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/controller/UserController.java
server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/request/UsersSearchRestRequest.java
server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/api/user/response/UsersSearchRestResponse.java
server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/api/user/controller/DefaultUserControllerTest.java
server/sonar-webserver-webapi-v2/src/test/java/org/sonar/server/v2/api/user/converter/UsersSearchRestResponseGeneratorTest.java

index 8336a2385b9d01249a5fe8496f846dab09a3113c..6a1141c28617b9edfd014dddb0484478ea402157 100644 (file)
@@ -20,7 +20,6 @@
 package org.sonar.server.v2.api.model;
 
 import com.google.common.annotations.VisibleForTesting;
-import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
@@ -30,15 +29,11 @@ import org.jetbrains.annotations.Nullable;
 public record RestPage(
   @Min(1)
   @Max(500)
-  @Parameter(
-    description = "Number of results per page",
-    schema = @Schema(defaultValue = DEFAULT_PAGE_SIZE, implementation = Integer.class))
+  @Schema(defaultValue = DEFAULT_PAGE_SIZE, description = "Number of results per page")
   Integer pageSize,
 
   @Positive
-  @Parameter(
-    description = "1-based page number",
-    schema = @Schema(defaultValue = DEFAULT_PAGE_INDEX, implementation = Integer.class))
+  @Schema(defaultValue = DEFAULT_PAGE_INDEX, description = "Number of results per page")
   Integer pageIndex
 ) {
 
index 2e9087fc3310c289e563f56fa910bf279a60df9c..e0271e896ee42cd1b2e41ee304de9add01d43965 100644 (file)
@@ -65,10 +65,14 @@ public interface UserController {
 
   @DeleteMapping(path = "/{login}")
   @ResponseStatus(HttpStatus.NO_CONTENT)
-  @Operation(summary = "Deactivate a user", description = "Deactivate a user. Requires Administer System permission.")
+  @Operation(summary = "Deactivate a user", description = "Deactivates a user. Requires Administer System permission.")
   void deactivate(
-    @PathVariable("login") @Parameter(description = "The login of the user to delete.", required = true, in = ParameterIn.PATH) String login,
-    @RequestParam(value = "anonymize", required = false, defaultValue = "false") @Parameter(description = "Anonymize user in addition to deactivating it.") Boolean anonymize);
+    @PathVariable("login")
+    @Parameter(description = "The login of the user to delete.", required = true, in = ParameterIn.PATH)
+    String login,
+    @RequestParam(value = "anonymize", required = false, defaultValue = "false")
+    @Parameter(description = "Anonymize user in addition to deactivating it.")
+    Boolean anonymize);
 
   @GetMapping(path = "/{login}")
   @ResponseStatus(HttpStatus.OK)
@@ -93,6 +97,6 @@ public interface UserController {
       If a deactivated user account exists with the given login, it will be reactivated.
       Requires Administer System permission
     """)
-  RestUser create(@Valid @RequestBody(required = true) UserCreateRestRequest userCreateRestRequest);
+  RestUser create(@Valid @RequestBody UserCreateRestRequest userCreateRestRequest);
 
 }
index 318424c8a858f80dde07941360aa863e90349e7e..7c372ee2fb70c6192b10177f9b7a600f5e51a3bd 100644 (file)
  */
 package org.sonar.server.v2.api.user.request;
 
-import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
 import javax.annotation.Nullable;
 
 public record UsersSearchRestRequest(
-  @Parameter(
-    description = "Return active/inactive users",
-    schema = @Schema(defaultValue = "true", implementation = Boolean.class))
+  @Schema(defaultValue = "true", description = "Return active/inactive users")
   Boolean active,
   @Nullable
-  @Parameter(description = "Return managed or non-managed users. Only available for managed instances, throws for non-managed instances")
+  @Schema(description = "Return managed or non-managed users. Only available for managed instances, throws for non-managed instances")
   Boolean managed,
   @Nullable
-  @Parameter(description = "Filter on login, name and email.\n"
+  @Schema(description = "Filter on login, name and email.\n"
     + "This parameter can either perform an exact match, or a partial match (contains), it is case insensitive.")
   String q,
   @Nullable
-  @Parameter(description = "Filter the users based on the last connection date field. Only users who interacted with this instance at or after the date will be returned. "
+  @Schema(description = "Filter the users based on the last connection date field. Only users who interacted with this instance at or after the date will be returned. "
     + "The format must be ISO 8601 datetime format (YYYY-MM-DDThh:mm:ss±hhmm)",
     example = "2020-01-01T00:00:00+0100")
   String sonarQubeLastConnectionDateFrom,
   @Nullable
-  @Parameter(description = "Filter the users based on the last connection date field. Only users that never connected or who interacted with this instance at "
+  @Schema(description = "Filter the users based on the last connection date field. Only users that never connected or who interacted with this instance at "
     + "or before the date will be returned. The format must be ISO 8601 datetime format (YYYY-MM-DDThh:mm:ss±hhmm)",
     example = "2020-01-01T00:00:00+0100")
   String sonarQubeLastConnectionDateTo,
   @Nullable
-  @Parameter(description = "Filter the users based on the sonar lint last connection date field Only users who interacted with this instance using SonarLint at or after "
+  @Schema(description = "Filter the users based on the sonar lint last connection date field Only users who interacted with this instance using SonarLint at or after "
     + "the date will be returned. The format must be ISO 8601 datetime format (YYYY-MM-DDThh:mm:ss±hhmm)",
     example = "2020-01-01T00:00:00+0100")
   String sonarLintLastConnectionDateFrom,
   @Nullable
-  @Parameter(description = "Filter the users based on the sonar lint last connection date field. Only users that never connected or who interacted with this instance "
+  @Schema(description = "Filter the users based on the sonar lint last connection date field. Only users that never connected or who interacted with this instance "
     + "using SonarLint at or before the date will be returned. The format must be ISO 8601 datetime format (YYYY-MM-DDThh:mm:ss±hhmm)",
     example = "2020-01-01T00:00:00+0100")
   String sonarLintLastConnectionDateTo
index 38e5a2dd8973d317400c917d481b45f281af30b3..9ef72a477d51ecf92cf1651f20559e6b44d5379c 100644 (file)
@@ -23,5 +23,5 @@ import java.util.List;
 import org.sonar.server.v2.api.response.PageRestResponse;
 import org.sonar.server.v2.api.user.model.RestUser;
 
-public record UsersSearchRestResponse(List<RestUser> users, PageRestResponse pageRestResponse) {
+public record UsersSearchRestResponse(List<RestUser> users, PageRestResponse page) {
 }
index 8f42313d81317c04f7194c7ef92210e41830553d..bcfdd4be4fd150a93492a9acddd84705df0ffdaf 100644 (file)
@@ -157,7 +157,7 @@ public class DefaultUserControllerTest {
     UsersSearchRestResponse actualUsersSearchRestResponse = gson.fromJson(mvcResult.getResponse().getContentAsString(), UsersSearchRestResponse.class);
     assertThat(actualUsersSearchRestResponse.users())
       .containsExactlyElementsOf(restUsers);
-    assertThat(actualUsersSearchRestResponse.pageRestResponse().total()).isEqualTo(users.size());
+    assertThat(actualUsersSearchRestResponse.page().total()).isEqualTo(users.size());
 
   }
 
index 17ac7aeec512911406c2c10130d7eae89a7dd2fb..e33ed4283cfca29d609842c7d668e6ea202ed47f 100644 (file)
@@ -57,7 +57,7 @@ public class UsersSearchRestResponseGeneratorTest {
     UsersSearchRestResponse usersForResponse = usersSearchRestResponseGenerator.toUsersForResponse(List.of(), paging);
 
     assertThat(usersForResponse.users()).isEmpty();
-    assertPaginationInformationAreCorrect(paging, usersForResponse.pageRestResponse());
+    assertPaginationInformationAreCorrect(paging, usersForResponse.page());
   }
 
   @Test
@@ -75,7 +75,7 @@ public class UsersSearchRestResponseGeneratorTest {
     RestUser expectUser1 = buildExpectedResponseForAdmin(userSearchResult1);
     RestUser expectUser2 = buildExpectedResponseForAdmin(userSearchResult2);
     assertThat(usersForResponse.users()).containsExactly(expectUser1, expectUser2);
-    assertPaginationInformationAreCorrect(paging, usersForResponse.pageRestResponse());
+    assertPaginationInformationAreCorrect(paging, usersForResponse.page());
   }
 
   private static RestUser buildExpectedResponseForAdmin(UserSearchResult userSearchResult) {
@@ -113,7 +113,7 @@ public class UsersSearchRestResponseGeneratorTest {
     RestUser expectUser1 = buildExpectedResponseForUser(userSearchResult1);
     RestUser expectUser2 = buildExpectedResponseForUser(userSearchResult2);
     assertThat(usersForResponse.users()).containsExactly(expectUser1, expectUser2);
-    assertPaginationInformationAreCorrect(paging, usersForResponse.pageRestResponse());
+    assertPaginationInformationAreCorrect(paging, usersForResponse.page());
   }
 
   private static RestUser buildExpectedResponseForUser(UserSearchResult userSearchResult) {
@@ -149,7 +149,7 @@ public class UsersSearchRestResponseGeneratorTest {
     RestUser expectUser1 = buildExpectedResponseForAnonymous(userSearchResult1);
     RestUser expectUser2 = buildExpectedResponseForAnonymous(userSearchResult2);
     assertThat(usersForResponse.users()).containsExactly(expectUser1, expectUser2);
-    assertPaginationInformationAreCorrect(paging, usersForResponse.pageRestResponse());
+    assertPaginationInformationAreCorrect(paging, usersForResponse.page());
   }
 
   private static RestUser buildExpectedResponseForAnonymous(UserSearchResult userSearchResult) {