42 lines
1.4 KiB
Plaintext
42 lines
1.4 KiB
Plaintext
= Fortschritt Tag 4
|
|
|
|
== Datenbankschema
|
|
|
|
Also wir haben wieder leichte Veränderungen am Datenbankmodell vorgenommen.
|
|
Wir werden Eventsourcing als Persistenzmodell Verwenden. Die Datenbank besteht nun aus den Spalten:
|
|
`event_id` `group_id` `user_id` und `eventpayload`.
|
|
|
|
Die Spalte `eventpayload` wird im JSON-Format representiert und beinhaltet alle Infos zu veränderungen.
|
|
Ganz vorne steht die Action die stattfand, welche wir in 7 mögliche Actions unterteilt haben:
|
|
|
|
- `DeleteGroup`
|
|
- `CreateGroup`
|
|
- `AddUser`
|
|
- `DeleteUser`
|
|
- `UpdateRolle`
|
|
- `UpdateGroupTitle`
|
|
- `UpdateGroupDescription`
|
|
|
|
== Gruppenservice/Events
|
|
|
|
Wir verwenden nun einen Datentyp `Event` um die verschiedenen Events zu handleln.
|
|
Es wird eine Eventliste als Parameter an eine überladene Methode in die `Gruppe` Klasse übergeben.
|
|
Vom Datentyp Event erben die Verschiedenen Events die wir in der DB haben und haben einen entsprechenden Konstruktor:
|
|
|
|
|
|
public class CreateGroupEvent extends Event {
|
|
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;
|
|
}
|
|
}
|
|
|
|
== Tests
|
|
|
|
Wir haben Tests zu den `applyEvent()` Methoden geschrieben aber müssen noch weitere Logik testen.
|
|
|