api: Fix crash

pull/1/head
Lunix-420 2024-11-04 20:32:41 +01:00
parent 9367508c82
commit eb12628995
5 changed files with 126 additions and 112 deletions

Binary file not shown.

View File

@ -1,138 +1,135 @@
// package com.maradona.backend;
package com.maradona.backend;
// import com.maradona.backend.entities.Employee;
// import com.maradona.backend.entities.EmployeeSecondarySkill;
// import com.maradona.backend.entities.FormOfAddress;
// import com.maradona.backend.entities.PrimarySkill;
// import com.maradona.backend.entities.SecondarySkill;
// import com.maradona.backend.repositories.EmployeeRepository;
// import com.maradona.backend.repositories.FormOfAddressRepository;
// import com.maradona.backend.repositories.PrimarySkillRepository;
// import com.maradona.backend.repositories.SecondarySkillRepository;
// import com.maradona.backend.repositories.EmployeeSecondarySkillRepository;
// import com.maradona.backend.repositories.ProjectRepository;
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.boot.CommandLineRunner;
// import org.springframework.stereotype.Component;
import com.maradona.backend.entities.Employee;
import com.maradona.backend.entities.EmployeeSecondarySkill;
import com.maradona.backend.entities.FormOfAddress;
import com.maradona.backend.entities.PrimarySkill;
import com.maradona.backend.entities.SecondarySkill;
import com.maradona.backend.repositories.EmployeeRepository;
import com.maradona.backend.repositories.FormOfAddressRepository;
import com.maradona.backend.repositories.PrimarySkillRepository;
import com.maradona.backend.repositories.SecondarySkillRepository;
import com.maradona.backend.repositories.EmployeeSecondarySkillRepository;
import com.maradona.backend.repositories.ProjectRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
// import java.time.LocalTime;
// import java.util.ArrayList;
// import java.util.List;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
// @Component
// public class DefaultValueLoader implements CommandLineRunner {
@Component
public class DefaultValueLoader implements CommandLineRunner {
// @Autowired
// private PrimarySkillRepository primarySkillRepository;
@Autowired
private PrimarySkillRepository primarySkillRepository;
// @Autowired
// private SecondarySkillRepository secondarySkillRepository;
@Autowired
private SecondarySkillRepository secondarySkillRepository;
// @Autowired
// private EmployeeRepository employeeRepository;
@Autowired
private EmployeeRepository employeeRepository;
// @Autowired
// private FormOfAddressRepository formOfAddressRepository;
@Autowired
private FormOfAddressRepository formOfAddressRepository;
// @Autowired
// private EmployeeSecondarySkillRepository employeeSecondarySkillRepository;
@Autowired
private EmployeeSecondarySkillRepository employeeSecondarySkillRepository;
// @Autowired
// private ProjectRepository projectRepository;
@Autowired
private ProjectRepository projectRepository;
// @Override
// public void run(String... args) throws Exception {
// // Create form of addresses
// FormOfAddress formOfAddress1 = new FormOfAddress();
// formOfAddress1.setDescription("Herr");
@Override
public void run(String... args) throws Exception {
// Create form of addresses
FormOfAddress formOfAddress1 = new FormOfAddress();
formOfAddress1.setDescription("Herr");
// FormOfAddress formOfAddress2 = new FormOfAddress();
// formOfAddress2.setDescription("Frau");
FormOfAddress formOfAddress2 = new FormOfAddress();
formOfAddress2.setDescription("Frau");
// FormOfAddress formOfAddress3 = new FormOfAddress();
// formOfAddress3.setDescription("Einkaufstüte");
FormOfAddress formOfAddress3 = new FormOfAddress();
formOfAddress3.setDescription("Einkaufstüte");
// formOfAddress1 = formOfAddressRepository.save(formOfAddress1);
// formOfAddress2 = formOfAddressRepository.save(formOfAddress2);
formOfAddress1 = formOfAddressRepository.save(formOfAddress1);
formOfAddress2 = formOfAddressRepository.save(formOfAddress2);
// // Create primary skills
// PrimarySkill primarySkill1 = new PrimarySkill();
// primarySkill1.setDescription("Software Development");
// Create primary skills
PrimarySkill primarySkill1 = new PrimarySkill();
primarySkill1.setDescription("Software Development");
// PrimarySkill primarySkill2 = new PrimarySkill();
// primarySkill2.setDescription("Project Management");
PrimarySkill primarySkill2 = new PrimarySkill();
primarySkill2.setDescription("Project Management");
// primarySkillRepository.save(primarySkill1);
// primarySkillRepository.save(primarySkill2);
primarySkillRepository.save(primarySkill1);
primarySkillRepository.save(primarySkill2);
// // Create secondary skills
// SecondarySkill secondarySkill1 = new SecondarySkill();
// secondarySkill1.setDescription("Java");
// secondarySkill1.setPrimarySkill(primarySkill1);
// Create secondary skills
SecondarySkill secondarySkill1 = new SecondarySkill();
secondarySkill1.setDescription("Java");
secondarySkill1.setPrimarySkill(primarySkill1);
// SecondarySkill secondarySkill2 = new SecondarySkill();
// secondarySkill2.setDescription("Agile Methodology");
// secondarySkill2.setPrimarySkill(primarySkill2);
SecondarySkill secondarySkill2 = new SecondarySkill();
secondarySkill2.setDescription("Agile Methodology");
secondarySkill2.setPrimarySkill(primarySkill2);
// SecondarySkill secondarySkill3 = new SecondarySkill();
// secondarySkill3.setDescription("Risk Management");
// secondarySkill3.setPrimarySkill(primarySkill2);
SecondarySkill secondarySkill3 = new SecondarySkill();
secondarySkill3.setDescription("Risk Management");
secondarySkill3.setPrimarySkill(primarySkill2);
// secondarySkillRepository.save(secondarySkill1);
// secondarySkillRepository.save(secondarySkill2);
// secondarySkillRepository.save(secondarySkill3);
secondarySkillRepository.save(secondarySkill1);
secondarySkillRepository.save(secondarySkill2);
secondarySkillRepository.save(secondarySkill3);
// // Create employees
// Employee employee1 = new Employee();
// employee1.setEmployeeNr(1);
// employee1.setFirstName("John");
// employee1.setLastName("Doe");
// employee1.setMail("john.doe@example.com");
// employee1.setDStart(LocalTime.of(9, 0));
// employee1.setDEnd(LocalTime.of(17, 0));
// employee1.setFormOfAddress(formOfAddress1);
// Create employees
Employee employee1 = new Employee();
employee1.setEmployeeNr(1);
employee1.setFirstName("John");
employee1.setLastName("Doe");
employee1.setMail("john.doe@example.com");
employee1.setDStart(LocalTime.of(9, 0));
employee1.setDEnd(LocalTime.of(17, 0));
employee1.setFormOfAddress(formOfAddress1);
// Employee employee2 = new Employee();
// employee2.setEmployeeNr(2);
// employee2.setFirstName("Jane");
// employee2.setLastName("Smith");
// employee2.setMail("jane.smith@example.com");
// employee2.setDStart(LocalTime.of(9, 0));
// employee2.setDEnd(LocalTime.of(17, 0));
// employee2.setFormOfAddress(formOfAddress2);
Employee employee2 = new Employee();
employee2.setEmployeeNr(2);
employee2.setFirstName("Jane");
employee2.setLastName("Smith");
employee2.setMail("jane.smith@example.com");
employee2.setDStart(LocalTime.of(9, 0));
employee2.setDEnd(LocalTime.of(17, 0));
employee2.setFormOfAddress(formOfAddress2);
// employeeRepository.save(employee1);
// employeeRepository.save(employee2);
employeeRepository.save(employee1);
employeeRepository.save(employee2);
// // Assign secondary skills to employees
// EmployeeSecondarySkill employeeSecondarySkill1 = new
// EmployeeSecondarySkill();
// employeeSecondarySkill1.setEmployee(employee1);
// employeeSecondarySkill1.setSecondarySkill(secondarySkill1);
// employeeSecondarySkill1.setLevel(4);
// Assign secondary skills to employees
EmployeeSecondarySkill employeeSecondarySkill1 = new EmployeeSecondarySkill();
employeeSecondarySkill1.setEmployee(employee1);
employeeSecondarySkill1.setSecondarySkill(secondarySkill1);
employeeSecondarySkill1.setLevel(4);
// EmployeeSecondarySkill employeeSecondarySkill2 = new
// EmployeeSecondarySkill();
// employeeSecondarySkill2.setEmployee(employee1);
// employeeSecondarySkill2.setSecondarySkill(secondarySkill2);
// employeeSecondarySkill2.setLevel(3);
EmployeeSecondarySkill employeeSecondarySkill2 = new EmployeeSecondarySkill();
employeeSecondarySkill2.setEmployee(employee1);
employeeSecondarySkill2.setSecondarySkill(secondarySkill2);
employeeSecondarySkill2.setLevel(3);
// EmployeeSecondarySkill employeeSecondarySkill3 = new
// EmployeeSecondarySkill();
// employeeSecondarySkill3.setEmployee(employee2);
// employeeSecondarySkill3.setSecondarySkill(secondarySkill3);
// employeeSecondarySkill3.setLevel(5);
EmployeeSecondarySkill employeeSecondarySkill3 = new EmployeeSecondarySkill();
employeeSecondarySkill3.setEmployee(employee2);
employeeSecondarySkill3.setSecondarySkill(secondarySkill3);
employeeSecondarySkill3.setLevel(5);
// List<EmployeeSecondarySkill> employee1Skills = new ArrayList<>();
// employee1Skills.add(employeeSecondarySkill1);
// employee1Skills.add(employeeSecondarySkill2);
// employee1.setSecondarySkills(employee1Skills);
List<EmployeeSecondarySkill> employee1Skills = new ArrayList<>();
employee1Skills.add(employeeSecondarySkill1);
employee1Skills.add(employeeSecondarySkill2);
employee1.setSecondarySkills(employee1Skills);
// List<EmployeeSecondarySkill> employee2Skills = new ArrayList<>();
// employee2Skills.add(employeeSecondarySkill3);
// employee2.setSecondarySkills(employee2Skills);
List<EmployeeSecondarySkill> employee2Skills = new ArrayList<>();
employee2Skills.add(employeeSecondarySkill3);
employee2.setSecondarySkills(employee2Skills);
// employeeRepository.save(employee1);
// employeeRepository.save(employee2);
// }
// }
employeeRepository.save(employee1);
employeeRepository.save(employee2);
}
}

