diff --git a/src/main/kotlin/com/example/blog/HtmlController.kt b/src/main/kotlin/com/example/blog/HtmlController.kt index 045e066..4ae34f4 100644 --- a/src/main/kotlin/com/example/blog/HtmlController.kt +++ b/src/main/kotlin/com/example/blog/HtmlController.kt @@ -1,10 +1,12 @@ package com.example.blog +import org.springframework.http.HttpStatus.* import org.springframework.stereotype.Controller import org.springframework.ui.Model import org.springframework.ui.set import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.PathVariable +import org.springframework.web.server.ResponseStatusException @Controller class HtmlController(private val repository: ArticleRepository, @@ -23,7 +25,7 @@ class HtmlController(private val repository: ArticleRepository, val article = repository .findBySlug(slug) ?.render() - ?: throw IllegalArgumentException("Wrong article slug provided") + ?: throw ResponseStatusException(NOT_FOUND, "This article does not exist") model["title"] = article.title model["article"] = article return "article" diff --git a/src/main/kotlin/com/example/blog/HttpControllers.kt b/src/main/kotlin/com/example/blog/HttpControllers.kt index 0254d62..56b4b8e 100644 --- a/src/main/kotlin/com/example/blog/HttpControllers.kt +++ b/src/main/kotlin/com/example/blog/HttpControllers.kt @@ -13,7 +13,7 @@ class ArticleController(private val repository: ArticleRepository) { @GetMapping("/{slug}") fun findOne(@PathVariable slug: String) = - repository.findBySlug(slug) ?: throw ResponseStatusException(NOT_FOUND, "Wrong article slug provided") + repository.findBySlug(slug) ?: throw ResponseStatusException(NOT_FOUND, "This article does not exist") } @@ -25,5 +25,5 @@ class UserController(private val repository: UserRepository) { fun findAll() = repository.findAll() @GetMapping("/{login}") - fun findOne(@PathVariable login: String) = repository.findByLogin(login) + fun findOne(@PathVariable login: String) = repository.findByLogin(login) ?: throw ResponseStatusException(NOT_FOUND, "This user does not exist") } diff --git a/src/main/kotlin/com/example/blog/Repositories.kt b/src/main/kotlin/com/example/blog/Repositories.kt index 5ed2fc8..36f297a 100644 --- a/src/main/kotlin/com/example/blog/Repositories.kt +++ b/src/main/kotlin/com/example/blog/Repositories.kt @@ -8,6 +8,6 @@ interface ArticleRepository : CrudRepository { } interface UserRepository : CrudRepository { - fun findByLogin(login: String): User + fun findByLogin(login: String): User? }