From eb5d55d180c021839f9661f8329c2a14a9d64638 Mon Sep 17 00:00:00 2001 From: YoungJun Park Date: Tue, 5 Jul 2022 23:13:31 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=83=EF=B8=8F=20=EC=B1=84=ED=8C=85?= =?UTF-8?q?=EB=B0=A9=20=EC=83=9D=EC=84=B1=20Out=20Port=20=EC=98=81?= =?UTF-8?q?=EC=86=8D=EC=84=B1=20=EC=B6=94=EA=B0=80(#5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/RoomPersistenceAdapter.java | 28 +++++++++++++++++++ .../application/port/out/FindRoomPort.java | 7 +++++ .../application/port/out/SaveRoomPort.java | 7 +++++ 3 files changed, 42 insertions(+) create mode 100644 api/src/main/java/hexagonal/api/room/adapter/out/persistence/RoomPersistenceAdapter.java create mode 100644 api/src/main/java/hexagonal/api/room/application/port/out/FindRoomPort.java create mode 100644 api/src/main/java/hexagonal/api/room/application/port/out/SaveRoomPort.java diff --git a/api/src/main/java/hexagonal/api/room/adapter/out/persistence/RoomPersistenceAdapter.java b/api/src/main/java/hexagonal/api/room/adapter/out/persistence/RoomPersistenceAdapter.java new file mode 100644 index 0000000..053b039 --- /dev/null +++ b/api/src/main/java/hexagonal/api/room/adapter/out/persistence/RoomPersistenceAdapter.java @@ -0,0 +1,28 @@ +package hexagonal.api.room.adapter.out.persistence; + +import hexagonal.api.room.application.port.out.FindRoomPort; +import hexagonal.api.room.application.port.out.SaveRoomPort; +import hexagonal.core.domain.jpa.RoomJpaEntity; +import hexagonal.core.repository.RoomRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +import javax.persistence.EntityNotFoundException; + +@RequiredArgsConstructor +@Component +class RoomPersistenceAdapter implements FindRoomPort, SaveRoomPort { + + private final RoomRepository roomRepository; + + @Override + public RoomJpaEntity findRoomByCompanyId(Long companyId) { + return roomRepository.findByCompanyId(companyId) + .orElseThrow(EntityNotFoundException::new); + } + + @Override + public Long saveRoom(RoomJpaEntity roomJpaEntity) { + return roomRepository.save(roomJpaEntity).getId(); + } +} diff --git a/api/src/main/java/hexagonal/api/room/application/port/out/FindRoomPort.java b/api/src/main/java/hexagonal/api/room/application/port/out/FindRoomPort.java new file mode 100644 index 0000000..b331de0 --- /dev/null +++ b/api/src/main/java/hexagonal/api/room/application/port/out/FindRoomPort.java @@ -0,0 +1,7 @@ +package hexagonal.api.room.application.port.out; + +import hexagonal.core.domain.jpa.RoomJpaEntity; + +public interface FindRoomPort { + RoomJpaEntity findRoomByCompanyId(Long companyId); +} diff --git a/api/src/main/java/hexagonal/api/room/application/port/out/SaveRoomPort.java b/api/src/main/java/hexagonal/api/room/application/port/out/SaveRoomPort.java new file mode 100644 index 0000000..ed2e31c --- /dev/null +++ b/api/src/main/java/hexagonal/api/room/application/port/out/SaveRoomPort.java @@ -0,0 +1,7 @@ +package hexagonal.api.room.application.port.out; + +import hexagonal.core.domain.jpa.RoomJpaEntity; + +public interface SaveRoomPort { + Long saveRoom(RoomJpaEntity roomJpaEntity); +}