From 0ed2149658fb1b03cf79d4c7dff436e424288940 Mon Sep 17 00:00:00 2001 From: Daniel Gerhardt <daniel.gerhardt@mni.thm.de> Date: Tue, 5 Mar 2013 12:12:16 +0100 Subject: [PATCH] Added X-Deprecated-API HTTP header flag to URLs not conforming with the API specification. Changed StatisticsController to allow requests without a trailing slash to be consistent with the other **/statistics paths. --- .../AudienceQuestionController.java | 4 ++++ .../controller/FeedbackController.java | 20 +++++++++++++++---- .../LecturerQuestionController.java | 14 +++++++++++++ .../arsnova/controller/SessionController.java | 4 ++++ .../controller/StatisticsController.java | 17 ++++++++++------ 5 files changed, 49 insertions(+), 10 deletions(-) diff --git a/src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java b/src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java index 8dfc841e..deb90a82 100644 --- a/src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java +++ b/src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java @@ -56,6 +56,8 @@ public class AudienceQuestionController extends AbstractController { @RequestParam final String sessionkey, final HttpServletResponse response ) { + response.addHeader("X-Deprecated-API", "1"); + return questionService.getInterposedCount(sessionkey); } @@ -65,6 +67,8 @@ public class AudienceQuestionController extends AbstractController { @RequestParam final String sessionkey, final HttpServletResponse response ) { + response.addHeader("X-Deprecated-API", "1"); + return questionService.getInterposedReadingCount(sessionkey); } diff --git a/src/main/java/de/thm/arsnova/controller/FeedbackController.java b/src/main/java/de/thm/arsnova/controller/FeedbackController.java index c1a4be8f..808368ce 100644 --- a/src/main/java/de/thm/arsnova/controller/FeedbackController.java +++ b/src/main/java/de/thm/arsnova/controller/FeedbackController.java @@ -51,7 +51,9 @@ public class FeedbackController extends AbstractController { @RequestMapping(value = "/session/{sessionkey}/feedback", method = RequestMethod.GET) @ResponseBody - public final Feedback getFeedback(@PathVariable final String sessionkey) { + public final Feedback getFeedback(@PathVariable final String sessionkey, final HttpServletResponse response) { + response.addHeader("X-Deprecated-API", "1"); + return feedbackService.getFeedback(sessionkey); } @@ -59,6 +61,8 @@ public class FeedbackController extends AbstractController { @ResponseBody public final Integer getMyFeedback(@PathVariable final String sessionkey, final HttpServletResponse response) { Integer value = feedbackService.getMyFeedback(sessionkey, userService.getCurrentUser()); + + response.addHeader("X-Deprecated-API", "1"); if (value != null && value >= Feedback.MIN_FEEDBACK_TYPE && value <= Feedback.MAX_FEEDBACK_TYPE) { return value; @@ -68,19 +72,25 @@ public class FeedbackController extends AbstractController { @RequestMapping(value = "/session/{sessionkey}/feedbackcount", method = RequestMethod.GET) @ResponseBody - public final int getFeedbackCount(@PathVariable final String sessionkey) { + public final int getFeedbackCount(@PathVariable final String sessionkey, final HttpServletResponse response) { + response.addHeader("X-Deprecated-API", "1"); + return feedbackService.getFeedbackCount(sessionkey); } @RequestMapping(value = "/session/{sessionkey}/roundedaveragefeedback", method = RequestMethod.GET) @ResponseBody - public final long getAverageFeedbackRounded(@PathVariable final String sessionkey) { + public final long getAverageFeedbackRounded(@PathVariable final String sessionkey, final HttpServletResponse response) { + response.addHeader("X-Deprecated-API", "1"); + return feedbackService.getAverageFeedbackRounded(sessionkey); } @RequestMapping(value = "/session/{sessionkey}/averagefeedback", method = RequestMethod.GET) @ResponseBody - public final double getAverageFeedback(@PathVariable final String sessionkey) { + public final double getAverageFeedback(@PathVariable final String sessionkey, final HttpServletResponse response) { + response.addHeader("X-Deprecated-API", "1"); + return feedbackService.getAverageFeedback(sessionkey); } @@ -92,6 +102,8 @@ public class FeedbackController extends AbstractController { @RequestBody final int value, final HttpServletResponse response ) { + response.addHeader("X-Deprecated-API", "1"); + User user = userService.getCurrentUser(); if (feedbackService.saveFeedback(sessionkey, value, user)) { Feedback feedback = feedbackService.getFeedback(sessionkey); diff --git a/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java b/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java index 281cc599..7c18c10c 100644 --- a/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java +++ b/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java @@ -149,6 +149,8 @@ public class LecturerQuestionController extends AbstractController { @RequestMapping(value = "/count", method = RequestMethod.GET) @ResponseBody public final int getSkillQuestionCount(@RequestParam final String sessionkey, final HttpServletResponse response) { + response.addHeader("X-Deprecated-API", "1"); + return questionService.getSkillQuestionCount(sessionkey); } @@ -187,6 +189,9 @@ public class LecturerQuestionController extends AbstractController { if (answers == null || answers.isEmpty()) { throw new NoContentException(); } + + response.addHeader("X-Deprecated-API", "1"); + return answers; } @@ -216,6 +221,9 @@ public class LecturerQuestionController extends AbstractController { response.setStatus(HttpStatus.NO_CONTENT.value()); return null; } + + response.addHeader("X-Deprecated-API", "1"); + return answer; } @@ -308,6 +316,8 @@ public class LecturerQuestionController extends AbstractController { @PathVariable final String questionId, final HttpServletResponse response ) { + response.addHeader("X-Deprecated-API", "1"); + return questionService.getAnswerCount(questionId); } @@ -326,6 +336,8 @@ public class LecturerQuestionController extends AbstractController { @RequestParam final String sessionkey, final HttpServletResponse response ) { + response.addHeader("X-Deprecated-API", "1"); + return questionService.getMytAnswers(sessionkey); } @@ -335,6 +347,8 @@ public class LecturerQuestionController extends AbstractController { @RequestParam final String sessionkey, final HttpServletResponse response ) { + response.addHeader("X-Deprecated-API", "1"); + return questionService.getTotalAnswerCount(sessionkey); } diff --git a/src/main/java/de/thm/arsnova/controller/SessionController.java b/src/main/java/de/thm/arsnova/controller/SessionController.java index fdafc527..50639f5f 100644 --- a/src/main/java/de/thm/arsnova/controller/SessionController.java +++ b/src/main/java/de/thm/arsnova/controller/SessionController.java @@ -71,6 +71,8 @@ public class SessionController extends AbstractController { @PathVariable final String sessionkey, final HttpServletResponse response ) { + response.addHeader("X-Deprecated-API", "1"); + User user = userService.getCurrentUser(); LoggedIn loggedIn = sessionService.registerAsOnlineUser(user, sessionkey); if (loggedIn != null) { @@ -86,6 +88,8 @@ public class SessionController extends AbstractController { @PathVariable final String sessionkey, final HttpServletResponse response ) { + response.addHeader("X-Deprecated-API", "1"); + return sessionService.countActiveUsers(sessionkey); } diff --git a/src/main/java/de/thm/arsnova/controller/StatisticsController.java b/src/main/java/de/thm/arsnova/controller/StatisticsController.java index 09317972..38b99a40 100644 --- a/src/main/java/de/thm/arsnova/controller/StatisticsController.java +++ b/src/main/java/de/thm/arsnova/controller/StatisticsController.java @@ -1,5 +1,7 @@ package de.thm.arsnova.controller; +import javax.servlet.http.HttpServletResponse; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -10,27 +12,30 @@ import de.thm.arsnova.entities.Statistics; import de.thm.arsnova.services.IStatisticsService; @Controller -@RequestMapping("/statistics") public class StatisticsController { @Autowired private IStatisticsService statisticsService; - @RequestMapping(method = RequestMethod.GET, value = "/") + @RequestMapping(method = RequestMethod.GET, value = "/statistics") @ResponseBody public final Statistics getStatistics() { return statisticsService.getStatistics(); } - @RequestMapping(method = RequestMethod.GET, value = "/activeusercount", produces = "text/plain") + @RequestMapping(method = RequestMethod.GET, value = "/statistics/activeusercount", produces = "text/plain") @ResponseBody - public final String countActiveUsers() { + public final String countActiveUsers(HttpServletResponse response) { + response.addHeader("X-Deprecated-API", "1"); + return Integer.toString(statisticsService.countActiveUsers()); } - @RequestMapping(method = RequestMethod.GET, value = "/sessioncount", produces = "text/plain") + @RequestMapping(method = RequestMethod.GET, value = "/statistics/sessioncount", produces = "text/plain") @ResponseBody - public final String countSessions() { + public final String countSessions(HttpServletResponse response) { + response.addHeader("X-Deprecated-API", "1"); + return Integer.toString(statisticsService.getStatistics().getOpenSessions() + statisticsService.getStatistics().getClosedSessions()); } -- GitLab