1
Files
lecture-professional-softwa…/documentation/day04_progress.adoc

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.