repackage stuff into domains
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -31,3 +31,4 @@ build/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
sendgrid.env
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package io.wkrzywiec.hexagonal.library.application;
|
||||
package io.wkrzywiec.hexagonal.library.inventory;
|
||||
|
||||
import io.restassured.RestAssured;
|
||||
import io.restassured.response.ValidatableResponse;
|
||||
import io.wkrzywiec.hexagonal.library.TestData;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.AddNewBookCommand;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.infrastructure.repository.BookEntity;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.AddNewBookCommand;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.infrastructure.repository.BookEntity;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -1,16 +1,16 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.MakeBookAvailableCommand;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservationDetails;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.exception.ActiveUserNotFoundException;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.exception.AvailableBookNotFoundExeption;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.BookReservationCommand;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservedBook;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.ports.incoming.MakeBookAvailable;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.ports.incoming.ReserveBook;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.ports.outgoing.BorrowingDatabase;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.MakeBookAvailableCommand;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservationDetails;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.exception.ActiveUserNotFoundException;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.exception.AvailableBookNotFoundExeption;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.BookReservationCommand;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservedBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.ports.incoming.MakeBookAvailable;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.ports.incoming.ReserveBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.ports.outgoing.BorrowingDatabase;
|
||||
|
||||
public class BorrowingFacade implements MakeBookAvailable, ReserveBook {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package io.wkrzywiec.hexagonal.library.infrastructure.adapter;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.infrastructure;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservationDetails;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservationId;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservedBook;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.ports.outgoing.BorrowingDatabase;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservationDetails;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservationId;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservedBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.ports.outgoing.BorrowingDatabase;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.model;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.model;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.exception.TooManyBooksAssignedToUserException;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.exception.TooManyBooksAssignedToUserException;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.model;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.model;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
@@ -0,0 +1,5 @@
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.model;
|
||||
|
||||
public interface Book {
|
||||
Long getIdAsLong();
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.model;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.model;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.model;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.model;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.model;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.model;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.model;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.model;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.model.exception;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.model.exception;
|
||||
|
||||
public class ActiveUserNotFoundException extends RuntimeException {
|
||||
public ActiveUserNotFoundException(Long bookId){
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.model.exception;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.model.exception;
|
||||
|
||||
public class AvailableBookNotFoundExeption extends RuntimeException {
|
||||
public AvailableBookNotFoundExeption(Long bookId){
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.model.exception;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.model.exception;
|
||||
|
||||
public class TooManyBooksAssignedToUserException extends RuntimeException {
|
||||
public TooManyBooksAssignedToUserException(Long userId){
|
||||
@@ -0,0 +1,7 @@
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.ports.incoming;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.MakeBookAvailableCommand;
|
||||
|
||||
public interface MakeBookAvailable {
|
||||
void handle(MakeBookAvailableCommand bookAvailableCommand);
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.ports.incoming;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.BookReservationCommand;
|
||||
|
||||
public interface ReserveBook {
|
||||
Long handle(BookReservationCommand bookReservation);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.ports.outgoing;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservationDetails;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservedBook;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public interface BorrowingDatabase {
|
||||
void setBookAvailable(Long bookId);
|
||||
Optional<AvailableBook> getAvailableBook(Long bookId);
|
||||
Optional<ActiveUser> getActiveUser(Long userId);
|
||||
ReservationDetails save(ReservedBook reservedBook);
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.model;
|
||||
|
||||
public interface Book {
|
||||
Long getIdAsLong();
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.model;
|
||||
|
||||
public class EmailCreator {
|
||||
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.ports.incoming;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.MakeBookAvailableCommand;
|
||||
|
||||
public interface MakeBookAvailable {
|
||||
void handle(MakeBookAvailableCommand bookAvailableCommand);
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.ports.incoming;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.BookReservationCommand;
|
||||
|
||||
public interface ReserveBook {
|
||||
Long handle(BookReservationCommand bookReservation);
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.ports.outgoing;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservationDetails;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservedBook;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public interface BorrowingDatabase {
|
||||
void setBookAvailable(Long bookId);
|
||||
Optional<AvailableBook> getAvailableBook(Long bookId);
|
||||
Optional<ActiveUser> getActiveUser(Long userId);
|
||||
ReservationDetails save(ReservedBook reservedBook);
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing.ports.outgoing;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservationDetails;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservedBook;
|
||||
|
||||
public interface EmailSender {
|
||||
void sendReservationConfirmationEmail(ReservationDetails reservationDetails);
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.inventory.ports.incoming;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.AddNewBookCommand;
|
||||
|
||||
public interface AddNewBook {
|
||||
void handle(AddNewBookCommand addNewBookCommand);
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.inventory.ports.outgoing;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.BookDetailsDTO;
|
||||
|
||||
public interface GetBookDetails {
|
||||
BookDetailsDTO handle(String bookId);
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.inventory.ports.outgoing;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.BookDetailsDTO;
|
||||
|
||||
public interface InventoryDatabase {
|
||||
void save(BookDetailsDTO newBookDTO);
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.email;
|
||||
|
||||
public class EmailContent {
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package io.wkrzywiec.hexagonal.library.email;
|
||||
|
||||
class EmailCreator {
|
||||
|
||||
// EmailContent prepareEmailContent() {
|
||||
// // email to
|
||||
// // email from
|
||||
// //
|
||||
// }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package io.wkrzywiec.hexagonal.library.email;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservationDetails;
|
||||
|
||||
public interface EmailSender {
|
||||
void sendReservationConfirmationEmail(ReservationDetails reservationDetails);
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package io.wkrzywiec.hexagonal.library.email;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservationDetails;
|
||||
|
||||
public class SendGridEmailSender implements EmailSender {
|
||||
|
||||
@Override
|
||||
public void sendReservationConfirmationEmail(ReservationDetails reservationDetails) {
|
||||
// email address - to
|
||||
// repl9oservation id
|
||||
// book title`
|
||||
|
||||
// Email from = new Email("test@example.com");
|
||||
// String subject = "Sending with SendGrid is Fun";
|
||||
// Email to = new Email("test@example.com");
|
||||
// Content content = new Content("text/plain", "and easy to do anywhere, even with Java");
|
||||
// Mail mail = new Mail(from, subject, to, content);
|
||||
//
|
||||
// SendGrid sg = new SendGrid(System.getenv("SENDGRID_API_KEY"));
|
||||
// Request request = new Request();
|
||||
// try {
|
||||
// request.setMethod(Method.POST);
|
||||
// request.setEndpoint("mail/send");
|
||||
// request.setBody(mail.build());
|
||||
// Response response = sg.api(request);
|
||||
// System.out.println(response.getStatusCode());
|
||||
// System.out.println(response.getBody());
|
||||
// System.out.println(response.getHeaders());
|
||||
// } catch (IOException ex) {
|
||||
//
|
||||
// }
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.inventory;
|
||||
package io.wkrzywiec.hexagonal.library.inventory;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.AddNewBookCommand;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.ports.incoming.AddNewBook;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.ports.outgoing.GetBookDetails;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.ports.outgoing.InventoryDatabase;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.AddNewBookCommand;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.ports.incoming.AddNewBook;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.ports.outgoing.GetBookDetails;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.ports.outgoing.InventoryDatabase;
|
||||
|
||||
public class InventoryFacade implements AddNewBook{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.wkrzywiec.hexagonal.library.application;
|
||||
package io.wkrzywiec.hexagonal.library.inventory.application;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.AddNewBookCommand;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.ports.incoming.AddNewBook;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.AddNewBookCommand;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.ports.incoming.AddNewBook;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.inventory.dto;
|
||||
package io.wkrzywiec.hexagonal.library.inventory.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.inventory.dto;
|
||||
package io.wkrzywiec.hexagonal.library.inventory.dto;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -1,10 +1,10 @@
|
||||
package io.wkrzywiec.hexagonal.library.infrastructure.adapter;
|
||||
package io.wkrzywiec.hexagonal.library.inventory.infrastructure;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.ports.outgoing.GetBookDetails;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.ports.outgoing.GetBookDetails;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
@@ -1,10 +1,10 @@
|
||||
package io.wkrzywiec.hexagonal.library.infrastructure.adapter;
|
||||
package io.wkrzywiec.hexagonal.library.inventory.infrastructure;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.ports.outgoing.InventoryDatabase;
|
||||
import io.wkrzywiec.hexagonal.library.infrastructure.repository.AuthorEntiy;
|
||||
import io.wkrzywiec.hexagonal.library.infrastructure.repository.BookEntity;
|
||||
import io.wkrzywiec.hexagonal.library.infrastructure.repository.BookRepository;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.ports.outgoing.InventoryDatabase;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.infrastructure.repository.AuthorEntiy;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.infrastructure.repository.BookEntity;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.infrastructure.repository.BookRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
@@ -1,10 +1,8 @@
|
||||
package io.wkrzywiec.hexagonal.library.infrastructure;
|
||||
package io.wkrzywiec.hexagonal.library.inventory.infrastructure;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.InventoryFacade;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.ports.incoming.AddNewBook;
|
||||
import io.wkrzywiec.hexagonal.library.infrastructure.adapter.GoogleBooksAdapter;
|
||||
import io.wkrzywiec.hexagonal.library.infrastructure.adapter.InventoryDatabaseAdapter;
|
||||
import io.wkrzywiec.hexagonal.library.infrastructure.repository.BookRepository;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.InventoryFacade;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.ports.incoming.AddNewBook;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.infrastructure.repository.BookRepository;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.infrastructure.repository;
|
||||
package io.wkrzywiec.hexagonal.library.inventory.infrastructure.repository;
|
||||
|
||||
import lombok.Builder;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.infrastructure.repository;
|
||||
package io.wkrzywiec.hexagonal.library.inventory.infrastructure.repository;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.wkrzywiec.hexagonal.library.infrastructure.repository;
|
||||
package io.wkrzywiec.hexagonal.library.inventory.infrastructure.repository;
|
||||
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
@@ -0,0 +1,7 @@
|
||||
package io.wkrzywiec.hexagonal.library.inventory.ports.incoming;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.AddNewBookCommand;
|
||||
|
||||
public interface AddNewBook {
|
||||
void handle(AddNewBookCommand addNewBookCommand);
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package io.wkrzywiec.hexagonal.library.inventory.ports.outgoing;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.BookDetailsDTO;
|
||||
|
||||
public interface GetBookDetails {
|
||||
BookDetailsDTO handle(String bookId);
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package io.wkrzywiec.hexagonal.library.inventory.ports.outgoing;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.BookDetailsDTO;
|
||||
|
||||
public interface InventoryDatabase {
|
||||
void save(BookDetailsDTO newBookDTO);
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package io.wkrzywiec.hexagonal.library;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.BookDetailsDTO;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.ReservationTestData;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.BookReservationCommand;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.MakeBookAvailableCommand;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.exception.ActiveUserNotFoundException;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.exception.AvailableBookNotFoundExeption;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.exception.TooManyBooksAssignedToUserException;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.BookReservationCommand;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.MakeBookAvailableCommand;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.exception.ActiveUserNotFoundException;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.exception.AvailableBookNotFoundExeption;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.exception.TooManyBooksAssignedToUserException;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -1,11 +1,11 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.borrowing;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservationDetails;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservationId;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservedBook;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.ports.outgoing.BorrowingDatabase;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservationDetails;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservationId;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservedBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.ports.outgoing.BorrowingDatabase;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.Random;
|
||||
@@ -1,10 +1,9 @@
|
||||
package io.wkrzywiec.hexagonal.library;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.Book;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.BookReservationCommand;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservedBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.BookReservationCommand;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservedBook;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package io.wkrzywiec.hexagonal.library.infrastructure.adapter;
|
||||
package io.wkrzywiec.hexagonal.library.borrowing.infrastructure;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.TestData;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservationDetails;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservationId;
|
||||
import io.wkrzywiec.hexagonal.library.domain.borrowing.model.ReservedBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ActiveUser;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.AvailableBook;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservationDetails;
|
||||
import io.wkrzywiec.hexagonal.library.borrowing.model.ReservedBook;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -13,7 +12,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.jdbc.JdbcTest;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.inventory;
|
||||
package io.wkrzywiec.hexagonal.library.inventory;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.TestData;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.ports.outgoing.GetBookDetails;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.ports.outgoing.GetBookDetails;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.inventory;
|
||||
package io.wkrzywiec.hexagonal.library.inventory;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.ports.outgoing.InventoryDatabase;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.ports.outgoing.InventoryDatabase;
|
||||
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package io.wkrzywiec.hexagonal.library.domain.inventory;
|
||||
package io.wkrzywiec.hexagonal.library.inventory;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.TestData;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.AddNewBookCommand;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.ports.outgoing.GetBookDetails;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.AddNewBookCommand;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.ports.outgoing.GetBookDetails;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.wkrzywiec.hexagonal.library.infrastructure.adapter;
|
||||
package io.wkrzywiec.hexagonal.library.inventory.infrastructure;
|
||||
|
||||
import io.wkrzywiec.hexagonal.library.TestData;
|
||||
import io.wkrzywiec.hexagonal.library.domain.inventory.dto.BookDetailsDTO;
|
||||
import io.wkrzywiec.hexagonal.library.inventory.dto.BookDetailsDTO;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
Reference in New Issue
Block a user