1

slight changes to package structure + naming

This commit is contained in:
Christoph
2020-03-06 20:10:23 +01:00
parent 64f54ada27
commit 0e1e79d51a
28 changed files with 229 additions and 231 deletions

View File

@ -1,13 +1,11 @@
package mops.gruppen2.controllers;
package mops.gruppen2.controller;
import mops.gruppen2.services.KeyCloakService;
import mops.gruppen2.service.KeyCloakService;
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.context.annotation.SessionScope;
import javax.annotation.security.RolesAllowed;

View File

@ -1,4 +1,4 @@
package mops.gruppen2.controllers;
package mops.gruppen2.controller;
import org.springframework.web.bind.annotation.RequestMapping;

View File

@ -0,0 +1,4 @@
package mops.gruppen2.domain;
public class Admin extends Role {
}

View File

@ -1,10 +1,10 @@
package mops.gruppen2.entities;
package mops.gruppen2.domain;
import mops.gruppen2.events.Event;
import mops.gruppen2.domain.event.Event;
import java.lang.reflect.Method;
public abstract class Aggregat {
public abstract class Aggregate {
/**
* Ruft die spezifische applyEvent-Methode im entsprechenden Aggregat auf.

View File

@ -0,0 +1,69 @@
package mops.gruppen2.domain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import mops.gruppen2.domain.event.*;
import mops.gruppen2.domain.event.AddUserEvent;
import mops.gruppen2.domain.event.CreateGroupEvent;
import mops.gruppen2.domain.event.UpdateGroupDescriptionEvent;
import mops.gruppen2.domain.event.UpdateGroupTitleEvent;
import mops.gruppen2.domain.event.DeleteUserEvent;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@EqualsAndHashCode(callSuper=false)
@Data
public class Group extends Aggregate {
long id;
String titel;
String beschreibung;
List<User> teilnehmersList;
Map<User, Role> rollenList;
public void applyEvent(CreateGroupEvent event){
this.id = event.getGruppe_id();
this.titel = event.getTitel();
this.beschreibung = event.getBeschreibung();
this.teilnehmersList = new ArrayList<>();
this.rollenList = new HashMap<>();
}
public void applyEvent(UpdateRoleEvent event) {
teilnehmersList.stream()
.filter(user -> user.getId().equals(event.getUser_id()))
.findFirst()
.ifPresentOrElse(user -> rollenList.put(user, event.getRole()),
() -> System.out.println("UserNotFoundException"));
}
public void applyEvent(AddUserEvent event){
User user = new User();
user.setId(event.getUser_id());
user.setVorname(event.getVorname());
user.setNachname(event.getNachname());
user.setEmail(event.getEmail());
this.teilnehmersList.add(user);
}
public void applyEvent(UpdateGroupTitleEvent event) {
this.titel = event.getTitel();
}
public void applyEvent(UpdateGroupDescriptionEvent event) {
this.beschreibung = event.getBeschreibung();
}
public void applyEvent(DeleteUserEvent event) {
for (User user : teilnehmersList) {
if (user.getId().equals(event.getUser_id())) {
this.teilnehmersList.remove(user);
break;
}
}
}
}

View File

@ -0,0 +1,4 @@
package mops.gruppen2.domain;
public class Org extends Role {
}

View File

@ -0,0 +1,5 @@
package mops.gruppen2.domain;
public class Role {
}

View File

@ -1,14 +1,14 @@
package mops.gruppen2.entities;
package mops.gruppen2.domain;
import lombok.Data;
import java.util.List;
@Data
public class Teilnehmer {
public class User {
String id;
String vorname;
String nachname;
String email;
List<Gruppe> Gruppen;
List<Group> gruppen;
}

View File

@ -0,0 +1,15 @@
package mops.gruppen2.domain.event;
import lombok.Getter;
@Getter
public class AddUserEvent extends Event{
String vorname, nachname, email;
public AddUserEvent(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;
this.email = email;
}
}

View File

@ -1,4 +1,4 @@
package mops.gruppen2.events;
package mops.gruppen2.domain.event;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package mops.gruppen2.events;
package mops.gruppen2.domain.event;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package mops.gruppen2.events;
package mops.gruppen2.domain.event;
import lombok.AllArgsConstructor;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package mops.gruppen2.events;
package mops.gruppen2.domain.event;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package mops.gruppen2.events;
package mops.gruppen2.domain.event;
import lombok.Getter;

View File

@ -1,14 +1,14 @@
package mops.gruppen2.events;
package mops.gruppen2.domain.event;
import lombok.Getter;
import mops.gruppen2.entities.Rolle;
import mops.gruppen2.domain.Role;
@Getter
public class UpdateRoleEvent extends Event {
private final Rolle role;
private final Role role;
public UpdateRoleEvent(long id, long gruppe_id, String user_id, Rolle newRole) {
public UpdateRoleEvent(long id, long gruppe_id, String user_id, Role newRole) {
super(id, gruppe_id, user_id);
this.role = newRole;

View File

@ -1,4 +0,0 @@
package mops.gruppen2.entities;
public class Admin extends Rolle {
}

View File

@ -1,69 +0,0 @@
package mops.gruppen2.entities;
import lombok.Data;
import lombok.EqualsAndHashCode;
import mops.gruppen2.events.*;
import mops.gruppen2.events.AddUser;
import mops.gruppen2.events.CreateGroupEvent;
import mops.gruppen2.events.UpdateGroupDescriptionEvent;
import mops.gruppen2.events.UpdateGroupTitleEvent;
import mops.gruppen2.events.DeleteUserEvent;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@EqualsAndHashCode(callSuper=false)
@Data
public class Gruppe extends Aggregat {
long id;
String titel;
String beschreibung;
List<Teilnehmer> teilnehmersList;
Map<Teilnehmer, Rolle> rollenList;
public void applyEvent(CreateGroupEvent event){
this.id = event.getGruppe_id();
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.getUser_id());
teilnehmer.setVorname(event.getVorname());
teilnehmer.setNachname(event.getNachname());
teilnehmer.setEmail(event.getEmail());
this.teilnehmersList.add(teilnehmer);
}
public void applyEvent(UpdateGroupTitleEvent event) {
this.titel = event.getTitel();
}
public void applyEvent(UpdateGroupDescriptionEvent event) {
this.beschreibung = event.getBeschreibung();
}
public void applyEvent(DeleteUserEvent event) {
for (Teilnehmer teilnehmer: teilnehmersList) {
if (teilnehmer.getId().equals(event.getUser_id())) {
this.teilnehmersList.remove(teilnehmer);
break;
}
}
}
}

View File

@ -1,4 +0,0 @@
package mops.gruppen2.entities;
public class Orga extends Rolle {
}

View File

@ -1,5 +0,0 @@
package mops.gruppen2.entities;
public class Rolle {
}

View File

@ -1,15 +0,0 @@
package mops.gruppen2.events;
import lombok.Getter;
@Getter
public class AddUser extends Event{
String vorname, nachname, 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;
this.email = email;
}
}

View File

@ -1,6 +1,6 @@
package mops.gruppen2.repositories;
package mops.gruppen2.repository;
import mops.gruppen2.events.Event;
import mops.gruppen2.domain.event.Event;
import org.springframework.data.repository.CrudRepository;
public interface EventRepository extends CrudRepository<Event, Long> {

View File

@ -0,0 +1,16 @@
package mops.gruppen2.service;
import mops.gruppen2.domain.Group;
import mops.gruppen2.domain.event.Event;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class GroupService {
Group buildGroup(List<Event> eventList){
Group newGroup = new Group();
eventList.forEach(newGroup::applyEvent);
return newGroup;
}
}

View File

@ -1,4 +1,4 @@
package mops.gruppen2.services;
package mops.gruppen2.service;
import mops.gruppen2.security.Account;
import org.keycloak.KeycloakPrincipal;

View File

@ -1,4 +1,4 @@
package mops.gruppen2.services;
package mops.gruppen2.service;
import org.springframework.stereotype.Service;

View File

@ -1,16 +0,0 @@
package mops.gruppen2.services;
import mops.gruppen2.events.Event;
import mops.gruppen2.entities.Gruppe;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class GruppenService {
Gruppe buildGroup(List<Event> eventList){
Gruppe newGroup = new Gruppe();
eventList.forEach(newGroup::applyEvent);
return newGroup;
}
}