From 9ad33c4e79996c45b6b55564fdd1fcb6cbb98f24 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Tue, 25 Feb 2025 16:00:41 +0400 Subject: [PATCH] #17 -- REST CRUD for terms --- .../controller/FuzzyTermRestController.java | 47 +++++++++++++++++++ .../ru/ulstu/fc/rule/model/FuzzyTermForm.java | 4 ++ .../fc/rule/service/FuzzyTermService.java | 4 ++ 3 files changed, 55 insertions(+) create mode 100644 src/main/java/ru/ulstu/fc/rule/controller/FuzzyTermRestController.java diff --git a/src/main/java/ru/ulstu/fc/rule/controller/FuzzyTermRestController.java b/src/main/java/ru/ulstu/fc/rule/controller/FuzzyTermRestController.java new file mode 100644 index 0000000..962f5b2 --- /dev/null +++ b/src/main/java/ru/ulstu/fc/rule/controller/FuzzyTermRestController.java @@ -0,0 +1,47 @@ +package ru.ulstu.fc.rule.controller; + +import jakarta.validation.Valid; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RestController; +import ru.ulstu.fc.rule.model.FuzzyTerm; +import ru.ulstu.fc.rule.model.FuzzyTermForm; +import ru.ulstu.fc.rule.service.FuzzyTermService; + +import java.util.List; + +@RestController("fuzzyTermRest") +public class FuzzyTermRestController { + private final FuzzyTermService fuzzyTermService; + + public FuzzyTermRestController(FuzzyTermService fuzzyTermService) { + this.fuzzyTermService = fuzzyTermService; + } + + @GetMapping("/list/{projectId}/{variableId}") + public List getList(@PathVariable(value = "projectId") Integer projectId, + @PathVariable(value = "variableId") Integer variableId) { + return fuzzyTermService.getAll(projectId, variableId); + } + + @GetMapping("/get/{projectId}/{variableId}/{fuzzyTermId}") + public FuzzyTerm getById(@PathVariable(value = "projectId") Integer projectId, + @PathVariable(value = "variableId") Integer variableId, + @PathVariable(value = "fuzzyTermId") Integer fuzzyTermId) { + return fuzzyTermService.getById(fuzzyTermId); + } + + @PostMapping + public FuzzyTerm save(@Valid FuzzyTermForm fuzzyTermForm) { + return fuzzyTermService.save(fuzzyTermForm); + } + + @DeleteMapping + public void delete(@Valid FuzzyTermForm fuzzyTermForm) { + if (fuzzyTermForm != null && fuzzyTermForm.getId() != null) { + fuzzyTermService.delete(fuzzyTermForm); + } + } +} diff --git a/src/main/java/ru/ulstu/fc/rule/model/FuzzyTermForm.java b/src/main/java/ru/ulstu/fc/rule/model/FuzzyTermForm.java index 755fda3..e660993 100644 --- a/src/main/java/ru/ulstu/fc/rule/model/FuzzyTermForm.java +++ b/src/main/java/ru/ulstu/fc/rule/model/FuzzyTermForm.java @@ -1,7 +1,11 @@ package ru.ulstu.fc.rule.model; +import jakarta.validation.constraints.NotNull; + public class FuzzyTermForm { + @NotNull private Integer projectId; + @NotNull private Integer variableId; private Integer id; private String description; diff --git a/src/main/java/ru/ulstu/fc/rule/service/FuzzyTermService.java b/src/main/java/ru/ulstu/fc/rule/service/FuzzyTermService.java index a9f6d2c..1548f13 100644 --- a/src/main/java/ru/ulstu/fc/rule/service/FuzzyTermService.java +++ b/src/main/java/ru/ulstu/fc/rule/service/FuzzyTermService.java @@ -53,4 +53,8 @@ public class FuzzyTermService { } return variableService.getById(variableId).getFuzzyTerms(); } + + public List getAll(Integer projectId, Integer variableId) { + return getByVariableId(variableId); + } }