Implementing edit route for tasks
This commit is contained in:
parent
346826ce10
commit
013819c887
@ -37,18 +37,7 @@ public class TaskController {
|
|||||||
return ResponseEntity.status(404).body(new SimpleStatusResponse("failed"));
|
return ResponseEntity.status(404).body(new SimpleStatusResponse("failed"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(status.equalsIgnoreCase("all")) {
|
|
||||||
return ResponseEntity.ok(taskgroupPermissionResult.getResult().getTasks().stream().map(TaskEntityInfo::new));
|
return ResponseEntity.ok(taskgroupPermissionResult.getResult().getTasks().stream().map(TaskEntityInfo::new));
|
||||||
} else if(status.equalsIgnoreCase("overdue")) {
|
|
||||||
//List overdue tasks
|
|
||||||
return ResponseEntity.ok(new SimpleStatusResponse("success"));
|
|
||||||
} else if(status.equalsIgnoreCase("upcoming")) {
|
|
||||||
//List upcoming tasks
|
|
||||||
return ResponseEntity.ok(new SimpleStatusResponse("success"));
|
|
||||||
} else {
|
|
||||||
return ResponseEntity.status(404).body(new SimpleStatusResponse("failed"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/tasks/{taskgroupID}")
|
@PutMapping("/tasks/{taskgroupID}")
|
||||||
@ -69,4 +58,27 @@ public class TaskController {
|
|||||||
return ResponseEntity.ok(new TaskEntityInfo(creationResult.getResult()));
|
return ResponseEntity.ok(new TaskEntityInfo(creationResult.getResult()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/tasks/{taskID}")
|
||||||
|
public ResponseEntity<?> editTask(@PathVariable long taskID, @RequestBody @Valid TaskFieldInfo taskFieldInfo) {
|
||||||
|
PermissionResult<Task> taskPermissionResult = taskService.getTaskPermissions(taskID, SecurityContextHolder.getContext().getAuthentication().getName());
|
||||||
|
if (!taskPermissionResult.isHasPermissions()) {
|
||||||
|
return ResponseEntity.status(403).body(new SimpleStatusResponse("failed"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (taskPermissionResult.getExitCode() == ServiceExitCode.MISSING_ENTITY) {
|
||||||
|
return ResponseEntity.status(404).body(new SimpleStatusResponse("failed"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(taskFieldInfo.getStartDate().isAfter(taskFieldInfo.getDeadline())) {
|
||||||
|
return ResponseEntity.status(400).body(new SimpleStatusResponse("failed"));
|
||||||
|
}
|
||||||
|
|
||||||
|
ServiceResult<Task> editorResult = taskService.editTask(taskPermissionResult.getResult(), taskFieldInfo);
|
||||||
|
if (editorResult.getExitCode() == ServiceExitCode.OK) {
|
||||||
|
return ResponseEntity.ok(new SimpleStatusResponse("success"));
|
||||||
|
} else {
|
||||||
|
return ResponseEntity.status(409).body(new SimpleStatusResponse("failed"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class TaskService {
|
public class TaskService {
|
||||||
@ -40,4 +41,24 @@ public class TaskService {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PermissionResult<Task> getTaskPermissions(long taskID, String name) {
|
||||||
|
Optional<Task> task = taskRepository.findById(taskID);
|
||||||
|
return task.map(value -> new PermissionResult<>(value, value.getTaskgroup().getUser().getUsername().equals(name))).orElseGet(() ->
|
||||||
|
new PermissionResult<>(ServiceExitCode.MISSING_ENTITY));
|
||||||
|
}
|
||||||
|
|
||||||
|
public ServiceResult<Task> editTask(Task task, TaskFieldInfo taskFieldInfo) {
|
||||||
|
if(!task.getTaskName().equals(taskFieldInfo.getTaskName()) && !existTaskByName(task.getTaskgroup().getTasks(), taskFieldInfo.getTaskName())) {
|
||||||
|
task.setTaskName(taskFieldInfo.getTaskName());
|
||||||
|
|
||||||
|
} else if(!task.getTaskName().equals(taskFieldInfo.getTaskName()) && existTaskByName(task.getTaskgroup().getTasks(), taskFieldInfo.getTaskName())) {
|
||||||
|
return new ServiceResult<>(ServiceExitCode.ENTITY_ALREADY_EXIST);
|
||||||
|
}
|
||||||
|
task.setEta(taskFieldInfo.getEta());
|
||||||
|
task.setStartDate(taskFieldInfo.getStartDate());
|
||||||
|
task.setDeadline(taskFieldInfo.getDeadline());
|
||||||
|
taskRepository.save(task);
|
||||||
|
return new ServiceResult<>(task);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user