From 9a77c9aa8fe0c9ae1e6afc227c03f6d29631785b Mon Sep 17 00:00:00 2001
From: Daniel Gerhardt <code@dgerhardt.net>
Date: Thu, 15 Mar 2018 09:34:22 +0100
Subject: [PATCH] Add /user/{id}/roomHistory endpoint for adding new entries

---
 .../de/thm/arsnova/controller/UserController.java   | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/main/java/de/thm/arsnova/controller/UserController.java b/src/main/java/de/thm/arsnova/controller/UserController.java
index de5a94673..fc7455770 100644
--- a/src/main/java/de/thm/arsnova/controller/UserController.java
+++ b/src/main/java/de/thm/arsnova/controller/UserController.java
@@ -2,7 +2,9 @@ package de.thm.arsnova.controller;
 
 import de.thm.arsnova.entities.LoginCredentials;
 import de.thm.arsnova.entities.UserProfile;
+import de.thm.arsnova.services.RoomService;
 import de.thm.arsnova.services.UserService;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -12,12 +14,15 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping(UserController.REQUEST_MAPPING)
 public class UserController extends AbstractEntityController<UserProfile> {
 	protected static final String REQUEST_MAPPING = "/user";
+	private static final String ROOM_HISTORY_MAPPING = DEFAULT_ID_MAPPING + "/roomHistory";
 
 	private UserService userService;
+	private RoomService roomService;
 
-	public UserController(final UserService userService) {
+	public UserController(final UserService userService, final RoomService roomService) {
 		super(userService);
 		this.userService = userService;
+		this.roomService = roomService;
 	}
 
 	@Override
@@ -29,4 +34,10 @@ public class UserController extends AbstractEntityController<UserProfile> {
 	public void register(@RequestBody LoginCredentials loginCredentials) {
 		userService.create(loginCredentials.getLoginId(), loginCredentials.getPassword());
 	}
+
+	@PostMapping(ROOM_HISTORY_MAPPING)
+	public void postRoomHistoryEntry(@PathVariable final String id,
+			@RequestBody final UserProfile.RoomHistoryEntry roomHistoryEntry) {
+		userService.addRoomToHistory(userService.get(id), roomService.get(roomHistoryEntry.getRoomId()));
+	}
 }
-- 
GitLab