Refactor of all addFromCsv in Deteils complete
Co-authored-by: AndiBuls<andreas.buls@uni-duesseldorf.de>
This commit is contained in:
@ -129,11 +129,7 @@ public class WebController {
|
||||
@RequestParam("group_id") String groupId,
|
||||
@RequestParam(value = "file", required = false) MultipartFile file) throws IOException {
|
||||
Account account = keyCloakService.createAccountFromPrincipal(token);
|
||||
List<User> userList = new ArrayList<>();
|
||||
Group group = userService.getGroupById(UUID.fromString(groupId));
|
||||
userList = validationService.checkFile(file, userList, groupId, group, account);
|
||||
UUID groupUUID = controllerService.getUUID(groupId);
|
||||
controllerService.addUserList(userList, groupUUID);
|
||||
controllerService.addUsersFromCsv(account, file, groupId);
|
||||
return "redirect:/gruppen2/details/members/" + groupId;
|
||||
}
|
||||
|
||||
|
||||
@ -92,6 +92,22 @@ public class ControllerService {
|
||||
addUserList(newUsers, groupId);
|
||||
}
|
||||
|
||||
public void addUsersFromCsv(Account account, MultipartFile file, String groupId) throws IOException{
|
||||
Group group = userService.getGroupById(UUID.fromString(groupId));
|
||||
|
||||
List<User> newUserList = readCsvFile(file);
|
||||
removeOldUsersFromNewUsers(group.getMembers(), newUserList);
|
||||
|
||||
UUID groupUUID = getUUID(groupId);
|
||||
|
||||
Long newUserMaximum = adjustUserMaximum((long) newUserList.size(), (long) group.getMembers().size(), group.getUserMaximum());
|
||||
if (newUserMaximum > group.getUserMaximum()){
|
||||
updateMaxUser(account, groupUUID, newUserMaximum);
|
||||
}
|
||||
|
||||
addUserList(newUserList, groupUUID);
|
||||
}
|
||||
|
||||
private void removeOldUsersFromNewUsers(List<User> oldUsers, List<User> newUsers) {
|
||||
for (User oldUser : oldUsers) {
|
||||
newUsers.remove(oldUser);
|
||||
@ -153,8 +169,8 @@ public class ControllerService {
|
||||
eventService.saveEvent(addUserEvent);
|
||||
}
|
||||
|
||||
public void addUserList(List<User> users, UUID groupId) {
|
||||
for (User user : users) {
|
||||
public void addUserList(List<User> newUsers, UUID groupId) {
|
||||
for (User user : newUsers) {
|
||||
Group group = userService.getGroupById(groupId);
|
||||
if (group.getMembers().contains(user)) {
|
||||
logger.info("Benutzer " + user.getId() + " ist bereits in Gruppe");
|
||||
|
||||
@ -108,20 +108,6 @@ public class ValidationService {
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<User> checkFile(MultipartFile file, List<User> userList, String groupId, Group group, Account account) {
|
||||
if (!file.isEmpty()) {
|
||||
try {
|
||||
userList = CsvService.read(file.getInputStream());
|
||||
if (userList.size() + group.getMembers().size() > group.getUserMaximum()) {
|
||||
controllerService.updateMaxUser(account, UUID.fromString(groupId), (long) userList.size() + group.getMembers().size());
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
throw new WrongFileException(file.getOriginalFilename());
|
||||
}
|
||||
}
|
||||
return userList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Überprüft ob alle Felder richtig gesetzt sind.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user