change user_id to String + add updateRoleEvent
This commit is contained in:
@ -6,6 +6,11 @@ import java.lang.reflect.Method;
|
||||
|
||||
public abstract class Aggregat {
|
||||
|
||||
/**
|
||||
* Ruft die spezifische applyEvent-Methode im entsprechenden Aggregat auf.
|
||||
*
|
||||
* @param event
|
||||
*/
|
||||
public void applyEvent(Event event) {
|
||||
try {
|
||||
Method method = this.getClass().getDeclaredMethod("applyEvent", event.getClass());
|
||||
|
||||
@ -1,36 +1,47 @@
|
||||
package mops.gruppen2.entities;
|
||||
|
||||
import lombok.Data;
|
||||
import mops.gruppen2.events.AddUser;
|
||||
import mops.gruppen2.events.CreateGroupEvent;
|
||||
import mops.gruppen2.events.UpdateGroupDescriptionEvent;
|
||||
import mops.gruppen2.events.UpdateGroupTitleEvent;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import mops.gruppen2.events.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class Gruppe extends Aggregat {
|
||||
long id;
|
||||
String titel;
|
||||
String beschreibung;
|
||||
List<Teilnehmer> teilnehmersList;
|
||||
|
||||
public Gruppe(){
|
||||
this.teilnehmersList = new ArrayList<>();
|
||||
}
|
||||
Map<Teilnehmer, Rolle> rollenList;
|
||||
|
||||
public void applyEvent(CreateGroupEvent event){
|
||||
this.id = event.getId();
|
||||
this.titel = event.getTitel();
|
||||
this.beschreibung = event.getBeschreibung();
|
||||
this.teilnehmersList = new ArrayList<>();
|
||||
this.rollenList = new HashMap<>();
|
||||
}
|
||||
|
||||
public void applyEvent(UpdateRoleEvent event) {
|
||||
teilnehmersList.stream()
|
||||
.filter(teilnehmer -> teilnehmer.getId().equals(event.getUser_id()))
|
||||
.findFirst()
|
||||
.ifPresentOrElse(teilnehmer -> rollenList.put(teilnehmer, event.getRole()),
|
||||
() -> System.out.println("UserNotFoundException"));
|
||||
}
|
||||
|
||||
public void applyEvent(AddUser event){
|
||||
Teilnehmer teilnehmer = new Teilnehmer();
|
||||
teilnehmer.setId(event.getId());
|
||||
|
||||
teilnehmer.setId(event.getUser_id());
|
||||
teilnehmer.setVorname(event.getVorname());
|
||||
teilnehmer.setNachname(event.getNachname());
|
||||
teilnehmer.setEmail(event.getEmail());
|
||||
|
||||
this.teilnehmersList.add(teilnehmer);
|
||||
}
|
||||
|
||||
|
||||
@ -1,14 +1,12 @@
|
||||
package mops.gruppen2.entities;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.data.annotation.Id;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class Teilnehmer {
|
||||
@Id
|
||||
Long id;
|
||||
String id;
|
||||
String vorname;
|
||||
String nachname;
|
||||
String email;
|
||||
|
||||
@ -2,13 +2,11 @@ package mops.gruppen2.events;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
public class AddUser extends Event{
|
||||
String vorname, nachname, email;
|
||||
|
||||
public AddUser(long id, long gruppe_id, long user_id, String vorname, String nachname, String email) {
|
||||
public AddUser(long id, long gruppe_id, String user_id, String vorname, String nachname, String email) {
|
||||
super(id, gruppe_id, user_id);
|
||||
this.vorname = vorname;
|
||||
this.nachname = nachname;
|
||||
|
||||
@ -7,7 +7,7 @@ public class CreateGroupEvent extends Event {
|
||||
String titel;
|
||||
String beschreibung;
|
||||
|
||||
public CreateGroupEvent(long id, long gruppe_id, long user_id, String titel, String beschreibung) {
|
||||
public CreateGroupEvent(long id, long gruppe_id, String user_id, String titel, String beschreibung) {
|
||||
super(id, gruppe_id, user_id);
|
||||
this.titel = titel;
|
||||
this.beschreibung = beschreibung;
|
||||
|
||||
@ -8,5 +8,5 @@ import lombok.Getter;
|
||||
public class Event {
|
||||
long id;
|
||||
long gruppe_id;
|
||||
long user_id;
|
||||
String user_id;
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ import lombok.Getter;
|
||||
public class UpdateGroupDescriptionEvent extends Event {
|
||||
String beschreibung;
|
||||
|
||||
public UpdateGroupDescriptionEvent(long id, long gruppe_id, long user_id, String beschreibung) {
|
||||
public UpdateGroupDescriptionEvent(long id, long gruppe_id, String user_id, String beschreibung) {
|
||||
super(id, gruppe_id, user_id);
|
||||
this.beschreibung = beschreibung;
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ import lombok.Getter;
|
||||
public class UpdateGroupTitleEvent extends Event {
|
||||
String titel;
|
||||
|
||||
public UpdateGroupTitleEvent(long id, long gruppe_id, long user_id, String titel) {
|
||||
public UpdateGroupTitleEvent(long id, long gruppe_id, String user_id, String titel) {
|
||||
super(id, gruppe_id, user_id);
|
||||
this.titel = titel;
|
||||
}
|
||||
|
||||
16
src/main/java/mops/gruppen2/events/UpdateRoleEvent.java
Normal file
16
src/main/java/mops/gruppen2/events/UpdateRoleEvent.java
Normal file
@ -0,0 +1,16 @@
|
||||
package mops.gruppen2.events;
|
||||
|
||||
import lombok.Getter;
|
||||
import mops.gruppen2.entities.Rolle;
|
||||
|
||||
@Getter
|
||||
public class UpdateRoleEvent extends Event {
|
||||
|
||||
private final Rolle role;
|
||||
|
||||
public UpdateRoleEvent(long id, long gruppe_id, String user_id, Rolle newRole) {
|
||||
super(id, gruppe_id, user_id);
|
||||
|
||||
this.role = newRole;
|
||||
}
|
||||
}
|
||||
@ -1,28 +1,14 @@
|
||||
package mops.gruppen2.services;
|
||||
|
||||
import mops.gruppen2.events.AddUser;
|
||||
import mops.gruppen2.events.CreateGroupEvent;
|
||||
import mops.gruppen2.events.Event;
|
||||
import mops.gruppen2.entities.Gruppe;
|
||||
import mops.gruppen2.events.Event;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class GruppenService {
|
||||
|
||||
CreateGroupEvent createGroupEvent = new CreateGroupEvent(1L,1L,1L,"hello", "foo");
|
||||
AddUser addUser = new AddUser(1L, 1L, 1L, "jens","bendiest","jb@gmail.ru");
|
||||
|
||||
public GruppenService(){
|
||||
List<Event> eventList = new ArrayList<>();
|
||||
eventList.add(createGroupEvent);
|
||||
eventList.add(addUser);
|
||||
Gruppe newGroup = buildGroup(eventList);
|
||||
System.out.println(newGroup.toString());
|
||||
}
|
||||
|
||||
Gruppe buildGroup(List<Event> eventList){
|
||||
Gruppe newGroup = new Gruppe();
|
||||
eventList.forEach(newGroup::applyEvent);
|
||||
|
||||
Reference in New Issue
Block a user