diff --git a/src/main/java/mops/gruppen2/domain/service/EventStoreService.java b/src/main/java/mops/gruppen2/domain/service/EventStoreService.java
index 8acb61d..e9ebe7d 100644
--- a/src/main/java/mops/gruppen2/domain/service/EventStoreService.java
+++ b/src/main/java/mops/gruppen2/domain/service/EventStoreService.java
@@ -3,23 +3,16 @@ package mops.gruppen2.domain.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
-import mops.gruppen2.domain.event.AddMemberEvent;
import mops.gruppen2.domain.event.Event;
-import mops.gruppen2.domain.event.EventType;
import mops.gruppen2.domain.exception.BadPayloadException;
import mops.gruppen2.domain.service.helper.JsonHelper;
import mops.gruppen2.persistance.EventRepository;
import mops.gruppen2.persistance.dto.EventDTO;
import org.springframework.stereotype.Service;
-import java.util.Arrays;
import java.util.List;
-import java.util.UUID;
import java.util.stream.Collectors;
-import static mops.gruppen2.domain.event.EventType.DESTROYGROUP;
-import static mops.gruppen2.domain.service.helper.CommonHelper.eventTypesToString;
-
@Log4j2
@RequiredArgsConstructor
@Service
@@ -110,82 +103,10 @@ public class EventStoreService {
}
- // ######################################## QUERIES ##########################################
-
-
- /**
- * Liefert Gruppen-Ids von existierenden (ungelöschten) Gruppen, in welchen der User teilnimmt.
- *
- *
- * Vorgang:
- * Finde für jede Gruppe das letzte Add- oder Kick-Event, welches den User betrifft
- * Finde für jede Gruppe das letzte Destroy-Event
- * Entferne alle alle Events von Gruppen, welche ein Destroy-Event haben
- * Gebe die Gruppen zurück, auf welche sich die Add-Events beziehen
- *
- * @return GruppenIds (UUID) als Liste
- */
- public List findExistingUserGroups(String userid) {
- List userEvents = findLatestEventsFromGroupsByUser(userid);
- List deletedIds = findLatestEventsFromGroupsByType(DESTROYGROUP)
- .stream()
- .map(Event::getGroupid)
- .collect(Collectors.toList());
-
- userEvents.removeIf(event -> deletedIds.contains(event.getGroupid()));
-
- return userEvents.stream()
- .filter(event -> event instanceof AddMemberEvent)
- .map(Event::getGroupid)
- .collect(Collectors.toList());
- }
-
-
// #################################### SIMPLE QUERIES #######################################
-
- /**
- * Ermittelt die Id zuletzt gespeicherten Events.
- *
- * @return Letzte EventId
- */
- public long findMaxEventId() {
- try {
- return eventStore.findMaxEventId();
- } catch (NullPointerException e) {
- log.debug("Keine Events vorhanden!");
- return 0;
- }
- }
-
- /**
- * Sucht zu jeder Gruppe das letzte Add- oder DeleteUserEvent heraus, welches den übergebenen User betrifft.
- *
- * @param userid User, zu welchem die Events gesucht werden
- *
- * @return Eine Liste von einem Add- oder DeleteUserEvent pro Gruppe
- */
- private List findLatestEventsFromGroupsByUser(String userid) {
- return getEventsFromDTOs(eventStore.findLatestEventDTOsPartitionedByGroupTarget(userid));
- }
-
-
- /**
- * Sucht zu jeder Gruppe das letzte Event des/der übergebenen Typen heraus.
- *
- * @param types Eventtyp, nach welchem gesucht wird
- *
- * @return Eine Liste von einem Event pro Gruppe
- */
- private List findLatestEventsFromGroupsByType(EventType... types) {
- return getEventsFromDTOs(eventStore.findLatestEventDTOsPartitionedByGroupByType(Arrays.asList(eventTypesToString(types))));
- }
-
+
public List findAllEvents() {
return getEventsFromDTOs(eventStore.findAllEvents());
}
-
- public List findNewEvents(long version, long maxid) {
- return getEventsFromDTOs(eventStore.findNewEvents(version, maxid));
- }
}
diff --git a/src/main/java/mops/gruppen2/infrastructure/GroupCache.java b/src/main/java/mops/gruppen2/infrastructure/GroupCache.java
index 16044be..baef40f 100644
--- a/src/main/java/mops/gruppen2/infrastructure/GroupCache.java
+++ b/src/main/java/mops/gruppen2/infrastructure/GroupCache.java
@@ -24,8 +24,7 @@ public class GroupCache {
private final Map groups = new HashMap<>();
public void init() {
- long maxid = eventStoreService.findMaxEventId();
- ProjectionHelper.project(groups, eventStoreService.findNewEvents(0, maxid), this);
+ ProjectionHelper.project(groups, eventStoreService.findAllEvents(), this);
}
public void put(Group group) {
diff --git a/src/main/java/mops/gruppen2/infrastructure/controller/APIController.java b/src/main/java/mops/gruppen2/infrastructure/controller/APIController.java
index 662bf99..ac02052 100644
--- a/src/main/java/mops/gruppen2/infrastructure/controller/APIController.java
+++ b/src/main/java/mops/gruppen2/infrastructure/controller/APIController.java
@@ -1,21 +1,13 @@
package mops.gruppen2.infrastructure.controller;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import mops.gruppen2.aspect.annotation.TraceMethodCalls;
import mops.gruppen2.domain.service.EventStoreService;
-import mops.gruppen2.domain.service.helper.CommonHelper;
-import org.springframework.security.access.annotation.Secured;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import java.util.List;
-
/**
* Api zum Datenabgleich.
*/
@@ -49,14 +41,14 @@ public class APIController {
/**
* Gibt die Gruppen-IDs von Gruppen, in welchen der übergebene Nutzer teilnimmt, zurück.
*/
- @GetMapping("/usergroups/{id}")
+ /*@GetMapping("/usergroups/{id}")
@Secured("ROLE_api_user")
@ApiOperation("Gibt Gruppen zurück, in welchen ein Nutzer teilnimmt")
public List getApiUserGroups(@ApiParam("Nutzer-Id")
@PathVariable("id") String userId) {
return CommonHelper.uuidsToString(eventStoreService.findExistingUserGroups(userId));
- }
+ }*/
/**
* Konstruiert eine einzelne, vollständige Gruppe.
diff --git a/src/main/java/mops/gruppen2/persistance/EventRepository.java b/src/main/java/mops/gruppen2/persistance/EventRepository.java
index 0b187d7..26f5ac4 100644
--- a/src/main/java/mops/gruppen2/persistance/EventRepository.java
+++ b/src/main/java/mops/gruppen2/persistance/EventRepository.java
@@ -3,7 +3,6 @@ package mops.gruppen2.persistance;
import mops.gruppen2.persistance.dto.EventDTO;
import org.springframework.data.jdbc.repository.query.Query;
import org.springframework.data.repository.CrudRepository;
-import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -15,37 +14,6 @@ public interface EventRepository extends CrudRepository {
// ####################################### EVENT DTOs ########################################
- @Query("SELECT * FROM event WHERE event_id > :version AND event_id <= :max")
- List findNewEvents(@Param("version") long version,
- @Param("max") long maxid);
-
- @Query("SELECT * FROM event")
+ @Query("SELECT * FROM heroku_f6ff902475fc2fa")
List findAllEvents();
-
-
- // ################################ LATEST EVENT DTOs ########################################
-
-
- @Query("WITH ranked_events AS ("
- + "SELECT *, ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY event_id DESC) AS rn"
- + " FROM event"
- + " WHERE target_id = :userId AND event_type IN ('ADDMEMBER', 'KICKMEMBER')"
- + ")"
- + "SELECT * FROM ranked_events WHERE rn = 1;")
- List findLatestEventDTOsPartitionedByGroupTarget(@Param("userId") String target);
-
- @Query("WITH ranked_events AS ("
- + "SELECT *, ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY event_id DESC) AS rn"
- + " FROM event"
- + " WHERE event_type IN (:types)"
- + ")"
- + "SELECT * FROM ranked_events WHERE rn = 1;")
- List findLatestEventDTOsPartitionedByGroupByType(@Param("types") List types);
-
-
- // ######################################### COUNT ###########################################
-
-
- @Query("SELECT MAX(event_id) FROM event")
- Long findMaxEventId();
}