Add new Taskgroup (Backend)
This commit is contained in:
		
							parent
							
								
									2d32625d2c
								
							
						
					
					
						commit
						3adebd1670
					
				@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					package core.api.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import core.api.models.auth.SimpleStatusResponse;
 | 
				
			||||||
 | 
					import core.api.models.timemanager.taskgroup.TaskgroupEntityInfo;
 | 
				
			||||||
 | 
					import core.api.models.timemanager.taskgroup.TaskgroupFieldInfo;
 | 
				
			||||||
 | 
					import core.entities.timemanager.Taskgroup;
 | 
				
			||||||
 | 
					import core.services.ServiceExitCode;
 | 
				
			||||||
 | 
					import core.services.ServiceResult;
 | 
				
			||||||
 | 
					import core.services.TaskgroupService;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.http.ResponseEntity;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.Valid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@CrossOrigin(origins = "*", maxAge = 3600)
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@RequestMapping("/api/settings")
 | 
				
			||||||
 | 
					public class TaskgroupController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private final TaskgroupService taskgroupService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public TaskgroupController(@Autowired TaskgroupService taskgroupService) {
 | 
				
			||||||
 | 
					        this.taskgroupService = taskgroupService;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PutMapping("/taskgroups")
 | 
				
			||||||
 | 
					    public ResponseEntity<?> createTaskgroup(@Valid @RequestBody TaskgroupFieldInfo fieldInfo) {
 | 
				
			||||||
 | 
					        ServiceResult<Taskgroup> creationResult = taskgroupService.addTaskgroup(fieldInfo);
 | 
				
			||||||
 | 
					        if(creationResult.getExitCode() == ServiceExitCode.OK) {
 | 
				
			||||||
 | 
					            return ResponseEntity.ok(new TaskgroupEntityInfo(creationResult.getResult()));
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            return ResponseEntity.status(409).body(new SimpleStatusResponse("failed"));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					package core.api.models.timemanager.taskgroup;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import core.entities.timemanager.Taskgroup;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class TaskgroupEntityInfo {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private long taskgroupID;
 | 
				
			||||||
 | 
					    private String taskgroupName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public TaskgroupEntityInfo(Taskgroup taskgroup) {
 | 
				
			||||||
 | 
					        this.taskgroupID = taskgroup.getTaskgroupID();
 | 
				
			||||||
 | 
					        this.taskgroupName = taskgroup.getTaskgroupName();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public long getTaskgroupID() {
 | 
				
			||||||
 | 
					        return taskgroupID;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setTaskgroupID(long taskgroupID) {
 | 
				
			||||||
 | 
					        this.taskgroupID = taskgroupID;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getTaskgroupName() {
 | 
				
			||||||
 | 
					        return taskgroupName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setTaskgroupName(String taskgroupName) {
 | 
				
			||||||
 | 
					        this.taskgroupName = taskgroupName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					package core.api.models.timemanager.taskgroup;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonProperty;
 | 
				
			||||||
 | 
					import org.hibernate.validator.constraints.Length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.constraints.Max;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotBlank;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class TaskgroupFieldInfo {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty
 | 
				
			||||||
 | 
					    @NotBlank
 | 
				
			||||||
 | 
					    @Length(max = 255)
 | 
				
			||||||
 | 
					    private String name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getName() {
 | 
				
			||||||
 | 
					        return name;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setName(String name) {
 | 
				
			||||||
 | 
					        this.name = name;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -37,4 +37,6 @@ public class Taskgroup {
 | 
				
			|||||||
    public void setTaskgroupName(String taskgroupName) {
 | 
					    public void setTaskgroupName(String taskgroupName) {
 | 
				
			||||||
        this.taskgroupName = taskgroupName;
 | 
					        this.taskgroupName = taskgroupName;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -6,4 +6,6 @@ import org.springframework.stereotype.Repository;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@Repository
 | 
					@Repository
 | 
				
			||||||
public interface TaskgroupRepository extends CrudRepository<Taskgroup, Long> {
 | 
					public interface TaskgroupRepository extends CrudRepository<Taskgroup, Long> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    boolean existsByTaskgroupName(String name);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										8
									
								
								backend/src/main/java/core/services/ServiceExitCode.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								backend/src/main/java/core/services/ServiceExitCode.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					package core.services;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public enum ServiceExitCode {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    OK,
 | 
				
			||||||
 | 
					    ENTITY_ALREADY_EXIST,
 | 
				
			||||||
 | 
					    MISSING_ENTITY;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										37
									
								
								backend/src/main/java/core/services/ServiceResult.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								backend/src/main/java/core/services/ServiceResult.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					package core.services;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class ServiceResult <T> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private ServiceExitCode exitCode;
 | 
				
			||||||
 | 
					    private T result;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ServiceResult(ServiceExitCode exitCode, T result) {
 | 
				
			||||||
 | 
					        this.exitCode = exitCode;
 | 
				
			||||||
 | 
					        this.result = result;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ServiceResult(T result) {
 | 
				
			||||||
 | 
					        this.result = result;
 | 
				
			||||||
 | 
					        this.exitCode = ServiceExitCode.OK;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ServiceResult(ServiceExitCode exitCode) {
 | 
				
			||||||
 | 
					        this.exitCode = exitCode;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ServiceExitCode getExitCode() {
 | 
				
			||||||
 | 
					        return exitCode;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setExitCode(ServiceExitCode exitCode) {
 | 
				
			||||||
 | 
					        this.exitCode = exitCode;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public T getResult() {
 | 
				
			||||||
 | 
					        return result;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setResult(T result) {
 | 
				
			||||||
 | 
					        this.result = result;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,15 +1,28 @@
 | 
				
			|||||||
package core.services;
 | 
					package core.services;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import core.api.models.timemanager.taskgroup.TaskgroupEntityInfo;
 | 
				
			||||||
 | 
					import core.api.models.timemanager.taskgroup.TaskgroupFieldInfo;
 | 
				
			||||||
 | 
					import core.entities.timemanager.Taskgroup;
 | 
				
			||||||
import core.repositories.timemanager.TaskgroupRepository;
 | 
					import core.repositories.timemanager.TaskgroupRepository;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.scheduling.config.Task;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Service
 | 
					@Service
 | 
				
			||||||
public class TaskgroupService {
 | 
					public class TaskgroupService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private final TaskgroupRepository taskgroupRepository;
 | 
					    private final TaskgroupRepository taskgroupRepository;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public TaskgroupService(@Autowired  TaskgroupRepository taskgroupRepository) {
 | 
					    public TaskgroupService(@Autowired  TaskgroupRepository taskgroupRepository) {
 | 
				
			||||||
        this.taskgroupRepository = taskgroupRepository;
 | 
					        this.taskgroupRepository = taskgroupRepository;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ServiceResult<Taskgroup> addTaskgroup(TaskgroupFieldInfo taskData) {
 | 
				
			||||||
 | 
					        if(!taskgroupRepository.existsByTaskgroupName(taskData.getName())) {
 | 
				
			||||||
 | 
					            Taskgroup taskgroup = new Taskgroup(taskData.getName());
 | 
				
			||||||
 | 
					            taskgroupRepository.save(taskgroup);
 | 
				
			||||||
 | 
					            return new ServiceResult<>(taskgroup);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            return new ServiceResult<>(ServiceExitCode.ENTITY_ALREADY_EXIST);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user