diff options
| author | Elias Haugsbakk <[email protected]> | 2026-07-27 17:12:31 +0200 |
|---|---|---|
| committer | Elias Haugsbakk <[email protected]> | 2026-07-27 17:12:31 +0200 |
| commit | 7b214145be0e17241fa1987df3d2730bb61eaa45 (patch) | |
| tree | 8fd11ce378660e76048c223464eead8d3039b81a /clams-server/src/main/java | |
| parent | 8cbc11810c99bacb92b4bc55f36e1f00104f08d3 (diff) | |
return 404 if blog post is not found when deleting
Diffstat (limited to 'clams-server/src/main/java')
3 files changed, 8 insertions, 7 deletions
diff --git a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/controller/PostController.java b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/controller/PostController.java index 155c271..e4b3595 100644 --- a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/controller/PostController.java +++ b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/controller/PostController.java @@ -24,12 +24,13 @@ public class PostController { String slug = ctx.pathParam("slug"); PostDTO updatedPost = ctx.bodyAsClass(PostDTO.class); - postsRepo.getPost(slug) - .map(existing -> Post.fromUpdated(existing, updatedPost)) + postsRepo.getPost(slug).map(existing -> Post.fromUpdated(existing, updatedPost)) .ifPresentOrElse(postsRepo::updatePost, () -> ctx.status(404)); } public void handleDeletePost(Context ctx) { - postsRepo.deletePost(ctx.pathParam("slug")); + if (!postsRepo.deletePost(ctx.pathParam("slug"))) { + ctx.status(404); + } } } diff --git a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/repository/PostsRepo.java b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/repository/PostsRepo.java index b5553b5..99e179c 100644 --- a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/repository/PostsRepo.java +++ b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/repository/PostsRepo.java @@ -12,6 +12,6 @@ public interface PostsRepo { void addPost(Post post); void updatePost(Post post); - void deletePost(String slug); + boolean deletePost(String slug); boolean existsPostBySlug(String slug); } diff --git a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/repository/PostsRepoSqlite.java b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/repository/PostsRepoSqlite.java index 5f79745..b5914df 100644 --- a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/repository/PostsRepoSqlite.java +++ b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/repository/PostsRepoSqlite.java @@ -173,7 +173,7 @@ public class PostsRepoSqlite implements PostsRepo { } @Override - public void deletePost(String slug) { + public boolean deletePost(String slug) { String sql = """ DELETE FROM posts WHERE slug = ? @@ -184,8 +184,8 @@ public class PostsRepoSqlite implements PostsRepo { stmt.setString(1, slug); - stmt.executeUpdate(); - + int rowsAffected = stmt.executeUpdate(); + return rowsAffected > 0; } catch (SQLException e) { throw new RepoException("Error deleting post " + slug + ": ", e); } |
