Reformatted code
This commit is contained in:
@@ -1,67 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.6.7</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
<artifactId>tasks-service</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>tasks-service</name>
|
||||
<description>Tasks Service for LightRun Article</description>
|
||||
<properties>
|
||||
<java.version>17</java.version>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-artemis</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.flywaydb</groupId>
|
||||
<artifactId>flyway-core</artifactId>
|
||||
</dependency>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.6.7</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
<artifactId>tasks-service</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>tasks-service</name>
|
||||
<description>Tasks Service for LightRun Article</description>
|
||||
<properties>
|
||||
<java.version>17</java.version>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-artemis</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.flywaydb</groupId>
|
||||
<artifactId>flyway-core</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.h2database</groupId>
|
||||
<artifactId>h2</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.h2database</groupId>
|
||||
<artifactId>h2</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.activemq</groupId>
|
||||
<artifactId>artemis-jms-server</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -6,8 +6,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
@SpringBootApplication
|
||||
public class TasksServiceApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(TasksServiceApplication.class, args);
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(TasksServiceApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -13,10 +13,5 @@ package com.baeldung.tasksservice.adapters.http;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
public record TaskResponse(String id,
|
||||
String title,
|
||||
Instant created,
|
||||
String createdBy,
|
||||
String assignedTo,
|
||||
String status) {
|
||||
public record TaskResponse(String id, String title, Instant created, String createdBy, String assignedTo, String status) {
|
||||
}
|
||||
|
||||
@@ -15,9 +15,6 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baeldung.tasksservice.adapters.repository.TaskRecord;
|
||||
import com.baeldung.tasksservice.service.TasksService;
|
||||
import com.baeldung.tasksservice.service.UnknownTaskException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
@@ -32,6 +29,10 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.baeldung.tasksservice.adapters.repository.TaskRecord;
|
||||
import com.baeldung.tasksservice.service.TasksService;
|
||||
import com.baeldung.tasksservice.service.UnknownTaskException;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/")
|
||||
class TasksController {
|
||||
@@ -46,13 +47,12 @@ class TasksController {
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
public List<TaskResponse> searchTasks(@RequestParam("status") Optional<String> status,
|
||||
@RequestParam("createdBy") Optional<String> createdBy) {
|
||||
public List<TaskResponse> searchTasks(@RequestParam("status") Optional<String> status, @RequestParam("createdBy") Optional<String> createdBy) {
|
||||
var tasks = tasksService.search(status, createdBy);
|
||||
|
||||
return tasks.stream()
|
||||
.map(this::buildResponse)
|
||||
.collect(Collectors.toList());
|
||||
.map(this::buildResponse)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
@@ -67,16 +67,14 @@ class TasksController {
|
||||
}
|
||||
|
||||
@PatchMapping("/{id}")
|
||||
public TaskResponse patchTask(@PathVariable("id") String id,
|
||||
@RequestBody PatchTaskRequest body) {
|
||||
public TaskResponse patchTask(@PathVariable("id") String id, @RequestBody PatchTaskRequest body) {
|
||||
var task = tasksService.updateTask(id, body.status(), body.assignedTo());
|
||||
|
||||
return buildResponse(task);
|
||||
}
|
||||
|
||||
private TaskResponse buildResponse(final TaskRecord task) {
|
||||
return new TaskResponse(task.getId(), task.getTitle(), task.getCreated(), task.getCreatedBy(),
|
||||
task.getAssignedTo(), task.getStatus());
|
||||
return new TaskResponse(task.getId(), task.getTitle(), task.getCreated(), task.getCreatedBy(), task.getAssignedTo(), task.getStatus());
|
||||
}
|
||||
|
||||
@ExceptionHandler(UnknownTaskException.class)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.baeldung.tasksservice.adapters.jms;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.jms.annotation.JmsListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baeldung.tasksservice.service.DeletedUserService;
|
||||
|
||||
|
||||
@@ -11,11 +11,12 @@
|
||||
|
||||
package com.baeldung.tasksservice.adapters.repository;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Table;
|
||||
import java.time.Instant;
|
||||
|
||||
@Entity
|
||||
@Table(name = "tasks")
|
||||
@@ -32,8 +33,7 @@ public class TaskRecord {
|
||||
private String assignedTo;
|
||||
private String status;
|
||||
|
||||
public TaskRecord(final String id, final String title, final Instant created, final String createdBy,
|
||||
final String assignedTo, final String status) {
|
||||
public TaskRecord(final String id, final String title, final Instant created, final String createdBy, final String assignedTo, final String status) {
|
||||
this.id = id;
|
||||
this.title = title;
|
||||
this.created = created;
|
||||
|
||||
@@ -2,26 +2,26 @@ package com.baeldung.tasksservice.service;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import com.baeldung.tasksservice.adapters.repository.TaskRecord;
|
||||
import com.baeldung.tasksservice.adapters.repository.TasksRepository;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baeldung.tasksservice.adapters.repository.TaskRecord;
|
||||
import com.baeldung.tasksservice.adapters.repository.TasksRepository;
|
||||
|
||||
@Service
|
||||
public class DeletedUserService {
|
||||
@Autowired
|
||||
private TasksRepository tasksRepository;
|
||||
@Autowired
|
||||
private TasksRepository tasksRepository;
|
||||
|
||||
@Transactional
|
||||
public void handleDeletedUser(String user) {
|
||||
var ownedByUser = tasksRepository.findByCreatedBy(user);
|
||||
tasksRepository.deleteAll(ownedByUser);
|
||||
@Transactional
|
||||
public void handleDeletedUser(String user) {
|
||||
var ownedByUser = tasksRepository.findByCreatedBy(user);
|
||||
tasksRepository.deleteAll(ownedByUser);
|
||||
|
||||
var assignedToUser = tasksRepository.findByAssignedTo(user);
|
||||
for (TaskRecord record : assignedToUser) {
|
||||
record.setAssignedTo(null);
|
||||
record.setStatus("PENDING");
|
||||
var assignedToUser = tasksRepository.findByAssignedTo(user);
|
||||
for (TaskRecord record : assignedToUser) {
|
||||
record.setAssignedTo(null);
|
||||
record.setStatus("PENDING");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,29 +11,33 @@
|
||||
|
||||
package com.baeldung.tasksservice.service;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.baeldung.tasksservice.adapters.repository.TaskRecord;
|
||||
import com.baeldung.tasksservice.adapters.repository.TasksRepository;
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baeldung.tasksservice.adapters.repository.TaskRecord;
|
||||
import com.baeldung.tasksservice.adapters.repository.TasksRepository;
|
||||
|
||||
@Service
|
||||
public class TasksService {
|
||||
@Autowired
|
||||
private TasksRepository tasksRepository;
|
||||
|
||||
public TaskRecord getTaskById(String id) {
|
||||
return tasksRepository.findById(id).orElseThrow(() -> new UnknownTaskException(id));
|
||||
return tasksRepository.findById(id)
|
||||
.orElseThrow(() -> new UnknownTaskException(id));
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void deleteTaskById(String id) {
|
||||
var task = tasksRepository.findById(id).orElseThrow(() -> new UnknownTaskException(id));
|
||||
var task = tasksRepository.findById(id)
|
||||
.orElseThrow(() -> new UnknownTaskException(id));
|
||||
tasksRepository.delete(task);
|
||||
}
|
||||
|
||||
@@ -51,7 +55,8 @@ public class TasksService {
|
||||
|
||||
@Transactional
|
||||
public TaskRecord updateTask(String id, Optional<String> newStatus, Optional<String> newAssignedTo) {
|
||||
var task = tasksRepository.findById(id).orElseThrow(() -> new UnknownTaskException(id));
|
||||
var task = tasksRepository.findById(id)
|
||||
.orElseThrow(() -> new UnknownTaskException(id));
|
||||
|
||||
newStatus.ifPresent(task::setStatus);
|
||||
newAssignedTo.ifPresent(task::setAssignedTo);
|
||||
@@ -60,12 +65,8 @@ public class TasksService {
|
||||
}
|
||||
|
||||
public TaskRecord createTask(String title, String createdBy) {
|
||||
var task = new TaskRecord(UUID.randomUUID().toString(),
|
||||
title,
|
||||
Instant.now(),
|
||||
createdBy,
|
||||
null,
|
||||
"PENDING");
|
||||
var task = new TaskRecord(UUID.randomUUID()
|
||||
.toString(), title, Instant.now(), createdBy, null, "PENDING");
|
||||
tasksRepository.save(task);
|
||||
return task;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
server.port=8082
|
||||
|
||||
spring.artemis.mode=EMBEDDED
|
||||
spring.artemis.host=localhost
|
||||
spring.artemis.port=61616
|
||||
|
||||
spring.artemis.embedded.enabled=true
|
||||
|
||||
spring.jms.template.default-destination=my-queue-1
|
||||
|
||||
logging.level.org.apache.activemq.audit.base=WARN
|
||||
logging.level.org.apache.activemq.audit.message=WARN
|
||||
|
||||
|
||||
Reference in New Issue
Block a user