Merge pull request 'api: Improve skills' (#36) from 3002833/Backend:main into main

Reviewed-on: Maradona/Backend#36
pull/1/head
David Hess 2024-11-04 18:24:10 +01:00
commit bb539ee3b2
3 changed files with 12 additions and 22 deletions

Binary file not shown.

View File

@ -9,7 +9,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import com.maradona.backend.entities.SecondarySkill;
import com.maradona.backend.entities.EmployeeSecondarySkill;
@ -20,8 +19,6 @@ import com.maradona.backend.services.SecondarySkillService;
import com.maradona.backend.dto.SkillForm;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
@Controller
@RequestMapping("/skills")
@ -62,8 +59,8 @@ public class SkillsController {
@GetMapping("/add")
public String addSkill(Model model) {
model.addAttribute("primarySkills", primarySkillService.getAllPrimarySkills());
model.addAttribute("secondarySkills", List.of()); // Empty list initially
model.addAttribute("skillForm", new SkillForm()); // Add a form object to the model
model.addAttribute("secondarySkills", List.of());
model.addAttribute("skillForm", new SkillForm());
return "skills/skills-add";
}
@ -90,10 +87,6 @@ public class SkillsController {
@ResponseBody
public Iterable<SecondarySkill> getSecondarySkills(@RequestParam Long primarySkillId) {
var list = secondarySkillService.getSecondarySkillsByPrimarySkillId(primarySkillId);
System.out.println("Secondary skills for primary skill " + primarySkillId + ":");
for (SecondarySkill skill : list) {
System.out.println(skill.getDescription());
}
return list;
}
@ -135,7 +128,7 @@ public class SkillsController {
@PostMapping("/remove")
public String remove(@RequestParam Long id) {
var employee = employeeService.getEmployeeById(user).orElseThrow(() -> new RuntimeException("Employee not found"));
var secondarySkill = secondarySkillService.getSecondarySkillById(id)
secondarySkillService.getSecondarySkillById(id)
.orElseThrow(() -> new RuntimeException("Secondary Skill not found"));
employee.getSecondarySkills().removeIf(skill -> skill.getSecondarySkill().getSsid().equals(id));
@ -146,26 +139,21 @@ public class SkillsController {
// Update skill level
@PostMapping("/update-level")
@ResponseBody
public Map<String, Object> updateLevel(@RequestBody Map<String, Object> payload) {
Long skillId = Long.valueOf((String) payload.get("skillId"));
Integer level = Integer.valueOf((String) payload.get("level"));
public String updateLevel(@RequestParam Long skillId, @RequestParam Integer level) {
var employee = employeeService.getEmployeeById(user).orElseThrow(() -> new RuntimeException("Employee not found"));
var secondarySkill = secondarySkillService.getSecondarySkillById(skillId)
secondarySkillService.getSecondarySkillById(skillId)
.orElseThrow(() -> new RuntimeException("Secondary Skill not found"));
for (EmployeeSecondarySkill ess : employee.getSecondarySkills()) {
if (ess.getSecondarySkill().getSsid().equals(skillId)) {
ess.setLevel(level);
for (EmployeeSecondarySkill skill : employee.getSecondarySkills()) {
if (skill.getSecondarySkill().getSsid().equals(skillId)) {
skill.setLevel(level);
break;
}
}
employeeService.saveEmployee(employee);
Map<String, Object> response = new HashMap<>();
response.put("success", true);
return response;
return "redirect:/skills";
}
}

View File

@ -63,7 +63,9 @@ public class SkillService {
if (!secondarySkillList.isEmpty()) {
skills.add(new SkillDto(primarySkill, secondarySkillList));
}
secondarySkillList.sort((a, b) -> a.getFirst().getDescription().compareTo(b.getFirst().getDescription()));
}
skills.sort((a, b) -> a.getPrimarySkill().getDescription().compareTo(b.getPrimarySkill().getDescription()));
return skills;
}
}