diff --git a/src/main/java/de/thm/arsnova/controller/v2/RoomController.java b/src/main/java/de/thm/arsnova/controller/v2/RoomController.java index 90ca741c839ea40ab397847ac744d636bce1b4fe..6e467a5cb07c4372e53136b642555aa9b9ac2ee2 100644 --- a/src/main/java/de/thm/arsnova/controller/v2/RoomController.java +++ b/src/main/java/de/thm/arsnova/controller/v2/RoomController.java @@ -22,6 +22,7 @@ import de.thm.arsnova.entities.migration.FromV2Migrator; import de.thm.arsnova.entities.migration.ToV2Migrator; import de.thm.arsnova.entities.migration.v2.Room; import de.thm.arsnova.entities.migration.v2.RoomFeature; +import de.thm.arsnova.entities.migration.v2.RoomInfo; import de.thm.arsnova.entities.transport.ImportExportContainer; import de.thm.arsnova.entities.transport.ScoreStatistics; import de.thm.arsnova.exceptions.UnauthorizedException; @@ -226,7 +227,7 @@ public class RoomController extends PaginationController { }) @RequestMapping(value = "/", method = RequestMethod.GET, params = "statusonly=true") @Pagination - public List<Room> getMyRooms( + public List<RoomInfo> getMyRooms( @ApiParam(value = "visitedOnly", required = true) @RequestParam(value = "visitedonly", defaultValue = "false") final boolean visitedOnly, @ApiParam(value = "sort by", required = false) @RequestParam(value = "sortby", defaultValue = "name") final String sortby, final HttpServletResponse response @@ -248,7 +249,8 @@ public class RoomController extends PaginationController { } else { Collections.sort(rooms, new RoomNameComparator()); } - return rooms.stream().map(toV2Migrator::migrate).collect(Collectors.toList()); + + return rooms.stream().map(toV2Migrator::migrateStats).collect(Collectors.toList()); } @ApiOperation(value = "Retrieves all public pool Rooms for the current user", @@ -257,7 +259,7 @@ public class RoomController extends PaginationController { @ApiResponse(code = 204, message = HTML_STATUS_204) }) @RequestMapping(value = "/publicpool", method = RequestMethod.GET, params = "statusonly=true") - public List<Room> getMyPublicPoolRooms( + public List<RoomInfo> getMyPublicPoolRooms( final HttpServletResponse response ) { List<de.thm.arsnova.entities.Room> rooms = roomService.getMyPublicPoolRoomsInfo(); @@ -267,7 +269,7 @@ public class RoomController extends PaginationController { return null; } - return rooms.stream().map(toV2Migrator::migrate).collect(Collectors.toList()); + return rooms.stream().map(toV2Migrator::migrateStats).collect(Collectors.toList()); } @ApiOperation(value = "Retrieves all public pool Rooms", diff --git a/src/main/java/de/thm/arsnova/entities/migration/ToV2Migrator.java b/src/main/java/de/thm/arsnova/entities/migration/ToV2Migrator.java index 7154b6cad4cc2370fc09755b7a68cb3b8d8ee0c2..7ee61edb3e8992a83fe76628c506cb2e351c9abf 100644 --- a/src/main/java/de/thm/arsnova/entities/migration/ToV2Migrator.java +++ b/src/main/java/de/thm/arsnova/entities/migration/ToV2Migrator.java @@ -19,6 +19,7 @@ package de.thm.arsnova.entities.migration; import de.thm.arsnova.entities.AnswerStatistics; import de.thm.arsnova.entities.ChoiceQuestionContent; +import de.thm.arsnova.entities.RoomStatistics; import de.thm.arsnova.entities.UserProfile; import de.thm.arsnova.entities.migration.v2.*; @@ -158,6 +159,18 @@ public class ToV2Migrator { return feature; } + public RoomInfo migrateStats(final de.thm.arsnova.entities.Room from) { + RoomInfo to = new RoomInfo(migrate(from)); + RoomStatistics stats = from.getStatistics(); + to.setNumQuestions(stats.getContentCount()); + to.setNumUnanswered(stats.getUnansweredContentCount()); + to.setNumAnswers(stats.getAnswerCount()); + to.setNumInterposed(stats.getCommentCount()); + to.setNumUnredInterposed(stats.getUnreadCommentCount()); + + return to; + } + public Content migrate(final de.thm.arsnova.entities.Content from) { final Content to = new Content(); copyCommonProperties(from, to);