bugfixes + env variables

This commit is contained in:
2021-11-17 21:35:38 +01:00
parent 9d75a87dd6
commit 6fe4b4dfbe
22 changed files with 130 additions and 175 deletions

View File

@@ -78,6 +78,8 @@ public class AddNewTaskToTaskListWebController {
throw new ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR, e.getMessage());
} catch (ConstraintViolationException e) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, e.getMessage());
} catch (NullPointerException e) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, e.getMessage());
}
}
}

View File

@@ -26,17 +26,16 @@ public class CompleteTaskWebController {
this.completeTaskUseCase = completeTaskUseCase;
}
@GetMapping(path = "/tasks/completeTask/{taskId}")
public ResponseEntity<String> completeTask (@PathVariable("taskId") String taskId){
@PostMapping(path = "/tasks/completeTask")
public ResponseEntity<String> completeTask (@RequestBody TaskJsonRepresentation payload) {
System.out.println("completeTask");
System.out.println(taskId);
System.out.println(payload.getTaskId());
String taskResult = "0";
try {
CompleteTaskCommand command = new CompleteTaskCommand(
new Task.TaskId(taskId), new Task.OutputData(taskResult)
new Task.TaskId(payload.getTaskId()), new Task.OutputData(payload.getOutputData())
);
Task updateATask = completeTaskUseCase.completeTask(command);

View File

@@ -24,10 +24,10 @@ public class TaskAssignedWebController {
}
@PostMapping(path="/tasks/assignTask", consumes= {TaskJsonRepresentation.MEDIA_TYPE})
public ResponseEntity<String> assignTask(@RequestBody Task task){
public ResponseEntity<String> assignTask(@RequestBody TaskJsonRepresentation payload) {
try{
TaskAssignedCommand command = new TaskAssignedCommand(
task.getTaskId()
new Task.TaskId(payload.getTaskId())
);
Task updateATask = taskAssignedUseCase.assignTask(command);

View File

@@ -24,25 +24,19 @@ public class AddNewTaskToTaskListService implements AddNewTaskToTaskListUseCase
Task newTask;
System.out.println("TEST:");
System.out.println(command.getInputData().get());
if (command.getOriginalTaskUri().isPresent() && command.getInputData().isPresent()) {
System.out.println("TEST2:");
newTask = taskList.addNewTaskWithNameAndTypeAndOriginalTaskUriAndInputData(command.getTaskName(),
command.getTaskType(), command.getOriginalTaskUri().get(), command.getInputData().get());
} else if (command.getOriginalTaskUri().isPresent()) {
newTask = taskList.addNewTaskWithNameAndTypeAndOriginalTaskUri(command.getTaskName(),
command.getTaskType(), command.getOriginalTaskUri().get());
} else if (command.getOriginalTaskUri().isPresent()) {
newTask = null;
} else if (command.getInputData().isPresent()) {
newTask = taskList.addNewTaskWithNameAndTypeAndInputData(command.getTaskName(),
command.getTaskType(), command.getInputData().get());
} else {
newTask = taskList.addNewTaskWithNameAndType(command.getTaskName(), command.getTaskType());
}
System.out.println("TEST");
System.out.println(newTask.getInputData());
//Here we are using the application service to emit the domain event to the outside of the bounded context.
//This event should be considered as a light-weight "integration event" to communicate with other services.
//Domain events are usually rather "fat". In our implementation we simplify at this point. In general, it is

View File

@@ -26,10 +26,10 @@ public class CompleteTaskService implements CompleteTaskUseCase {
Optional<Task> updatedTask = taskList.retrieveTaskById(command.getTaskId());
Task newTask = updatedTask.get();
newTask.taskResult = new TaskResult(command.getOutputData().getValue());
newTask.taskStatus = new TaskStatus(Task.Status.EXECUTED);
newTask.setOutputData(command.getOutputData());
newTask.setTaskStatus(new TaskStatus(Task.Status.EXECUTED));
if (!newTask.getOriginalTaskUri().getValue().equalsIgnoreCase("")) {
if (newTask.getOriginalTaskUri() != null) {
ExternalTaskExecutedEvent event = new ExternalTaskExecutedEvent(
newTask.getTaskId(),
newTask.getOriginalTaskUri(),

View File

@@ -24,7 +24,7 @@ public class TaskAssignedService implements TaskAssignedUseCase {
// update the status to assigned
Task updatedTask = task.get();
updatedTask.taskStatus = new TaskStatus(Status.ASSIGNED);
updatedTask.setTaskStatus(new TaskStatus(Status.ASSIGNED));
return updatedTask;
}

View File

@@ -22,10 +22,7 @@ public class Task {
private final TaskType taskType;
@Getter @Setter
public TaskStatus taskStatus; // had to make public for CompleteTaskService
@Getter
public TaskResult taskResult; // same as above
private TaskStatus taskStatus;
@Getter
private final OriginalTaskUri originalTaskUri;
@@ -39,24 +36,44 @@ public class Task {
@Getter @Setter
private OutputData outputData;
public Task(TaskName taskName, TaskType taskType) {
this.taskName = taskName;
this.taskType = taskType;
this.taskStatus = new TaskStatus(Status.OPEN);
this.taskId = new TaskId(UUID.randomUUID().toString());
this.originalTaskUri = null;
this.inputData = null;
this.outputData = null;
}
public Task(TaskName taskName, TaskType taskType, OriginalTaskUri taskUri) {
this.taskName = taskName;
this.taskType = taskType;
this.taskStatus = new TaskStatus(Status.OPEN);
this.taskId = new TaskId(UUID.randomUUID().toString());
this.taskResult = new TaskResult("");
this.originalTaskUri = taskUri;
this.inputData = null;
this.outputData = null;
}
public Task(TaskName taskName, TaskType taskType, InputData inputData) {
this.taskName = taskName;
this.taskType = taskType;
this.taskStatus = new TaskStatus(Status.OPEN);
this.taskId = new TaskId(UUID.randomUUID().toString());
this.originalTaskUri = null;
this.inputData = inputData;
this.outputData = null;
}
public Task(TaskName taskName, TaskType taskType, OriginalTaskUri taskUri, InputData inputData) {
this.taskName = taskName;
this.taskType = taskType;
this.taskStatus = new TaskStatus(Status.OPEN);
this.taskId = new TaskId(UUID.randomUUID().toString());
this.taskResult = new TaskResult("");
this.originalTaskUri = taskUri;
this.inputData = inputData;
@@ -64,9 +81,7 @@ public class Task {
}
protected static Task createTaskWithNameAndType(TaskName name, TaskType type) {
//This is a simple debug message to see that the request has reached the right method in the core
System.out.println("New Task: " + name.getValue() + " " + type.getValue());
return new Task(name, type, null);
return new Task(name, type);
}
protected static Task createTaskWithNameAndTypeAndOriginalTaskUri(TaskName name, TaskType type,
@@ -74,6 +89,11 @@ public class Task {
return new Task(name, type, originalTaskUri);
}
protected static Task createTaskWithNameAndTypeAndInputData(TaskName name, TaskType type,
InputData inputData) {
return new Task(name, type, inputData);
}
protected static Task createTaskWithNameAndTypeAndOriginalTaskUriAndInputData(TaskName name, TaskType type,
OriginalTaskUri originalTaskUri, InputData inputData) {
return new Task(name, type, originalTaskUri, inputData);

View File

@@ -6,11 +6,15 @@ import lombok.Value;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
import java.util.logging.Level;
import java.util.logging.Logger;
/**This is our aggregate root**/
public class TaskList {
Logger logger = Logger.getLogger(TaskList.class.getName());
@Getter
private final TaskListName taskListName;
@@ -48,6 +52,14 @@ public class TaskList {
return newTask;
}
public Task addNewTaskWithNameAndTypeAndInputData(Task.TaskName name, Task.TaskType type,
Task.InputData inputData) {
Task newTask = Task.createTaskWithNameAndTypeAndInputData(name, type, inputData);
this.addNewTaskToList(newTask);
return newTask;
}
public Task addNewTaskWithNameAndTypeAndOriginalTaskUriAndInputData(Task.TaskName name, Task.TaskType type,
Task.OriginalTaskUri originalTaskUri, Task.InputData inputData) {
Task newTask = Task.createTaskWithNameAndTypeAndOriginalTaskUriAndInputData(name, type, originalTaskUri, inputData);
@@ -62,8 +74,10 @@ public class TaskList {
//However, we skip this here as it makes the core even more complex (e.g., we have to implement a light-weight
//domain event publisher and subscribers (see "Implementing Domain-Driven Design by V. Vernon, pp. 296ff).
listOfTasks.value.add(newTask);
//This is a simple debug message to see that the task list is growing with each new request
System.out.println("Number of tasks: " + listOfTasks.value.size());
logger.log(Level.INFO, "New task created! Id: " + newTask.getTaskId().getValue() +
" | Name: " + newTask.getTaskName().getValue() +
" | InputData: " + newTask.getInputData().getValue());
logger.log(Level.INFO, "Number of tasks: {0}", listOfTasks.value.size());
}
public Optional<Task> retrieveTaskById(Task.TaskId id) {