From 2fc5ad92d257106e22746f9d3c69db458dc9738f Mon Sep 17 00:00:00 2001 From: Zaine Arch Date: Sat, 3 Jan 2026 16:03:27 +0000 Subject: [PATCH] added an update competency functionality --- .gitignore | 3 ++- .../app/controller/CompetenciesController.java | 12 +++++++----- .../java/org/zaine/app/model/Competencies.java | 2 +- .../repositories/CompetenciesRepository.java | 2 +- .../zaine/app/service/CompetenciesService.java | 18 +++++++++++++++++- 5 files changed, 28 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index c82eeba..9657bf9 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ target/ application.properties .settings/ .project -.classpath \ No newline at end of file +.classpath +.vscode/ \ No newline at end of file diff --git a/src/main/java/org/zaine/app/controller/CompetenciesController.java b/src/main/java/org/zaine/app/controller/CompetenciesController.java index 6d5e549..332fa77 100644 --- a/src/main/java/org/zaine/app/controller/CompetenciesController.java +++ b/src/main/java/org/zaine/app/controller/CompetenciesController.java @@ -10,9 +10,12 @@ import org.springframework.web.bind.annotation.PathVariable; import org.zaine.app.model.Competencies; import org.zaine.app.service.CompetenciesService; +import java.lang.System.Logger; + @RestController public class CompetenciesController { + private static final Logger logger = System.getLogger(CompetenciesController.class.getName()); @Autowired private CompetenciesService competenciesService; @@ -29,11 +32,10 @@ public class CompetenciesController { @PostMapping("/competencies/items/{id}/state") - public void updateCompetencyState(@RequestParam Long id, @RequestParam String newState) { - Long compId = id; - String state = newState; - - //competenciesService.updateCompetencyState(id, newState); + public void updateCompetencyState(@PathVariable Long id, @RequestParam String newState) { + logger.log(System.Logger.Level.INFO, "Received request to update competency id " + id + " to new state: " + newState); + + competenciesService.updateCompetencyState(id, newState); } diff --git a/src/main/java/org/zaine/app/model/Competencies.java b/src/main/java/org/zaine/app/model/Competencies.java index f1240af..9fd263a 100644 --- a/src/main/java/org/zaine/app/model/Competencies.java +++ b/src/main/java/org/zaine/app/model/Competencies.java @@ -25,7 +25,7 @@ public class Competencies { @Column(name="created_at") private Instant createdAt; - @Column(name="group") + @Column(name="group_name") private String group; diff --git a/src/main/java/org/zaine/app/repositories/CompetenciesRepository.java b/src/main/java/org/zaine/app/repositories/CompetenciesRepository.java index 0d90ade..e983772 100644 --- a/src/main/java/org/zaine/app/repositories/CompetenciesRepository.java +++ b/src/main/java/org/zaine/app/repositories/CompetenciesRepository.java @@ -5,5 +5,5 @@ import org.zaine.app.model.Competencies; public interface CompetenciesRepository extends JpaRepository { - + } diff --git a/src/main/java/org/zaine/app/service/CompetenciesService.java b/src/main/java/org/zaine/app/service/CompetenciesService.java index fd4f740..6b24247 100644 --- a/src/main/java/org/zaine/app/service/CompetenciesService.java +++ b/src/main/java/org/zaine/app/service/CompetenciesService.java @@ -15,6 +15,14 @@ public class CompetenciesService { private final CompetenciesRepository competenciesRepository; + private static final List ALLOWED_STATES = List.of( + "completed", + "manager_review", + "in_progress", + "not_started", + "comments" + ); + public CompetenciesService(CompetenciesRepository competenciesRepository) { this.competenciesRepository = competenciesRepository; } @@ -25,7 +33,6 @@ public class CompetenciesService { } public Competencies getCompetencyById(Long id) { - // Log the method entry logger.log(System.Logger.Level.INFO, "Entering getCompetencyById with id: " + id); @@ -34,5 +41,14 @@ public class CompetenciesService { public void updateCompetencyState(Long id, String newState) { + Competencies competency = getCompetencyById(id); + if (competency != null) { + competency.setState(newState); + competenciesRepository.save(competency); + logger.log(System.Logger.Level.INFO, "Updated competency id " + id + " to new state: " + newState); + } else { + logger.log(System.Logger.Level.WARNING, "Competency with id " + id + " not found."); + } + } }