♻️ Add DTOs and mappers
This commit is contained in:
parent
c5bccf477c
commit
d873d19a8c
9
src/main/java/dev/dinauer/maven/app/ArtifactDTO.java
Normal file
9
src/main/java/dev/dinauer/maven/app/ArtifactDTO.java
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
package dev.dinauer.maven.app;
|
||||||
|
|
||||||
|
import dev.dinauer.maven.user.User;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public record ArtifactDTO(String id, String groupId, String artifactId, List<VersionDTO> versions)
|
||||||
|
{
|
||||||
|
}
|
||||||
45
src/main/java/dev/dinauer/maven/app/ArtifactMapper.java
Normal file
45
src/main/java/dev/dinauer/maven/app/ArtifactMapper.java
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
package dev.dinauer.maven.app;
|
||||||
|
|
||||||
|
import dev.dinauer.maven.maven.core.ArtifactId;
|
||||||
|
import dev.dinauer.maven.maven.core.GroupId;
|
||||||
|
import dev.dinauer.maven.shared.UserReferencing;
|
||||||
|
import dev.dinauer.maven.user.User;
|
||||||
|
import dev.dinauer.maven.user.UserClient;
|
||||||
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
import org.eclipse.microprofile.rest.client.inject.RestClient;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ApplicationScoped
|
||||||
|
public class ArtifactMapper
|
||||||
|
{
|
||||||
|
@Inject
|
||||||
|
VersionMapper versionMapper;
|
||||||
|
|
||||||
|
@RestClient
|
||||||
|
UserClient userClient;
|
||||||
|
|
||||||
|
public List<ArtifactDTO> map(List<ArtifactId> input)
|
||||||
|
{
|
||||||
|
return input.stream().map(artifact -> this.map(artifact, userClient.get(UserReferencing.collect(input)))).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ArtifactDTO> map(List<ArtifactId> input, Map<String, User> users)
|
||||||
|
{
|
||||||
|
return input.stream().map(artifact -> this.map(artifact, users)).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArtifactDTO map(ArtifactId input)
|
||||||
|
{
|
||||||
|
return map(input, userClient.get(input.getUserIds()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArtifactDTO map(ArtifactId input, Map<String, User> users)
|
||||||
|
{
|
||||||
|
return new ArtifactDTO(input.getId(), input.getGroup().getGroupId(), input.getArtifactId(), versionMapper.map(input.getVersions(), users));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -23,23 +23,20 @@ public class ArtifactResource
|
|||||||
@Inject
|
@Inject
|
||||||
ArtifactRepo artifactRepo;
|
ArtifactRepo artifactRepo;
|
||||||
|
|
||||||
@RestClient
|
|
||||||
UserClient userClient;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ResponseEnhancementService responseEnhancementService;
|
ArtifactMapper artifactMapper;
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
public EnhancedResponse get()
|
public List<ArtifactDTO> get()
|
||||||
{
|
{
|
||||||
return find();
|
return artifactMapper.map(artifactRepo.listAll());
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/{id}")
|
@Path("/{id}")
|
||||||
public ArtifactId getById(@PathParam("id") String id)
|
public ArtifactDTO getById(@PathParam("id") String id)
|
||||||
{
|
{
|
||||||
return artifactRepo.findById(id);
|
return artifactMapper.map(artifactRepo.findById(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
@DELETE
|
@DELETE
|
||||||
@ -49,9 +46,4 @@ public class ArtifactResource
|
|||||||
{
|
{
|
||||||
artifactRepo.deleteById(id);
|
artifactRepo.deleteById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
private EnhancedResponse find()
|
|
||||||
{
|
|
||||||
return responseEnhancementService.enhance(artifactRepo.listAll());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
7
src/main/java/dev/dinauer/maven/app/GroupDTO.java
Normal file
7
src/main/java/dev/dinauer/maven/app/GroupDTO.java
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
package dev.dinauer.maven.app;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public record GroupDTO(String id, String groupId, List<ArtifactDTO> artifacts)
|
||||||
|
{
|
||||||
|
}
|
||||||
34
src/main/java/dev/dinauer/maven/app/GroupMapper.java
Normal file
34
src/main/java/dev/dinauer/maven/app/GroupMapper.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package dev.dinauer.maven.app;
|
||||||
|
|
||||||
|
import dev.dinauer.maven.maven.core.GroupId;
|
||||||
|
import dev.dinauer.maven.shared.UserReferencing;
|
||||||
|
import dev.dinauer.maven.user.User;
|
||||||
|
import dev.dinauer.maven.user.UserClient;
|
||||||
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
import org.eclipse.microprofile.rest.client.inject.RestClient;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ApplicationScoped
|
||||||
|
public class GroupMapper
|
||||||
|
{
|
||||||
|
@Inject
|
||||||
|
ArtifactMapper artifactMapper;
|
||||||
|
|
||||||
|
@RestClient
|
||||||
|
UserClient userClient;
|
||||||
|
|
||||||
|
public List<GroupDTO> map(List<GroupId> input)
|
||||||
|
{
|
||||||
|
return input.stream().map(group -> this.map(group, userClient.get(UserReferencing.collect(input)))).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public GroupDTO map(GroupId input, Map<String, User> users)
|
||||||
|
{
|
||||||
|
return new GroupDTO(input.getId(), input.getGroupId(), artifactMapper.map(input.getArtifacts(), users));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -29,10 +29,13 @@ public class GroupResource
|
|||||||
@Inject
|
@Inject
|
||||||
SecurityIdentity securityIdentity;
|
SecurityIdentity securityIdentity;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
GroupMapper groupMapper;
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
public List<GroupId> get()
|
public List<GroupDTO> get()
|
||||||
{
|
{
|
||||||
return groupRepo.listAll();
|
return groupMapper.map(groupRepo.listAll());
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
|
|||||||
5
src/main/java/dev/dinauer/maven/app/JarDTO.java
Normal file
5
src/main/java/dev/dinauer/maven/app/JarDTO.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package dev.dinauer.maven.app;
|
||||||
|
|
||||||
|
public record JarDTO(String filename, String classifier, String md5, String sha1)
|
||||||
|
{
|
||||||
|
}
|
||||||
20
src/main/java/dev/dinauer/maven/app/JarMapper.java
Normal file
20
src/main/java/dev/dinauer/maven/app/JarMapper.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package dev.dinauer.maven.app;
|
||||||
|
|
||||||
|
import dev.dinauer.maven.maven.core.release.ReleaseJar;
|
||||||
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@ApplicationScoped
|
||||||
|
public class JarMapper
|
||||||
|
{
|
||||||
|
public List<JarDTO> map(List<ReleaseJar> input)
|
||||||
|
{
|
||||||
|
return input.stream().map(this::map).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public JarDTO map(ReleaseJar input)
|
||||||
|
{
|
||||||
|
return new JarDTO(input.getFilename(), input.getClassifier(), input.getMd5(), input.getSha1());
|
||||||
|
}
|
||||||
|
}
|
||||||
5
src/main/java/dev/dinauer/maven/app/PomDTO.java
Normal file
5
src/main/java/dev/dinauer/maven/app/PomDTO.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package dev.dinauer.maven.app;
|
||||||
|
|
||||||
|
public record PomDTO(String filename, String md5, String sha1)
|
||||||
|
{
|
||||||
|
}
|
||||||
13
src/main/java/dev/dinauer/maven/app/PomMapper.java
Normal file
13
src/main/java/dev/dinauer/maven/app/PomMapper.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package dev.dinauer.maven.app;
|
||||||
|
|
||||||
|
import dev.dinauer.maven.maven.core.release.ReleasePom;
|
||||||
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
|
|
||||||
|
@ApplicationScoped
|
||||||
|
public class PomMapper
|
||||||
|
{
|
||||||
|
public PomDTO map(ReleasePom input)
|
||||||
|
{
|
||||||
|
return new PomDTO(input.getFilename(), input.getMd5(), input.getSha1());
|
||||||
|
}
|
||||||
|
}
|
||||||
35
src/main/java/dev/dinauer/maven/app/ReleaseVersionDTO.java
Normal file
35
src/main/java/dev/dinauer/maven/app/ReleaseVersionDTO.java
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package dev.dinauer.maven.app;
|
||||||
|
|
||||||
|
import dev.dinauer.maven.user.User;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ReleaseVersionDTO extends VersionDTO
|
||||||
|
{
|
||||||
|
private final PomDTO pom;
|
||||||
|
private final List<JarDTO> jars;
|
||||||
|
private final User uploadedBy;
|
||||||
|
|
||||||
|
public ReleaseVersionDTO(String id, String version, PomDTO pom, List<JarDTO> jars, User uploadedBy)
|
||||||
|
{
|
||||||
|
super(id, version, false);
|
||||||
|
this.pom = pom;
|
||||||
|
this.jars = jars;
|
||||||
|
this.uploadedBy = uploadedBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PomDTO getPom()
|
||||||
|
{
|
||||||
|
return pom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<JarDTO> getJars()
|
||||||
|
{
|
||||||
|
return jars;
|
||||||
|
}
|
||||||
|
|
||||||
|
public User getUploadedBy()
|
||||||
|
{
|
||||||
|
return uploadedBy;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -6,8 +6,7 @@ import jakarta.enterprise.context.ApplicationScoped;
|
|||||||
import org.eclipse.microprofile.rest.client.inject.RestClient;
|
import org.eclipse.microprofile.rest.client.inject.RestClient;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@ApplicationScoped
|
@ApplicationScoped
|
||||||
public class ResponseEnhancementService
|
public class ResponseEnhancementService
|
||||||
@ -17,6 +16,6 @@ public class ResponseEnhancementService
|
|||||||
|
|
||||||
public <P extends UserReferencing> EnhancedResponse enhance(Collection<P> data)
|
public <P extends UserReferencing> EnhancedResponse enhance(Collection<P> data)
|
||||||
{
|
{
|
||||||
return new EnhancedResponse(data, userClient.get(data.stream().map(UserReferencing::getUserIds).flatMap(List::stream).collect(Collectors.toSet())));
|
return new EnhancedResponse(data, Map.of());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
11
src/main/java/dev/dinauer/maven/app/SnapshotVersionDTO.java
Normal file
11
src/main/java/dev/dinauer/maven/app/SnapshotVersionDTO.java
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package dev.dinauer.maven.app;
|
||||||
|
|
||||||
|
import dev.dinauer.maven.user.User;
|
||||||
|
|
||||||
|
public class SnapshotVersionDTO extends VersionDTO
|
||||||
|
{
|
||||||
|
public SnapshotVersionDTO(String id, String version)
|
||||||
|
{
|
||||||
|
super(id, version, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
30
src/main/java/dev/dinauer/maven/app/VersionDTO.java
Normal file
30
src/main/java/dev/dinauer/maven/app/VersionDTO.java
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package dev.dinauer.maven.app;
|
||||||
|
|
||||||
|
public class VersionDTO
|
||||||
|
{
|
||||||
|
private final String id;
|
||||||
|
private final String version;
|
||||||
|
private final boolean isSnapshot;
|
||||||
|
|
||||||
|
public VersionDTO(String id, String version, boolean isSnapshot)
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
this.version = version;
|
||||||
|
this.isSnapshot = isSnapshot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVersion()
|
||||||
|
{
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSnapshot()
|
||||||
|
{
|
||||||
|
return isSnapshot;
|
||||||
|
}
|
||||||
|
}
|
||||||
39
src/main/java/dev/dinauer/maven/app/VersionMapper.java
Normal file
39
src/main/java/dev/dinauer/maven/app/VersionMapper.java
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package dev.dinauer.maven.app;
|
||||||
|
|
||||||
|
import dev.dinauer.maven.maven.core.Version;
|
||||||
|
import dev.dinauer.maven.maven.core.release.ReleaseVersion;
|
||||||
|
import dev.dinauer.maven.maven.core.snapshot.SnapshotVersion;
|
||||||
|
import dev.dinauer.maven.user.User;
|
||||||
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ApplicationScoped
|
||||||
|
public class VersionMapper
|
||||||
|
{
|
||||||
|
@Inject
|
||||||
|
PomMapper pomMapper;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
JarMapper jarMapper;
|
||||||
|
|
||||||
|
public List<VersionDTO> map(List<Version> input, Map<String, User> users)
|
||||||
|
{
|
||||||
|
return input.stream().map(version -> this.map(version, users)).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public VersionDTO map(Version input, Map<String, User> users)
|
||||||
|
{
|
||||||
|
if (input instanceof ReleaseVersion releaseVersion)
|
||||||
|
{
|
||||||
|
return new ReleaseVersionDTO(releaseVersion.getId(), releaseVersion.getVersion(), pomMapper.map(releaseVersion.getPom()), jarMapper.map(releaseVersion.getJars()), users.get(releaseVersion.getUploadedBy()));
|
||||||
|
}
|
||||||
|
if (input instanceof SnapshotVersion snapshotVersion)
|
||||||
|
{
|
||||||
|
return new SnapshotVersionDTO(snapshotVersion.getId(), snapshotVersion.getVersion());
|
||||||
|
}
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -9,6 +9,7 @@ import jakarta.persistence.*;
|
|||||||
|
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "event")
|
@Table(name = "event")
|
||||||
@ -87,8 +88,8 @@ public class Event implements UserReferencing
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getUserIds()
|
public Set<String> getUserIds()
|
||||||
{
|
{
|
||||||
return List.of(userId);
|
return Set.of(userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import dev.dinauer.maven.user.User;
|
|||||||
import dev.dinauer.maven.event.repo.EventRepo;
|
import dev.dinauer.maven.event.repo.EventRepo;
|
||||||
import dev.dinauer.maven.user.UserClient;
|
import dev.dinauer.maven.user.UserClient;
|
||||||
import io.quarkus.panache.common.Sort;
|
import io.quarkus.panache.common.Sort;
|
||||||
|
import io.vertx.ext.web.RoutingContext;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import jakarta.ws.rs.GET;
|
import jakarta.ws.rs.GET;
|
||||||
import jakarta.ws.rs.Path;
|
import jakarta.ws.rs.Path;
|
||||||
@ -27,7 +28,7 @@ public class EventsResource
|
|||||||
ResponseEnhancementService responseEnhancementService;
|
ResponseEnhancementService responseEnhancementService;
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
public EnhancedResponse get()
|
public EnhancedResponse get(RoutingContext context)
|
||||||
{
|
{
|
||||||
return responseEnhancementService.enhance(eventRepo.listAll(Sort.by("timestamp", Sort.Direction.Descending)));
|
return responseEnhancementService.enhance(eventRepo.listAll(Sort.by("timestamp", Sort.Direction.Descending)));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,10 +10,8 @@ import jakarta.persistence.*;
|
|||||||
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
|
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
|
||||||
|
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Comparator;
|
import java.util.stream.Collectors;
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@ -163,13 +161,8 @@ public class ArtifactId implements UserReferencing
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getUserIds()
|
public Set<String> getUserIds()
|
||||||
{
|
{
|
||||||
List<String> userIds = new LinkedList<>();
|
return getVersions().stream().flatMap(version -> version.getUserIds().stream()).collect(Collectors.toSet());
|
||||||
for (ReleaseVersion releaseVersion : releaseVersions)
|
|
||||||
{
|
|
||||||
userIds.addAll(releaseVersion.getUserIds());
|
|
||||||
}
|
|
||||||
return userIds;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,15 +1,18 @@
|
|||||||
package dev.dinauer.maven.maven.core;
|
package dev.dinauer.maven.maven.core;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
||||||
|
import dev.dinauer.maven.shared.UserReferencing;
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
|
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "group_id")
|
@Table(name = "group_id")
|
||||||
public class GroupId
|
public class GroupId implements UserReferencing
|
||||||
{
|
{
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.UUID)
|
@GeneratedValue(strategy = GenerationType.UUID)
|
||||||
@ -33,6 +36,12 @@ public class GroupId
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<String> getUserIds()
|
||||||
|
{
|
||||||
|
return artifacts.stream().flatMap(artifact -> artifact.getUserIds().stream()).collect(Collectors.toSet());
|
||||||
|
}
|
||||||
|
|
||||||
public GroupId setId(String id)
|
public GroupId setId(String id)
|
||||||
{
|
{
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
package dev.dinauer.maven.maven.core;
|
package dev.dinauer.maven.maven.core;
|
||||||
|
|
||||||
public interface Version
|
import dev.dinauer.maven.shared.UserReferencing;
|
||||||
|
|
||||||
|
public interface Version extends UserReferencing
|
||||||
{
|
{
|
||||||
String getVersion();
|
String getVersion();
|
||||||
boolean isSnapshot();
|
boolean isSnapshot();
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import java.time.ZonedDateTime;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "release_version")
|
@Table(name = "release_version")
|
||||||
@ -211,9 +212,9 @@ public class ReleaseVersion implements Version, UserReferencing
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getUserIds()
|
public Set<String> getUserIds()
|
||||||
{
|
{
|
||||||
return List.of(uploadedBy);
|
return Set.of(uploadedBy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -8,6 +8,8 @@ import jakarta.persistence.*;
|
|||||||
|
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "snapshot_version")
|
@Table(name = "snapshot_version")
|
||||||
@ -36,6 +38,12 @@ public class SnapshotVersion implements Version
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<String> getUserIds()
|
||||||
|
{
|
||||||
|
return snapshotBundles.stream().map(SnapshotBundle::getUploadedBy).collect(Collectors.toSet());
|
||||||
|
}
|
||||||
|
|
||||||
public SnapshotVersion setId(String id)
|
public SnapshotVersion setId(String id)
|
||||||
{
|
{
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
|||||||
@ -2,10 +2,17 @@ package dev.dinauer.maven.shared;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.Collection;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public interface UserReferencing
|
public interface UserReferencing
|
||||||
{
|
{
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
List<String> getUserIds();
|
Set<String> getUserIds();
|
||||||
|
|
||||||
|
static Set<String> collect(Collection<? extends UserReferencing> items)
|
||||||
|
{
|
||||||
|
return items.stream().flatMap(item -> item.getUserIds().stream()).collect(Collectors.toSet());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user