Include Owner of Taskgroup in Datamodel

This commit is contained in:
Sebastian 2023-09-25 11:21:09 +02:00
parent 3adebd1670
commit 712f793736
3 changed files with 35 additions and 5 deletions

View File

@ -9,6 +9,7 @@ import core.services.ServiceResult;
import core.services.TaskgroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@ -26,7 +27,8 @@ public class TaskgroupController {
@PutMapping("/taskgroups")
public ResponseEntity<?> createTaskgroup(@Valid @RequestBody TaskgroupFieldInfo fieldInfo) {
ServiceResult<Taskgroup> creationResult = taskgroupService.addTaskgroup(fieldInfo);
String username = SecurityContextHolder.getContext().getAuthentication().getName();
ServiceResult<Taskgroup> creationResult = taskgroupService.addTaskgroup(fieldInfo, username);
if(creationResult.getExitCode() == ServiceExitCode.OK) {
return ResponseEntity.ok(new TaskgroupEntityInfo(creationResult.getResult()));
} else {

View File

@ -1,5 +1,7 @@
package core.entities.timemanager;
import core.entities.User;
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
@ -15,8 +17,13 @@ public class Taskgroup {
@Column(name = "name", length = 255)
private String taskgroupName;
public Taskgroup(String taskgroupName) {
@OneToOne
@JoinColumn(name = "taskgroupuser", nullable = false)
private User user;
public Taskgroup(String taskgroupName, User user) {
this.taskgroupName = taskgroupName;
this.user = user;
}
public Taskgroup() {
@ -38,5 +45,11 @@ public class Taskgroup {
this.taskgroupName = taskgroupName;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}

View File

@ -2,23 +2,38 @@ package core.services;
import core.api.models.timemanager.taskgroup.TaskgroupEntityInfo;
import core.api.models.timemanager.taskgroup.TaskgroupFieldInfo;
import core.entities.User;
import core.entities.UserRole;
import core.entities.timemanager.Taskgroup;
import core.repositories.UserRepository;
import core.repositories.timemanager.TaskgroupRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.config.Task;
import org.springframework.stereotype.Service;
import java.util.NoSuchElementException;
import java.util.Optional;
@Service
public class TaskgroupService {
private final TaskgroupRepository taskgroupRepository;
public TaskgroupService(@Autowired TaskgroupRepository taskgroupRepository) {
private final UserRepository userRepository;
public TaskgroupService(@Autowired TaskgroupRepository taskgroupRepository,
@Autowired UserRepository userRepository) {
this.taskgroupRepository = taskgroupRepository;
this.userRepository = userRepository;
}
public ServiceResult<Taskgroup> addTaskgroup(TaskgroupFieldInfo taskData) {
public ServiceResult<Taskgroup> addTaskgroup(TaskgroupFieldInfo taskData, String username) {
Optional<User> user = userRepository.findByUsername(username);
if(user.isEmpty()) {
throw new NoSuchElementException();
}
if(!taskgroupRepository.existsByTaskgroupName(taskData.getName())) {
Taskgroup taskgroup = new Taskgroup(taskData.getName());
Taskgroup taskgroup = new Taskgroup(taskData.getName(), user.get());
taskgroupRepository.save(taskgroup);
return new ServiceResult<>(taskgroup);
} else {