fuzzy-controller/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleRestController.java
Anton Romanov 17759d3d83
All checks were successful
CI fuzzy controller / container-test-job (push) Successful in 1m4s
#21 -- Add rules generation
2025-03-15 12:49:49 +04:00

66 lines
2.5 KiB
Java

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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ru.ulstu.fc.project.service.ProjectRulesService;
import ru.ulstu.fc.rule.model.FuzzyRule;
import ru.ulstu.fc.rule.model.dto.FuzzyRuleDataDto;
import ru.ulstu.fc.rule.model.dto.FuzzyRuleDto;
import ru.ulstu.fc.rule.service.FuzzyRuleParseService;
import ru.ulstu.fc.rule.service.FuzzyRuleService;
import java.util.List;
@RestController
@RequestMapping("fuzzyRuleRest")
public class FuzzyRuleRestController {
private final FuzzyRuleService ruleService;
private final ProjectRulesService projectRulesService;
private final FuzzyRuleParseService fuzzyRuleParseService;
public FuzzyRuleRestController(FuzzyRuleService ruleService,
ProjectRulesService projectRulesService,
FuzzyRuleParseService fuzzyRuleParseService) {
this.ruleService = ruleService;
this.projectRulesService = projectRulesService;
this.fuzzyRuleParseService = fuzzyRuleParseService;
}
@GetMapping("/getAll/{projectId}")
public List<FuzzyRuleDto> getAll(@PathVariable(value = "projectId") Integer projectId) {
return projectRulesService.getDtoByProjectId(projectId);
}
@GetMapping("/get/{ruleId}")
public FuzzyRuleDto get(@PathVariable(value = "ruleId") Integer id) {
return ruleService.getByIdDto(id);
}
@PostMapping
public FuzzyRule save(@Valid FuzzyRuleDto fuzzyRuleDto) {
return ruleService.save(fuzzyRuleDto);
}
@DeleteMapping
public void delete(@Valid FuzzyRuleDto fuzzyRuleDto) {
if (fuzzyRuleDto != null && fuzzyRuleDto.getId() != null) {
ruleService.delete(fuzzyRuleDto);
}
}
@PostMapping("parse/{projectId}")
public List<FuzzyRule> parseRule(@PathVariable("projectId") Integer projectId, String data) {
return fuzzyRuleParseService.parseFuzzyRules(data, projectId);
}
@PostMapping("generate-rules/{projectId}")
public void generateRules(@PathVariable("projectId") Integer projectId, FuzzyRuleDataDto fuzzyRuleDataDto) {
fuzzyRuleParseService.generateRules(projectId, fuzzyRuleDataDto);
}
}