1

Merge remote-tracking branch 'origin/event-db'

# Conflicts:
#	src/main/java/mops/gruppen2/domain/Aggregate.java
#	src/main/java/mops/gruppen2/service/GroupService.java
#	src/test/java/mops/gruppen2/domain/GroupTest.java
This commit is contained in:
Christoph
2020-03-10 13:24:29 +01:00
20 changed files with 520 additions and 48 deletions

View File

@ -0,0 +1,51 @@
package mops.gruppen2.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import mops.gruppen2.domain.EventDTO;
import mops.gruppen2.domain.event.Event;
import mops.gruppen2.repository.EventRepository;
import org.springframework.stereotype.Service;
@Service
public class EventService {
private final SerializationService serializationService;
private final EventRepository eventStore;
public EventService(SerializationService serializationService, EventRepository eventStore) {
this.serializationService = serializationService;
this.eventStore = eventStore;
}
public void saveEvent(Event event){
EventDTO eventDTO = getDTO(event);
eventStore.save(eventDTO);
}
public EventDTO getDTO(Event event){
EventDTO eventDTO = new EventDTO();
eventDTO.setGroup_id(event.getGroup_id());
eventDTO.setUser_id(event.getUser_id());
try {
eventDTO.setEvent_payload(serializationService.serializeEvent(event));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return eventDTO;
}
public Long checkGroup() {
Long tmpId = 1L;
Iterable<EventDTO> eventDTOS = eventStore.findAll();
for (EventDTO event : eventDTOS) {
if (event.getGroup_id() == null) {
return tmpId;
}
if (tmpId <= event.getGroup_id()) {
tmpId++;
}
}
return tmpId;
}
}

View File

@ -13,7 +13,6 @@ public class GroupService {
/**
* Konstruiert eine vollständige Gruppe aus Events, welche dieselbe Gruppe betreffen.
*
* @param event Initiales CreateGroup-Event
* @param eventList Die restlichen Events für diese Gruppe
* @return Gruppe auf aktuellem Stand
*/

View File

@ -1,5 +1,12 @@
package mops.gruppen2.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import mops.gruppen2.domain.EventDTO;
import mops.gruppen2.domain.event.Event;
import mops.gruppen2.repository.EventRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
/**
@ -7,4 +14,21 @@ import org.springframework.stereotype.Service;
*/
@Service
public class SerializationService {
private final EventRepository eventStore;
private final Logger log = LoggerFactory.getLogger(SerializationService.class);
public SerializationService(EventRepository eventStore) {
this.eventStore = eventStore;
}
public String serializeEvent(Event event) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(event);
}
public Event deserializeEvent(String json) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(json, Event.class);
}
}