diff --git a/Java/Spring/activitypubbot/src/main/java/dev/activitypub/activitypubbot/BotController.java b/Java/Spring/activitypubbot/src/main/java/dev/activitypub/activitypubbot/BotController.java index 24e8f93..a3255bd 100644 --- a/Java/Spring/activitypubbot/src/main/java/dev/activitypub/activitypubbot/BotController.java +++ b/Java/Spring/activitypubbot/src/main/java/dev/activitypub/activitypubbot/BotController.java @@ -5,7 +5,11 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.http.HttpStatus; import org.springframework.ui.Model; import java.util.List; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,17 @@ public class BotController { @Autowired private BotService botServ; + /** + * Send a 404 page for bots if someone tries to access a bot that doesn't exist. + */ + @ExceptionHandler(value = BotNotFoundByUsernameException.class) + @ResponseStatus(HttpStatus.NOT_FOUND) + public ModelAndView handleBotNotFoundByUsernameException(BotNotFoundByUsernameException ex) { + ModelAndView mav = new ModelAndView("user_not_found"); + mav.addObject("message", ex.getLocalizedMessage()); + return mav; + } + @GetMapping("/viewbot") public String listAll(Model model) { log.info("BotController::viewbot"); diff --git a/Java/Spring/activitypubbot/src/main/java/dev/activitypub/activitypubbot/BotService.java b/Java/Spring/activitypubbot/src/main/java/dev/activitypub/activitypubbot/BotService.java index 5900b59..cfc9cea 100644 --- a/Java/Spring/activitypubbot/src/main/java/dev/activitypub/activitypubbot/BotService.java +++ b/Java/Spring/activitypubbot/src/main/java/dev/activitypub/activitypubbot/BotService.java @@ -31,7 +31,7 @@ public class BotService { } public Bot getBotByUsername( String username ) { - return repo.findByUsername( username ).get(); + return repo.findByUsername( username ).orElseThrow(() -> new BotNotFoundByUsernameException(username)); } diff --git a/Java/Spring/activitypubbot/src/main/java/dev/activitypub/activitypubbot/RestHandler.java b/Java/Spring/activitypubbot/src/main/java/dev/activitypub/activitypubbot/RestHandler.java index 27f2fa2..84d07e6 100644 --- a/Java/Spring/activitypubbot/src/main/java/dev/activitypub/activitypubbot/RestHandler.java +++ b/Java/Spring/activitypubbot/src/main/java/dev/activitypub/activitypubbot/RestHandler.java @@ -7,7 +7,6 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.server.ResponseStatusException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.thymeleaf.context.Context;