removed UserReference

This commit is contained in:
Patrick Haßel 2024-11-06 13:26:14 +01:00
parent a9e08775d1
commit bff407c446
5 changed files with 10 additions and 81 deletions

View File

@ -4,7 +4,6 @@ import de.ph87.tools.group.Group;
import de.ph87.tools.tools.numbers.uuid.NumbersAbstract; import de.ph87.tools.tools.numbers.uuid.NumbersAbstract;
import de.ph87.tools.tools.numbers.uuid.NumbersUuid; import de.ph87.tools.tools.numbers.uuid.NumbersUuid;
import de.ph87.tools.user.User; import de.ph87.tools.user.User;
import de.ph87.tools.user.reference.UserReference;
import jakarta.annotation.Nullable; import jakarta.annotation.Nullable;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.*; import lombok.*;
@ -50,11 +49,11 @@ public class Numbers extends NumbersAbstract {
private ZonedDateTime read = null; private ZonedDateTime read = null;
@NonNull @NonNull
@ManyToMany
@OrderColumn @OrderColumn
@OneToMany(orphanRemoval = true) private List<User> users;
private List<UserReference> users;
public Numbers(@NonNull final Group group, @NonNull final List<UserReference> users) { public Numbers(@NonNull final Group group, @NonNull final List<User> users) {
this.group = group; this.group = group;
this.users = users; this.users = users;
} }
@ -68,17 +67,17 @@ public class Numbers extends NumbersAbstract {
@Nullable @Nullable
public Integer getNumberForUser(@NonNull final User user) { public Integer getNumberForUser(@NonNull final User user) {
for (int userReferenceIndex = 0; userReferenceIndex < users.size(); userReferenceIndex++) { for (int index = 0; index < users.size(); index++) {
final UserReference userReference = users.get(userReferenceIndex); final User userAtIndex = users.get(index);
if (userReference.getUser() != null && userReference.getUser().equals(user)) { if (user.equals(userAtIndex)) {
return userReferenceIndex + 1; return index + 1;
} }
} }
return null; return null;
} }
public boolean containsUser(@NonNull final User user) { public boolean containsUser(@NonNull final User user) {
return users.stream().anyMatch(u -> user.equals(u.getUser())); return users.stream().anyMatch(user::equals);
} }
} }

View File

@ -9,8 +9,6 @@ import de.ph87.tools.tools.numbers.uuid.NumbersUuid;
import de.ph87.tools.user.User; import de.ph87.tools.user.User;
import de.ph87.tools.user.UserAccessService; import de.ph87.tools.user.UserAccessService;
import de.ph87.tools.user.push.UserPushService; import de.ph87.tools.user.push.UserPushService;
import de.ph87.tools.user.reference.UserReference;
import de.ph87.tools.user.reference.UserReferenceService;
import de.ph87.tools.user.uuid.UserPrivateUuid; import de.ph87.tools.user.uuid.UserPrivateUuid;
import lombok.NonNull; import lombok.NonNull;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -24,10 +22,10 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.server.ResponseStatusException; import org.springframework.web.server.ResponseStatusException;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
@ -39,8 +37,6 @@ public class NumbersService {
private final GroupAccessService groupAccessService; private final GroupAccessService groupAccessService;
private final UserReferenceService userReferenceService;
private final UserPushService userPushService; private final UserPushService userPushService;
private final UserAccessService userAccessService; private final UserAccessService userAccessService;
@ -49,7 +45,7 @@ public class NumbersService {
public void create(@NonNull final UserPrivateUuid userPrivateUuid, @NonNull final GroupUuid groupUuid) { public void create(@NonNull final UserPrivateUuid userPrivateUuid, @NonNull final GroupUuid groupUuid) {
final GroupAccess access = groupAccessService.ownerAccess(userPrivateUuid, groupUuid); final GroupAccess access = groupAccessService.ownerAccess(userPrivateUuid, groupUuid);
final List<UserReference> users = access.getGroup().getUsers().stream().map(userReferenceService::create).collect(Collectors.toList()); final List<User> users = new ArrayList<>(access.getGroup().getUsers());
Collections.shuffle(users); Collections.shuffle(users);
final Numbers numbers = numbersRepository.save(new Numbers(access.getGroup(), users)); final Numbers numbers = numbersRepository.save(new Numbers(access.getGroup(), users));
publish(numbers); publish(numbers);
@ -58,7 +54,6 @@ public class NumbersService {
private void publish(@NonNull final Numbers numbers) { private void publish(@NonNull final Numbers numbers) {
numbers.getUsers() numbers.getUsers()
.stream() .stream()
.map(UserReference::getUser)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.forEach(user -> publish(numbers, user)); .forEach(user -> publish(numbers, user));
} }

View File

@ -1,35 +0,0 @@
package de.ph87.tools.user.reference;
import de.ph87.tools.user.User;
import jakarta.annotation.Nullable;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.ToString;
@Entity
@Getter
@ToString
@NoArgsConstructor
@Table(name = "`user_reference`")
public class UserReference {
@Id
@GeneratedValue
private long id;
@Nullable
@ManyToOne
private User user;
@NonNull
@Column(nullable = false)
private String name;
public UserReference(@NonNull final User user) {
this.user = user;
this.name = user.getName();
}
}

View File

@ -1,7 +0,0 @@
package de.ph87.tools.user.reference;
import org.springframework.data.repository.ListCrudRepository;
public interface UserReferenceRepository extends ListCrudRepository<UserReference, Long> {
}

View File

@ -1,23 +0,0 @@
package de.ph87.tools.user.reference;
import de.ph87.tools.user.User;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Slf4j
@Service
@Transactional
@RequiredArgsConstructor
public class UserReferenceService {
private final UserReferenceRepository userReferenceRepository;
@NonNull
public UserReference create(@NonNull final User user) {
return userReferenceRepository.save(new UserReference(user));
}
}