diff --git a/src/main/java/mops/gruppen2/repository/EventRepository.java b/src/main/java/mops/gruppen2/repository/EventRepository.java index 4bbd2d7..5efc363 100644 --- a/src/main/java/mops/gruppen2/repository/EventRepository.java +++ b/src/main/java/mops/gruppen2/repository/EventRepository.java @@ -19,8 +19,8 @@ public interface EventRepository extends CrudRepository { //@Query("SELECT * FROM event WHERE event_id > ?#{[0]}") //Iterable findNewEventSinceStatus(@Param("status") Long status); - @Query("select * from event where visibility =:vis") - List findEventDTOByVisibility(@Param("vis") Boolean visibility); + @Query("select distinct group_id from event where visibility =:vis") + List findGroup_idsWhereVisibility(@Param("vis") Boolean visibility); @Query("SELECT DISTINCT group_id FROM event WHERE event_id > :status") public List findNewEventSinceStatus(@Param("status") Long status); diff --git a/src/main/java/mops/gruppen2/service/GroupService.java b/src/main/java/mops/gruppen2/service/GroupService.java index 8a39f5e..d000aec 100644 --- a/src/main/java/mops/gruppen2/service/GroupService.java +++ b/src/main/java/mops/gruppen2/service/GroupService.java @@ -3,6 +3,7 @@ package mops.gruppen2.service; import mops.gruppen2.domain.EventDTO; import mops.gruppen2.domain.Exceptions.EventException; import mops.gruppen2.domain.Group; +import mops.gruppen2.domain.Visibility; import mops.gruppen2.domain.event.Event; import mops.gruppen2.repository.EventRepository; import org.springframework.stereotype.Service; @@ -76,14 +77,16 @@ public class GroupService { * @return * @throws EventException */ + public List getAllGroupWithVisibilityPublic() throws EventException { - return projectEventList(eventService.translateEventDTOs(eventRepository.findEventDTOByVisibility(Boolean.TRUE))); + List group_ids = eventRepository.findGroup_idsWhereVisibility(Boolean.TRUE); + List eventDTOS = eventRepository.findAllEventsOfGroups(group_ids); + List events = eventService.translateEventDTOs(eventDTOS); + List groups = projectEventList(events); + return groups; } - - - /** * Filtert alle öffentliche Gruppen nach dem suchbegriff und gibt diese als Liste von Gruppen zurück. * Groß und kleinschreibung wird beachtet.