[MM_02, MM_04] Lunch-Cards bewerten und kommentieren
[MM_02] Als <user> möchte ich eine Lunch-Card mit 1-5Sternen bewerten können
[MM_04] Als <user> möchte ich Kommentare für eine Lunch-Card geben können
Anforderungen
Update (06.05.20): Zwei Entitys und getrennte Routen für Bewertungen und Kommentare
- Entity
CafeteriaComment
:- Primärschlüssel (generiert)
- Gericht (
String
der vom Client kommt) - das wird vlt. schwierig, weil wir kein Entity für die Gerichte haben - Author (
User
) - Kommentar als
String
- Erstellungsdatum
- Entity
CafeteriaRating
:- Primärschlüssel (generiert)
- Gericht (
String
der vom Client kommt) - das wird vlt. schwierig, weil wir kein Entity für die Gerichte haben - Author (
User
) - Bewertung als
int
- Erstellungsdatum
- Zwei Repositorys
- Service (z.B.
CafeteriaFeedbackService
) mit quasi den drei Methoden vonEventService
von Think Big:createNewComment()
createNewRating()
getAverageRatingForCafeteriaItem()
getNumberOfRatingsForCafeteriaItem()
-
List<CafeteriaComment getCommentsForCafeteriaItem()
absteigend nach Datum
- Controller (
CafeteriaFeedbackController
)GET /cafeteria/ratings
-
POST /cafeteria/ratings
(IDs im Body) GET /cafeteria/comments
-
POST /cafeteria/comments
(IDs im Body)
- DTOs
-
CafeteriaCommentInputDto
mit Validierung exakt wie beiFeedbackDto
nur ID natürlich String-
String cafeteriaItem
als ID String comment
-
-
CafeteriaRatingInputDto
mit Validierung exakt wie beiFeedbackDto
nur ID natürlich String-
String cafeteriaItem
als ID int rating
-
-
CafeteriaCommentOutputDto
mit folgenden Feldern:String comment
Date createdAt
-
String user
(hier reicht erstmal der Anzeigename)
-
CafeteriaFeedbackOutputDto
mit folgenden Feldern:float avgRating
int ratings
-
List<CafeteriaCommentOutputDto> comments
absteigend sortiert nach Datum
-
Edited by Robert Palm