Merge pull request 'fix/omadarootcontainer' (#28) from fix/omadarootcontainer into main

Reviewed-on: #28
This commit is contained in:
Jan Weber 2025-11-27 16:51:45 +00:00
commit 9ca440c1be
6 changed files with 48 additions and 11 deletions

View file

@ -18,7 +18,7 @@ export const useGroupStore = defineStore('group', {
this.loading = true;
const url = `${config.backendUrl}/groups`;
const resp = await performRequest(this,'GET', url, null);
this.groups = resp.data;
this.groups = resp.data.groups;
this.loading = false;
}
}

View file

@ -56,8 +56,8 @@ export const useUsersStore = defineStore('users', {
};
this.loading = false;
this.empty = data.length === 0;
this.users = data;
this.empty = data.users.length === 0;
this.users = data.users;
}
}

View file

@ -1,5 +1,6 @@
package de.avatic.lcc.controller.users;
import de.avatic.lcc.dto.users.GroupContainerDTO;
import de.avatic.lcc.dto.users.GroupDTO;
import de.avatic.lcc.repositories.pagination.SearchQueryResult;
import de.avatic.lcc.service.users.GroupService;
@ -34,16 +35,19 @@ public class GroupController {
*/
@GetMapping({"/", ""})
@PreAuthorize("hasAnyRole('RIGHT-MANAGEMENT', 'SERVICE')")
public ResponseEntity<List<GroupDTO>> listGroups(@RequestParam(defaultValue = "20") @Min(1) int limit,
public ResponseEntity<GroupContainerDTO> listGroups(@RequestParam(defaultValue = "20") @Min(1) int limit,
@RequestParam(defaultValue = "1") @Min(1) int page) {
SearchQueryResult<GroupDTO> groups = groupService.listGroups(page, limit);
var container = new GroupContainerDTO();
container.setGroups(groups.toList());
return ResponseEntity.ok()
.header("X-Total-Count", String.valueOf(groups.getTotalElements()))
.header("X-Page-Count", String.valueOf(groups.getTotalPages()))
.header("X-Current-Page", String.valueOf(page))
.body(groups.toList());
.body(container);
}
}

View file

@ -1,19 +1,17 @@
package de.avatic.lcc.controller.users;
import de.avatic.lcc.dto.users.UserContainerDTO;
import de.avatic.lcc.dto.users.UserDTO;
import de.avatic.lcc.repositories.pagination.SearchQueryResult;
import de.avatic.lcc.service.users.UserService;
import jakarta.validation.Valid;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Optional;
/**
@ -41,17 +39,20 @@ public class UserController {
*/
@GetMapping({"/", ""})
@PreAuthorize("hasRole('RIGHT-MANAGEMENT')")
public ResponseEntity<List<UserDTO>> listUsers(
public ResponseEntity<UserContainerDTO> listUsers(
@RequestParam(defaultValue = "20") @Min(1) int limit,
@RequestParam(defaultValue = "1") @Min(1) int page) {
SearchQueryResult<UserDTO> users = userService.listUsers(page, limit);
var container = new UserContainerDTO();
container.setUsers( users.toList());
return ResponseEntity.ok()
.header("X-Total-Count", String.valueOf(users.getTotalElements()))
.header("X-Page-Count", String.valueOf(users.getTotalPages()))
.header("X-Current-Page", String.valueOf(page))
.body(users.toList());
.body(container);
}

View file

@ -0,0 +1,16 @@
package de.avatic.lcc.dto.users;
import java.util.List;
public class GroupContainerDTO {
private List<GroupDTO> groups;
public List<GroupDTO> getGroups() {
return groups;
}
public void setGroups(List<GroupDTO> groups) {
this.groups = groups;
}
}

View file

@ -0,0 +1,16 @@
package de.avatic.lcc.dto.users;
import java.util.List;
public class UserContainerDTO {
private List<UserDTO> users;
public List<UserDTO> getUsers() {
return users;
}
public void setUsers(List<UserDTO> users) {
this.users = users;
}
}