View File

@ -41,10 +41,15 @@ public class SkillsController {
// Returns the skills overview page
@GetMapping({ "/", "" })
public String profile(Model model) {
// Gather the employee and skills data
var employeeData = employeeService.getEmployeeById(user);
model.addAttribute("employee", employeeData.orElse(null));
var skillData = skillService.getUserSkills(user);
// Add the data to the model for the frontend
model.addAttribute("employee", employeeData.orElse(null));
model.addAttribute("skillData", skillData);
// Return the skills overview page
return "skills/skills";
}
@ -67,18 +72,27 @@ public class SkillsController {
// Add a new skill to the user profile
@PostMapping("/add")
public String addSkill(@ModelAttribute SkillForm skillForm) {
// Gather the user and skill
var employee = employeeService.getEmployeeById(user).orElseThrow(() -> new RuntimeException("Employee not found"));
var secondarySkill = secondarySkillService.getSecondarySkillById(skillForm.getSecondarySkillId())
.orElseThrow(() -> new RuntimeException("Secondary Skill not found"));
// Test id employee already has the skill
for (EmployeeSecondarySkill skill : employee.getSecondarySkills()) {
if (skill.getSecondarySkill().getSsid().equals(skillForm.getSecondarySkillId())) {
return "redirect:/skills";
}
}
// Add the skill to the user profile
EmployeeSecondarySkill employeeSecondarySkill = new EmployeeSecondarySkill();
employeeSecondarySkill.setEmployee(employee);
employeeSecondarySkill.setSecondarySkill(secondarySkill);
employeeSecondarySkill.setLevel(skillForm.getLevel());
employee.getSecondarySkills().add(employeeSecondarySkill);
employeeService.saveEmployee(employee);
// Redirect to the skills overview page
return "redirect:/skills";
}

View File

@ -45,6 +45,9 @@ public class SkillService {
}
public Iterable<SkillDto> getUserSkills(Long userId) {
if (userId == null) {
return new ArrayList<>();
}
Employee employee = employeeRepository.findById(userId).orElse(null);
if (employee == null) {
return new ArrayList<>();

View File

@ -66,7 +66,7 @@
}
.form-control::placeholder {
color: var(--starlight-white-darker);
color: var(--cosmic-dark-dark);
}
.star-filled {