diff --git a/domain/pom.xml b/domain/pom.xml new file mode 100644 index 0000000..f55aaad --- /dev/null +++ b/domain/pom.xml @@ -0,0 +1,22 @@ + + + + ms-library + org.example + 1.0-SNAPSHOT + + 4.0.0 + + domain + + + + org.projectlombok + lombok + true + + + + \ No newline at end of file diff --git a/domain/src/main/java/org/exemple/data/BookDto.java b/domain/src/main/java/org/exemple/data/BookDto.java new file mode 100644 index 0000000..629b23d --- /dev/null +++ b/domain/src/main/java/org/exemple/data/BookDto.java @@ -0,0 +1,21 @@ +package org.exemple.data; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class BookDto { + + private Long id; + + private String title; + + private String description; + + private Double price; +} \ No newline at end of file diff --git a/domain/src/main/java/org/exemple/ports/api/BookServicePort.java b/domain/src/main/java/org/exemple/ports/api/BookServicePort.java new file mode 100644 index 0000000..d9ae9e3 --- /dev/null +++ b/domain/src/main/java/org/exemple/ports/api/BookServicePort.java @@ -0,0 +1,18 @@ +package org.exemple.ports.api; + +import org.exemple.data.BookDto; + +import java.util.List; + +public interface BookServicePort { + + BookDto addBook(BookDto bookDto); + + void deleteBookById(Long id); + + BookDto updateBook(BookDto bookDto); + + List getBooks(); + + BookDto getBookById(Long bookId); +} diff --git a/domain/src/main/java/org/exemple/ports/spi/BookPersistencePort.java b/domain/src/main/java/org/exemple/ports/spi/BookPersistencePort.java new file mode 100644 index 0000000..c7fb63d --- /dev/null +++ b/domain/src/main/java/org/exemple/ports/spi/BookPersistencePort.java @@ -0,0 +1,19 @@ +package org.exemple.ports.spi; + +import org.exemple.data.BookDto; + +import java.util.List; + +public interface BookPersistencePort { + + BookDto addBook(BookDto bookDto); + + void deleteBookById(Long id); + + BookDto updateBook(BookDto bookDto); + + List getBooks(); + + BookDto getBookById(Long bookId); + +} diff --git a/domain/src/main/java/org/exemple/service/BookServiceImpl.java b/domain/src/main/java/org/exemple/service/BookServiceImpl.java new file mode 100644 index 0000000..1ff0106 --- /dev/null +++ b/domain/src/main/java/org/exemple/service/BookServiceImpl.java @@ -0,0 +1,41 @@ +package org.exemple.service; + +import org.exemple.data.BookDto; +import org.exemple.ports.api.BookServicePort; +import org.exemple.ports.spi.BookPersistencePort; + +import java.util.List; + +public class BookServiceImpl implements BookServicePort { + + private BookPersistencePort bookPersistencePort; + + public BookServiceImpl(BookPersistencePort bookPersistencePort) { + this.bookPersistencePort = bookPersistencePort; + } + + @Override + public BookDto addBook(BookDto bookDto) { + return bookPersistencePort.addBook(bookDto); + } + + @Override + public void deleteBookById(Long id) { + bookPersistencePort.deleteBookById(id); + } + + @Override + public BookDto updateBook(BookDto bookDto) { + return bookPersistencePort.updateBook(bookDto); + } + + @Override + public List getBooks() { + return bookPersistencePort.getBooks(); + } + + @Override + public BookDto getBookById(Long bookId) { + return bookPersistencePort.getBookById(bookId); + } +}