From e71841677704f2145ef0e1fae08d59a50740c649 Mon Sep 17 00:00:00 2001
From: Daniel Gerhardt <code@dgerhardt.net>
Date: Wed, 14 Aug 2019 22:45:40 +0200
Subject: [PATCH] Add content group handling for /v2

---
 .../arsnova/controller/v2/ContentController.java   | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/main/java/de/thm/arsnova/controller/v2/ContentController.java b/src/main/java/de/thm/arsnova/controller/v2/ContentController.java
index f788bcdec..cd26dbbd7 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/ContentController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/ContentController.java
@@ -27,6 +27,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
 import javax.naming.OperationNotSupportedException;
@@ -48,12 +49,14 @@ import org.springframework.web.bind.annotation.RestController;
 import de.thm.arsnova.controller.PaginationController;
 import de.thm.arsnova.model.ChoiceAnswer;
 import de.thm.arsnova.model.ChoiceQuestionContent;
+import de.thm.arsnova.model.ContentGroup;
 import de.thm.arsnova.model.TextAnswer;
 import de.thm.arsnova.model.migration.FromV2Migrator;
 import de.thm.arsnova.model.migration.ToV2Migrator;
 import de.thm.arsnova.model.migration.v2.Answer;
 import de.thm.arsnova.model.migration.v2.Content;
 import de.thm.arsnova.service.AnswerService;
+import de.thm.arsnova.service.ContentGroupService;
 import de.thm.arsnova.service.ContentService;
 import de.thm.arsnova.service.RoomService;
 import de.thm.arsnova.service.TimerService;
@@ -76,6 +79,9 @@ public class ContentController extends PaginationController {
 	@Autowired
 	private ContentService contentService;
 
+	@Autowired
+	private ContentGroupService contentGroupService;
+
 	@Autowired
 	private AnswerService answerService;
 
@@ -100,7 +106,12 @@ public class ContentController extends PaginationController {
 	public Content getContent(@PathVariable final String contentId) {
 		final de.thm.arsnova.model.Content content = contentService.get(contentId);
 		if (content != null) {
-			return toV2Migrator.migrate(content);
+			final Optional<ContentGroup> contentGroup = contentGroupService.getByRoomId(content.getRoomId()).stream()
+					.filter(cg -> cg.getContentIds().contains(contentId)).findFirst();
+			final Content contentV2 = toV2Migrator.migrate(content);
+			contentGroup.ifPresent(cg -> contentV2.setQuestionVariant(cg.getName()));
+
+			return contentV2;
 		}
 
 		throw new NotFoundException();
@@ -118,6 +129,7 @@ public class ContentController extends PaginationController {
 		final String roomId = roomService.getIdByShortId(content.getSessionKeyword());
 		contentV3.setRoomId(roomId);
 		contentService.create(contentV3);
+		contentGroupService.addContentToGroup(roomId, content.getQuestionVariant(), contentV3.getId());
 
 		return toV2Migrator.migrate(contentV3);
 	}
-- 
GitLab