diff --git a/src/main/java/com/openisle/controller/ReactionController.java b/src/main/java/com/openisle/controller/ReactionController.java index 607b1cfff..bef570999 100644 --- a/src/main/java/com/openisle/controller/ReactionController.java +++ b/src/main/java/com/openisle/controller/ReactionController.java @@ -15,6 +15,14 @@ import org.springframework.web.bind.annotation.*; public class ReactionController { private final ReactionService reactionService; + /** + * Get all available reaction types. + */ + @GetMapping("/reaction-types") + public ReactionType[] listReactionTypes() { + return ReactionType.values(); + } + @PostMapping("/posts/{postId}/reactions") public ResponseEntity reactToPost(@PathVariable Long postId, @RequestBody ReactionRequest req, diff --git a/src/test/java/com/openisle/controller/ReactionControllerTest.java b/src/test/java/com/openisle/controller/ReactionControllerTest.java index 8faaef469..1ebf17fbc 100644 --- a/src/test/java/com/openisle/controller/ReactionControllerTest.java +++ b/src/test/java/com/openisle/controller/ReactionControllerTest.java @@ -17,6 +17,7 @@ import org.springframework.test.web.servlet.MockMvc; import static org.mockito.ArgumentMatchers.eq; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -70,4 +71,11 @@ class ReactionControllerTest { .andExpect(status().isOk()) .andExpect(jsonPath("$.commentId").value(2)); } + + @Test + void listReactionTypes() throws Exception { + mockMvc.perform(get("/api/reaction-types")) + .andExpect(status().isOk()) + .andExpect(jsonPath("$[0]").value("LIKE")); + } }