diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c5f3f6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/src/main/java/ru/ulstu/fc/rule/controller/RuleController.java b/src/main/java/ru/ulstu/fc/rule/controller/RuleController.java index 12906db..847826d 100644 --- a/src/main/java/ru/ulstu/fc/rule/controller/RuleController.java +++ b/src/main/java/ru/ulstu/fc/rule/controller/RuleController.java @@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import ru.ulstu.fc.project.model.Project; import ru.ulstu.fc.project.model.ProjectForm; +import ru.ulstu.fc.project.service.ProjectService; import ru.ulstu.fc.rule.model.Rule; import ru.ulstu.fc.rule.model.RuleForm; @@ -16,7 +17,7 @@ import ru.ulstu.fc.rule.model.RuleForm; @RequestMapping("rule") public class RuleController { private final RuleService ruleService; - + public RuleController(RuleService ruleService) { this.ruleService = ruleService; } diff --git a/src/main/java/ru/ulstu/fc/rule/controller/RuleService.java b/src/main/java/ru/ulstu/fc/rule/controller/RuleService.java index a4df3c9..8e7d89a 100644 --- a/src/main/java/ru/ulstu/fc/rule/controller/RuleService.java +++ b/src/main/java/ru/ulstu/fc/rule/controller/RuleService.java @@ -1,5 +1,43 @@ package ru.ulstu.fc.rule.controller; -public class RuleService { +import org.springframework.stereotype.Service; +import ru.ulstu.fc.project.repository.RuleRepository; +import ru.ulstu.fc.project.service.ProjectService; +import ru.ulstu.fc.rule.model.Rule; +import ru.ulstu.fc.rule.model.RuleForm; + +@Service +public class RuleService { + private final RuleRepository ruleRepository; + private final ProjectService projectService; + + public RuleService(RuleRepository ruleRepository, ProjectService projectService) { + this.ruleRepository = ruleRepository; + this.projectService = projectService; + } + + public Rule getById(Integer id) { + return ruleRepository + .findById(id) + .orElseThrow(() -> new RuntimeException("Rule not found by id")); + } + + public Object save(RuleForm ruleForm) { + if (ruleForm.getId() == null) { + Rule rule = new Rule(); + rule.setProject(projectService.getById(ruleForm.getProjectId())); + // rule.set... + return ruleRepository.save(rule); + } + Rule dbRule = getById(ruleForm.getId()); + dbRule.setProject(projectService.getById(ruleForm.getProjectId())); + // dbRule.set ... + return ruleRepository.save(dbRule); + } + + public void delete(RuleForm ruleForm) { + getById(ruleForm.getId()); + ruleRepository.deleteById(ruleForm.getId()); + } } diff --git a/src/main/java/ru/ulstu/fc/rule/model/Antecedent.java b/src/main/java/ru/ulstu/fc/rule/model/Antecedent.java index 6950aa1..7df29b5 100644 --- a/src/main/java/ru/ulstu/fc/rule/model/Antecedent.java +++ b/src/main/java/ru/ulstu/fc/rule/model/Antecedent.java @@ -13,17 +13,13 @@ public class Antecedent extends BaseEntity { public Variable getVariable() { return variable; } - public void setVariable(Variable variable) { this.variable = variable; } - public String getValue() { return value; } - public void setValue(String value) { this.value = value; } - } diff --git a/src/main/java/ru/ulstu/fc/rule/model/Rule.java b/src/main/java/ru/ulstu/fc/rule/model/Rule.java index 2d929c6..cb071cb 100644 --- a/src/main/java/ru/ulstu/fc/rule/model/Rule.java +++ b/src/main/java/ru/ulstu/fc/rule/model/Rule.java @@ -17,6 +17,9 @@ public class Rule extends BaseEntity { @ManyToOne private Consequent consequent; + public Rule() { + } + public Project getProject() { return project; } diff --git a/src/main/java/ru/ulstu/fc/rule/model/RuleForm.java b/src/main/java/ru/ulstu/fc/rule/model/RuleForm.java index 0f774a9..e9d8629 100644 --- a/src/main/java/ru/ulstu/fc/rule/model/RuleForm.java +++ b/src/main/java/ru/ulstu/fc/rule/model/RuleForm.java @@ -1,10 +1,32 @@ package ru.ulstu.fc.rule.model; public class RuleForm { - private final Integer projectId; + private Integer id; + private Integer projectId; + + public RuleForm() { + } + + public RuleForm(Rule rule) { + this.projectId = (rule == null || rule.getProject() == null) + ? null + : rule.getProject().getId(); + } public Integer getProjectId() { return projectId; } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public void setProjectId(Integer projectId) { + this.projectId = projectId; + } }