Skip to content

Commit

Permalink
Introduce hasBanner and hasAvatar
Browse files Browse the repository at this point in the history
  • Loading branch information
Portals committed Jun 10, 2024
1 parent 1cfac51 commit 23071d4
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -134,18 +134,6 @@ public Optional<Group> get(GroupId groupId) {
.map(this.groupEntityConverter::toDomain);
}

@Override
public List<GroupMember> getAllMembersBySuperGroup(SuperGroupId superGroupId) {
return this.membershipJpaRepository.findAllBySuperGroup(superGroupId.value()).stream()
.map(
membershipEntity ->
new GroupMember(
this.postEntityConverter.toDomain(membershipEntity.getId().getPost()),
new UnofficialPostName(membershipEntity.getUnofficialPostName()),
this.userEntityConverter.toDomain(membershipEntity.getId().getUser())))
.toList();
}

private GroupEntity toEntity(Group group) {
GroupEntity entity =
this.groupJpaRepository.findById(group.id().value()).orElse(new GroupEntity());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ void save(Group group)

Optional<Group> get(GroupId groupId);

List<GroupMember> getAllMembersBySuperGroup(SuperGroupId superGroupId);

class GroupNotFoundException extends Exception {}

class GroupNameAlreadyExistsException extends Exception {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import it.chalmers.gamma.app.common.PrettyName;
import it.chalmers.gamma.app.common.Text;
import it.chalmers.gamma.app.group.GroupFacade;
import it.chalmers.gamma.app.group.domain.Group;
import it.chalmers.gamma.app.group.domain.GroupRepository;
import it.chalmers.gamma.app.supergroup.domain.*;
import it.chalmers.gamma.app.user.domain.Name;
Expand Down Expand Up @@ -79,12 +80,27 @@ public List<SuperGroupTypeDTO> getAllTypesWithSuperGroups() {
for (SuperGroupType type : superGroupTypes) {
List<SuperGroupWithMembersDTO> superGroupsOutput = new ArrayList<>();
for (SuperGroup superGroup : this.superGroupRepository.getAllByType(type)) {
List<Group> groups = this.groupRepository.getAllBySuperGroup(superGroup.id());

boolean hasAvatar =
groups.stream()
.map(Group::avatarUri)
.map(Optional::isPresent)
.reduce(false, (a, b) -> a || b);
boolean hasBanner =
groups.stream()
.map(Group::bannerUri)
.map(Optional::isPresent)
.reduce(false, (a, b) -> a || b);
List<GroupFacade.GroupMemberDTO> members =
this.groupRepository.getAllMembersBySuperGroup(superGroup.id()).stream()
groups.stream()
.flatMap(group -> group.groupMembers().stream())
.map(GroupFacade.GroupMemberDTO::new)
.toList();

superGroupsOutput.add(new SuperGroupWithMembersDTO(new SuperGroupDTO(superGroup), members));
superGroupsOutput.add(
new SuperGroupWithMembersDTO(
new SuperGroupDTO(superGroup), hasBanner, hasAvatar, members));
}

output.add(new SuperGroupTypeDTO(type.value(), superGroupsOutput));
Expand All @@ -94,7 +110,10 @@ public List<SuperGroupTypeDTO> getAllTypesWithSuperGroups() {
}

public record SuperGroupWithMembersDTO(
SuperGroupDTO superGroup, List<GroupFacade.GroupMemberDTO> members) {}
SuperGroupDTO superGroup,
boolean hasBanner,
boolean hasAvatar,
List<GroupFacade.GroupMemberDTO> members) {}

public record SuperGroupTypeDTO(String type, List<SuperGroupWithMembersDTO> superGroups) {}

Expand Down

0 comments on commit 23071d4

Please sign in to comment.