Skip to content
Snippets Groups Projects
Commit 5ba20690 authored by Daniel Gerhardt's avatar Daniel Gerhardt
Browse files

Migrate /room to v3

parent b79f2d1c
Branches
No related merge requests found
......@@ -17,7 +17,6 @@
*/
package de.thm.arsnova.controller;
import de.thm.arsnova.connector.model.Course;
import de.thm.arsnova.entities.Room;
import de.thm.arsnova.entities.transport.ImportExportSession;
import de.thm.arsnova.entities.transport.ScoreStatistics;
......@@ -53,9 +52,9 @@ import java.util.List;
* Handles requests related to ARSnova rooms.
*/
@RestController
@RequestMapping("/session")
@Api(value = "/session", description = "the Room Controller API")
public class SessionController extends PaginationController {
@RequestMapping("/room")
@Api(value = "/room", description = "the Room Controller API")
public class RoomController extends PaginationController {
@Autowired
private RoomService roomService;
......@@ -63,26 +62,26 @@ public class SessionController extends PaginationController {
private UserService userService;
@ApiOperation(value = "join a session",
nickname = "joinSession")
nickname = "joinRoom")
@DeprecatedApi
@Deprecated
@RequestMapping(value = "/{sessionkey}", method = RequestMethod.GET)
public Room joinSession(
@ApiParam(value = "Room-Key from current session", required = true) @PathVariable final String sessionkey,
@RequestMapping(value = "/{shortId}", method = RequestMethod.GET)
public Room get(
@ApiParam(value = "Room-Key from current session", required = true) @PathVariable final String shortId,
@ApiParam(value = "Adminflag", required = false) @RequestParam(value = "admin", defaultValue = "false") final boolean admin
) {
if (admin) {
return roomService.getForAdmin(sessionkey);
return roomService.getForAdmin(shortId);
} else {
return roomService.getByKey(sessionkey);
return roomService.getByKey(shortId);
}
}
@ApiOperation(value = "deletes a session",
nickname = "deleteSession")
@RequestMapping(value = "/{sessionkey}", method = RequestMethod.DELETE)
public void deleteSession(@ApiParam(value = "Room-Key from current session", required = true) @PathVariable final String sessionkey) {
Room room = roomService.getByKey(sessionkey);
nickname = "delete")
@RequestMapping(value = "/{shortId}", method = RequestMethod.DELETE)
public void delete(@ApiParam(value = "Room-Key from current session", required = true) @PathVariable final String shortId) {
Room room = roomService.getByKey(shortId);
roomService.deleteCascading(room);
}
......@@ -90,20 +89,20 @@ public class SessionController extends PaginationController {
nickname = "countActiveUsers")
@DeprecatedApi
@Deprecated
@RequestMapping(value = "/{sessionkey}/activeusercount", method = RequestMethod.GET)
public int countActiveUsers(@ApiParam(value = "Room-Key from current session", required = true) @PathVariable final String sessionkey) {
return roomService.activeUsers(sessionkey);
@RequestMapping(value = "/{shortId}/activeusercount", method = RequestMethod.GET)
public int countActiveUsers(@ApiParam(value = "Room-Key from current session", required = true) @PathVariable final String shortId) {
return roomService.activeUsers(shortId);
}
@ApiOperation(value = "Creates a new Room and returns the Room's data",
nickname = "postNewSession")
nickname = "create")
@ApiResponses(value = {
@ApiResponse(code = 201, message = HTML_STATUS_201),
@ApiResponse(code = 503, message = HTML_STATUS_503)
})
@RequestMapping(value = "/", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public Room postNewSession(@ApiParam(value = "current session", required = true) @RequestBody final Room room, final HttpServletResponse response) {
public Room create(@ApiParam(value = "current session", required = true) @RequestBody final Room room, final HttpServletResponse response) {
/* FIXME: migrate LMS course support
if (room != null && room.isCourseSession()) {
final List<Course> courses = new ArrayList<>();
......@@ -125,33 +124,24 @@ public class SessionController extends PaginationController {
}
@ApiOperation(value = "updates a session",
nickname = "postNewSession")
@RequestMapping(value = "/{sessionkey}", method = RequestMethod.PUT)
public Room updateSession(
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey,
nickname = "create")
@RequestMapping(value = "/{shortId}", method = RequestMethod.PUT)
public Room update(
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String shortId,
@ApiParam(value = "current session", required = true) @RequestBody final Room room
) {
return roomService.update(sessionkey, room);
}
@ApiOperation(value = "change the session creator (owner)", nickname = "changeSessionCreator")
@RequestMapping(value = "/{sessionkey}/changecreator", method = RequestMethod.PUT)
public Room changeSessionCreator(
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey,
@ApiParam(value = "new session creator", required = true) @RequestBody final String newCreator
) {
return roomService.updateCreator(sessionkey, newCreator);
return roomService.update(shortId, room);
}
@ApiOperation(value = "Retrieves a list of Sessions",
nickname = "getSessions")
nickname = "getAll")
@ApiResponses(value = {
@ApiResponse(code = 204, message = HTML_STATUS_204),
@ApiResponse(code = 501, message = HTML_STATUS_501)
})
@RequestMapping(value = "/", method = RequestMethod.GET)
@Pagination
public List<Room> getSessions(
public List<Room> getAll(
@ApiParam(value = "ownedOnly", required = true) @RequestParam(value = "ownedonly", defaultValue = "false") final boolean ownedOnly,
@ApiParam(value = "visitedOnly", required = true) @RequestParam(value = "visitedonly", defaultValue = "false") final boolean visitedOnly,
@ApiParam(value = "sortby", required = true) @RequestParam(value = "sortby", defaultValue = "name") final String sortby,
......@@ -290,14 +280,14 @@ public class SessionController extends PaginationController {
@ApiOperation(value = "export sessions", nickname = "exportSession")
@RequestMapping(value = "/export", method = RequestMethod.GET)
public List<ImportExportSession> getExport(
@ApiParam(value = "sessionkey", required = true) @RequestParam(value = "sessionkey", defaultValue = "") final List<String> sessionkey,
@ApiParam(value = "shortId", required = true) @RequestParam(value = "shortId", defaultValue = "") final List<String> shortId,
@ApiParam(value = "wether statistics shall be exported", required = true) @RequestParam(value = "withAnswerStatistics", defaultValue = "false") final Boolean withAnswerStatistics,
@ApiParam(value = "wether comments shall be exported", required = true) @RequestParam(value = "withFeedbackQuestions", defaultValue = "false") final Boolean withFeedbackQuestions,
final HttpServletResponse response
) {
List<ImportExportSession> sessions = new ArrayList<>();
ImportExportSession temp;
for (String key : sessionkey) {
for (String key : shortId) {
roomService.setActive(key, false);
temp = roomService.exportSession(key, withAnswerStatistics, withFeedbackQuestions);
if (temp != null) {
......@@ -309,194 +299,38 @@ public class SessionController extends PaginationController {
}
@ApiOperation(value = "copy a session to the public pool if enabled")
@RequestMapping(value = "/{sessionkey}/copytopublicpool", method = RequestMethod.POST)
@RequestMapping(value = "/{shortId}/copytopublicpool", method = RequestMethod.POST)
public Room copyToPublicPool(
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey,
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String shortId,
@ApiParam(value = "public pool attributes for session", required = true) @RequestBody final de.thm.arsnova.entities.transport.ImportExportSession.PublicPool publicPool
) {
roomService.setActive(sessionkey, false);
Room roomInfo = roomService.copySessionToPublicPool(sessionkey, publicPool);
roomService.setActive(sessionkey, true);
roomService.setActive(shortId, false);
Room roomInfo = roomService.copySessionToPublicPool(shortId, publicPool);
roomService.setActive(shortId, true);
return roomInfo;
}
@ApiOperation(value = "Locks or unlocks a Room",
nickname = "lockSession")
@ApiResponses(value = {
@ApiResponse(code = 404, message = HTML_STATUS_404)
})
@RequestMapping(value = "/{sessionkey}/lock", method = RequestMethod.POST)
public Room lockSession(
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey,
@ApiParam(value = "lock", required = true) @RequestParam(required = false) final Boolean lock,
final HttpServletResponse response
) {
if (lock != null) {
return roomService.setActive(sessionkey, lock);
}
response.setStatus(HttpStatus.NOT_FOUND.value());
return null;
}
@ApiOperation(value = "retrieves a value for the score",
nickname = "getLearningProgress")
@RequestMapping(value = "/{sessionkey}/learningprogress", method = RequestMethod.GET)
@RequestMapping(value = "/{shortId}/learningprogress", method = RequestMethod.GET)
public ScoreStatistics getLearningProgress(
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey,
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String shortId,
@ApiParam(value = "type", required = false) @RequestParam(value = "type", defaultValue = "questions") final String type,
@ApiParam(value = "question variant", required = false) @RequestParam(value = "questionVariant", required = false) final String questionVariant,
final HttpServletResponse response
) {
return roomService.getLearningProgress(sessionkey, type, questionVariant);
return roomService.getLearningProgress(shortId, type, questionVariant);
}
@ApiOperation(value = "retrieves a value for the learning progress for the current user",
nickname = "getMyLearningProgress")
@RequestMapping(value = "/{sessionkey}/mylearningprogress", method = RequestMethod.GET)
@RequestMapping(value = "/{shortId}/mylearningprogress", method = RequestMethod.GET)
public ScoreStatistics getMyLearningProgress(
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey,
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String shortId,
@RequestParam(value = "type", defaultValue = "questions") final String type,
@RequestParam(value = "questionVariant", required = false) final String questionVariant,
final HttpServletResponse response
) {
return roomService.getMyLearningProgress(sessionkey, type, questionVariant);
}
@ApiOperation(value = "retrieves all session features",
nickname = "getSessionFeatures")
@RequestMapping(value = "/{sessionkey}/features", method = RequestMethod.GET)
public Room.Settings getSessionFeatures(
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey,
final HttpServletResponse response
) {
return roomService.getFeatures(sessionkey);
}
@RequestMapping(value = "/{sessionkey}/features", method = RequestMethod.PUT)
@ApiOperation(value = "change all session features",
nickname = "changeSessionFeatures")
public Room.Settings changeSessionFeatures(
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey,
@ApiParam(value = "session feature", required = true) @RequestBody final Room.Settings features,
final HttpServletResponse response
) {
return roomService.updateFeatures(sessionkey, features);
}
@RequestMapping(value = "/{sessionkey}/lockfeedbackinput", method = RequestMethod.POST)
@ApiOperation(value = "locks input of user live feedback",
nickname = "lockFeedbackInput")
public boolean lockFeedbackInput(
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey,
@ApiParam(value = "lock", required = true) @RequestParam(required = true) final Boolean lock,
final HttpServletResponse response
) {
return roomService.lockFeedbackInput(sessionkey, lock);
}
@RequestMapping(value = "/{sessionkey}/flipflashcards", method = RequestMethod.POST)
@ApiOperation(value = "flip all flashcards in session",
nickname = "lockFeedbackInput")
public boolean flipFlashcards(
@ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey,
@ApiParam(value = "flip", required = true) @RequestParam(required = true) final Boolean flip,
final HttpServletResponse response
) {
return roomService.flipFlashcards(sessionkey, flip);
}
/* internal redirections */
@RequestMapping(value = "/{sessionKey}/lecturerquestion")
public String redirectLecturerQuestion(
@PathVariable final String sessionKey,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/lecturerquestion/?sessionkey=%s", sessionKey);
}
@RequestMapping(value = "/{sessionKey}/lecturerquestion/{arg1}")
public String redirectLecturerQuestionWithOneArgument(
@PathVariable final String sessionKey,
@PathVariable final String arg1,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/lecturerquestion/%s/?sessionkey=%s", arg1, sessionKey);
}
@RequestMapping(value = "/{sessionKey}/lecturerquestion/{arg1}/{arg2}")
public String redirectLecturerQuestionWithTwoArguments(
@PathVariable final String sessionKey,
@PathVariable final String arg1,
@PathVariable final String arg2,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/lecturerquestion/%s/%s/?sessionkey=%s", arg1, arg2, sessionKey);
}
@RequestMapping(value = "/{sessionKey}/lecturerquestion/{arg1}/{arg2}/{arg3}")
public String redirectLecturerQuestionWithThreeArguments(
@PathVariable final String sessionKey,
@PathVariable final String arg1,
@PathVariable final String arg2,
@PathVariable final String arg3,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/lecturerquestion/%s/%s/%s/?sessionkey=%s", arg1, arg2, arg3, sessionKey);
}
@RequestMapping(value = "/{sessionKey}/audiencequestion")
public String redirectAudienceQuestion(
@PathVariable final String sessionKey,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/audiencequestion/?sessionkey=%s", sessionKey);
}
@RequestMapping(value = "/{sessionKey}/audiencequestion/{arg1}")
public String redirectAudienceQuestionWithOneArgument(
@PathVariable final String sessionKey,
@PathVariable final String arg1,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/audiencequestion/%s/?sessionkey=%s", arg1, sessionKey);
}
@RequestMapping(value = "/{sessionKey}/audiencequestion/{arg1}/{arg2}")
public String redirectAudienceQuestionWithTwoArguments(
@PathVariable final String sessionKey,
@PathVariable final String arg1,
@PathVariable final String arg2,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/audiencequestion/%s/%s/?sessionkey=%s", arg1, arg2, sessionKey);
}
@RequestMapping(value = "/{sessionKey}/audiencequestion/{arg1}/{arg2}/{arg3}")
public String redirectAudienceQuestionWithThreeArguments(
@PathVariable final String sessionKey,
@PathVariable final String arg1,
@PathVariable final String arg2,
@PathVariable final String arg3,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/audiencequestion/%s/%s/%s/?sessionkey=%s", arg1, arg2, arg3, sessionKey);
return roomService.getMyLearningProgress(shortId, type, questionVariant);
}
}
......@@ -15,22 +15,24 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package de.thm.arsnova.controller;
package de.thm.arsnova.controller.v2;
import de.thm.arsnova.controller.AbstractController;
import de.thm.arsnova.services.CommentService;
import de.thm.arsnova.services.ContentService;
import de.thm.arsnova.web.DeprecatedApi;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
/**
* This controller forwards requests from deprecated URLs to their new controller, where the requests are handled.
*/
@Controller
@RestController("v2LegacyController")
@RequestMapping("/v2")
public class LegacyController extends AbstractController {
@Autowired
......@@ -44,55 +46,55 @@ public class LegacyController extends AbstractController {
@DeprecatedApi
@RequestMapping(value = "/session/mysessions", method = RequestMethod.GET)
public String redirectSessionMy() {
return "forward:/session/?ownedonly=true";
return "forward:/v2/session/?ownedonly=true";
}
@DeprecatedApi
@RequestMapping(value = "/session/visitedsessions", method = RequestMethod.GET)
public String redirectSessionVisited() {
return "forward:/session/?visitedonly=true";
return "forward:/v2/session/?visitedonly=true";
}
@DeprecatedApi
@RequestMapping(value = "/session/{sessionKey}/question")
public String redirectQuestionByLecturer(@PathVariable final String sessionKey) {
return String.format("forward:/lecturerquestion/?sessionkey=%s", sessionKey);
return String.format("forward:/v2/lecturerquestion/?sessionkey=%s", sessionKey);
}
@DeprecatedApi
@RequestMapping(value = "/session/{sessionKey}/skillquestions", method = RequestMethod.GET)
public String redirectQuestionByLecturerList(@PathVariable final String sessionKey) {
return String.format("forward:/lecturerquestion/?sessionkey=%s", sessionKey);
return String.format("forward:/v2/lecturerquestion/?sessionkey=%s", sessionKey);
}
@DeprecatedApi
@RequestMapping(value = "/session/{sessionKey}/skillquestioncount", method = RequestMethod.GET)
public String redirectQuestionByLecturerCount(@PathVariable final String sessionKey) {
return String.format("forward:/lecturerquestion/count?sessionkey=%s", sessionKey);
return String.format("forward:/v2/lecturerquestion/count?sessionkey=%s", sessionKey);
}
@DeprecatedApi
@RequestMapping(value = "/session/{sessionKey}/answercount", method = RequestMethod.GET)
public String redirectQuestionByLecturerAnswerCount(@PathVariable final String sessionKey) {
return String.format("forward:/lecturerquestion/answercount?sessionkey=%s", sessionKey);
return String.format("forward:/v2/lecturerquestion/answercount?sessionkey=%s", sessionKey);
}
@DeprecatedApi
@RequestMapping(value = "/session/{sessionKey}/unanswered", method = RequestMethod.GET)
public String redirectQuestionByLecturerUnnsweredCount(@PathVariable final String sessionKey) {
return String.format("forward:/lecturerquestion/answercount?sessionkey=%s", sessionKey);
return String.format("forward:/v2/lecturerquestion/answercount?sessionkey=%s", sessionKey);
}
@DeprecatedApi
@RequestMapping(value = "/session/{sessionKey}/myanswers", method = RequestMethod.GET)
public String redirectQuestionByLecturerMyAnswers(@PathVariable final String sessionKey) {
return String.format("forward:/lecturerquestion/myanswers?sessionkey=%s", sessionKey);
return String.format("forward:/v2/lecturerquestion/myanswers?sessionkey=%s", sessionKey);
}
@DeprecatedApi
@RequestMapping(value = "/session/{sessionKey}/interposed")
public String redirectQuestionByAudience(@PathVariable final String sessionKey) {
return String.format("forward:/audiencequestion/?sessionkey=%s", sessionKey);
return String.format("forward:/v2/audiencequestion/?sessionkey=%s", sessionKey);
}
@DeprecatedApi
......@@ -105,13 +107,13 @@ public class LegacyController extends AbstractController {
@DeprecatedApi
@RequestMapping(value = "/session/{sessionKey}/interposedcount", method = RequestMethod.GET)
public String redirectQuestionByAudienceCount(@PathVariable final String sessionKey) {
return String.format("forward:/audiencequestion/count?sessionkey=%s", sessionKey);
return String.format("forward:/v2/audiencequestion/count?sessionkey=%s", sessionKey);
}
@DeprecatedApi
@RequestMapping(value = "/session/{sessionKey}/interposedreadingcount", method = RequestMethod.GET)
public String redirectQuestionByAudienceReadCount(@PathVariable final String sessionKey) {
return String.format("forward:/audiencequestion/readcount?sessionkey=%s", sessionKey);
return String.format("forward:/v2/audiencequestion/readcount?sessionkey=%s", sessionKey);
}
/* generalized routes */
......@@ -122,7 +124,7 @@ public class LegacyController extends AbstractController {
@PathVariable final String sessionKey,
@PathVariable final String arg1
) {
return String.format("forward:/lecturerquestion/%s/?sessionkey=%s", arg1, sessionKey);
return String.format("forward:/v2/lecturerquestion/%s/?sessionkey=%s", arg1, sessionKey);
}
@DeprecatedApi
......@@ -134,7 +136,7 @@ public class LegacyController extends AbstractController {
@PathVariable final String arg1,
@PathVariable final String arg2
) {
return String.format("forward:/lecturerquestion/%s/%s/?sessionkey=%s", arg1, arg2, sessionKey);
return String.format("forward:/v2/lecturerquestion/%s/%s/?sessionkey=%s", arg1, arg2, sessionKey);
}
@DeprecatedApi
......@@ -143,7 +145,7 @@ public class LegacyController extends AbstractController {
@PathVariable final String sessionKey,
@PathVariable final String arg1
) {
return String.format("forward:/audiencequestion/%s/?sessionkey=%s", arg1, sessionKey);
return String.format("forward:/v2/audiencequestion/%s/?sessionkey=%s", arg1, sessionKey);
}
@DeprecatedApi
......@@ -153,6 +155,6 @@ public class LegacyController extends AbstractController {
@PathVariable final String arg1,
@PathVariable final String arg2
) {
return String.format("forward:/audiencequestion/%s/%s/?sessionkey=%s", arg1, arg2, sessionKey);
return String.format("forward:/v2/audiencequestion/%s/%s/?sessionkey=%s", arg1, arg2, sessionKey);
}
}
package de.thm.arsnova.controller.v2;
import de.thm.arsnova.controller.PaginationController;
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.services.RoomService;
import de.thm.arsnova.services.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
@RestController("v2RoomController")
@RequestMapping("/v2/session")
public class RoomController extends PaginationController {
@Autowired
private RoomService roomService;
@Autowired
private UserService userService;
@Autowired
private ToV2Migrator toV2Migrator;
@Autowired
private FromV2Migrator fromV2Migrator;
@RequestMapping(value = "/", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public Room create(@RequestBody final Room room, final HttpServletResponse response) {
return toV2Migrator.migrate(roomService.save(fromV2Migrator.migrate(room, null)), null);
}
@RequestMapping(value = "/{shortId}", method = RequestMethod.PUT)
public Room update(
@PathVariable final String shortId,
@RequestBody final Room room
) {
return toV2Migrator.migrate(roomService.update(shortId, fromV2Migrator.migrate(room, null)), null);
}
@RequestMapping(value = "/{shortId}", method = RequestMethod.DELETE)
public String delete(@PathVariable final String shortId) {
return String.format("forward:/v2/room/%s", shortId);
}
@RequestMapping(value = "/{shortId}", method = RequestMethod.GET)
public Room join(
@PathVariable final String shortId,
@RequestParam(value = "admin", defaultValue = "false") final boolean admin
) {
if (admin) {
return toV2Migrator.migrate(roomService.getForAdmin(shortId), null);
} else {
return toV2Migrator.migrate(roomService.getByKey(shortId), null);
}
}
@RequestMapping(value = "/{shortId}/activeusercount", method = RequestMethod.GET)
public int countActiveUsers(@PathVariable final String shortId) {
return roomService.activeUsers(shortId);
}
@RequestMapping(value = "/{shortId}/features", method = RequestMethod.GET)
public de.thm.arsnova.entities.Room.Settings getSessionFeatures(
@PathVariable final String shortId,
final HttpServletResponse response
) {
return roomService.getFeatures(shortId);
}
@RequestMapping(value = "/{shortId}/features", method = RequestMethod.PUT)
public de.thm.arsnova.entities.Room.Settings changeSessionFeatures(
@PathVariable final String shortId,
@RequestBody final de.thm.arsnova.entities.Room.Settings features,
final HttpServletResponse response
) {
return roomService.updateFeatures(shortId, features);
}
@RequestMapping(value = "/{sessionkey}/changecreator", method = RequestMethod.PUT)
public Room changeSessionCreator(
@PathVariable final String sessionkey,
@RequestBody final String newCreator
) {
return toV2Migrator.migrate(roomService.updateCreator(sessionkey, newCreator), null);
}
@RequestMapping(value = "/{shortId}/lock", method = RequestMethod.POST)
public Room lockSession(
@PathVariable final String shortId,
@RequestParam(required = false) final Boolean lock,
final HttpServletResponse response
) {
if (lock != null) {
return toV2Migrator.migrate(roomService.setActive(shortId, lock), null);
}
response.setStatus(HttpStatus.NOT_FOUND.value());
return null;
}
@RequestMapping(value = "/{shortId}/lockfeedbackinput", method = RequestMethod.POST)
public boolean lockFeedbackInput(
@PathVariable final String shortId,
@RequestParam(required = true) final Boolean lock,
final HttpServletResponse response
) {
return roomService.lockFeedbackInput(shortId, lock);
}
@RequestMapping(value = "/{shortId}/flipflashcards", method = RequestMethod.POST)
public boolean flipFlashcards(
@PathVariable final String shortId,
@RequestParam(required = true) final Boolean flip,
final HttpServletResponse response
) {
return roomService.flipFlashcards(shortId, flip);
}
@RequestMapping(value = "/{sessionKey}/lecturerquestion")
public String redirectLecturerQuestion(
@PathVariable final String sessionKey,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/v2/lecturerquestion/?shortId=%s", sessionKey);
}
@RequestMapping(value = "/{sessionKey}/lecturerquestion/{arg1}")
public String redirectLecturerQuestionWithOneArgument(
@PathVariable final String sessionKey,
@PathVariable final String arg1,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/v2/lecturerquestion/%s/?shortId=%s", arg1, sessionKey);
}
@RequestMapping(value = "/{sessionKey}/lecturerquestion/{arg1}/{arg2}")
public String redirectLecturerQuestionWithTwoArguments(
@PathVariable final String sessionKey,
@PathVariable final String arg1,
@PathVariable final String arg2,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/v2/lecturerquestion/%s/%s/?shortId=%s", arg1, arg2, sessionKey);
}
@RequestMapping(value = "/{sessionKey}/lecturerquestion/{arg1}/{arg2}/{arg3}")
public String redirectLecturerQuestionWithThreeArguments(
@PathVariable final String sessionKey,
@PathVariable final String arg1,
@PathVariable final String arg2,
@PathVariable final String arg3,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/v2/lecturerquestion/%s/%s/%s/?shortId=%s", arg1, arg2, arg3, sessionKey);
}
@RequestMapping(value = "/{sessionKey}/audiencequestion")
public String redirectAudienceQuestion(
@PathVariable final String sessionKey,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/v2/audiencequestion/?shortId=%s", sessionKey);
}
@RequestMapping(value = "/{sessionKey}/audiencequestion/{arg1}")
public String redirectAudienceQuestionWithOneArgument(
@PathVariable final String sessionKey,
@PathVariable final String arg1,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/v2/audiencequestion/%s/?shortId=%s", arg1, sessionKey);
}
@RequestMapping(value = "/{sessionKey}/audiencequestion/{arg1}/{arg2}")
public String redirectAudienceQuestionWithTwoArguments(
@PathVariable final String sessionKey,
@PathVariable final String arg1,
@PathVariable final String arg2,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/v2/audiencequestion/%s/%s/?shortId=%s", arg1, arg2, sessionKey);
}
@RequestMapping(value = "/{sessionKey}/audiencequestion/{arg1}/{arg2}/{arg3}")
public String redirectAudienceQuestionWithThreeArguments(
@PathVariable final String sessionKey,
@PathVariable final String arg1,
@PathVariable final String arg2,
@PathVariable final String arg3,
final HttpServletResponse response
) {
response.addHeader(X_FORWARDED, "1");
return String.format("forward:/v2/audiencequestion/%s/%s/%s/?shortId=%s", arg1, arg2, arg3, sessionKey);
}
}
......@@ -47,7 +47,7 @@ public class ToV2Migrator {
final Room to = new Room();
copyCommonProperties(from, to);
to.setKeyword(from.getShortId());
to.setCreator(owner.getLoginId());
to.setCreator(owner == null ? null : owner.getLoginId());
to.setName(from.getName());
to.setShortName(from.getAbbreviation());
to.setActive(!from.isClosed());
......
......@@ -186,7 +186,7 @@ public class CouchDbRoomRepository extends CouchDbCrudRepository<Room> implement
// } catch (final IOException e) {
// logger.error("Could not import session.", e);
// // Something went wrong, delete this session since we do not want a partial import
// this.deleteSession(session);
// this.delete(session);
// return null;
// }
// return this.calculateSessionInfo(importSession, session);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment