From a14fed8a1d26ed5ecf878a9ff85bea7201f3ac68 Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Sun, 2 Feb 2025 23:53:38 +0900 Subject: [PATCH 1/9] =?UTF-8?q?refactor:=20=EC=B4=88=EB=8C=80=EC=9E=A5=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20ResponseDTO=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EB=B0=8F=20=EA=B4=80=EB=A0=A8=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/CreateInvitationResponse.kt | 82 +------------------ .../invitation/facade/InvitationFacade.kt | 8 +- .../invitation/facade/InvitationFacadeTest.kt | 9 +- 3 files changed, 8 insertions(+), 91 deletions(-) diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/CreateInvitationResponse.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/CreateInvitationResponse.kt index b3dc728..0f9f2cb 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/CreateInvitationResponse.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/CreateInvitationResponse.kt @@ -1,90 +1,14 @@ package site.yourevents.invitation.dto.response -import site.yourevents.guest.domain.Guest import site.yourevents.invitation.domain.Invitation -import site.yourevents.invitationinformation.domain.InvitationInformation -import site.yourevents.invitationthumnail.domain.InvitationThumbnail -import java.time.LocalDateTime import java.util.UUID data class CreateInvitationResponse( - val invitation: InvitationResponseDto, - val owner: OwnerResponseDto, - val invitationThumbnail: InvitationThumbnailResponseDto, - val invitationInformation: InvitationInformationResponseDto, + val invitationId: UUID, ) { - data class InvitationResponseDto( - val invitationId: UUID, - val memberId: UUID, - val qrUrl: String, - val deleted: Boolean, - ) - - data class OwnerResponseDto( - val ownerId: UUID, - val invitationId: UUID, - val ownerNickname: String, - val attendance: Boolean = true, - ) - - data class InvitationThumbnailResponseDto( - val thumbnailId: UUID, - val invitationId: UUID, - val thumbnailUrl: String, - ) - - data class InvitationInformationResponseDto( - val informationId: UUID, - val invitationId: UUID, - val title: String, - val schedule: LocalDateTime, - val location: String, - val remark: String, - ) companion object { - fun of( - invitation: Invitation, - owner: Guest, - invitationThumbnail: InvitationThumbnail, - invitationInformation: InvitationInformation, - ): CreateInvitationResponse { - - val invitationResponse = InvitationResponseDto( - invitationId = invitation.id, - memberId = invitation.member.id, - qrUrl = invitation.qrUrl, - deleted = invitation.deleted - ) - - val ownerResponse = OwnerResponseDto( - ownerId = owner.id, - invitationId = owner.invitation.id, - ownerNickname = owner.nickname, - attendance = owner.attendance - ) - - val thumbnailResponse = InvitationThumbnailResponseDto( - thumbnailId = invitationThumbnail.id, - invitationId = invitationThumbnail.invitation.id, - thumbnailUrl = invitationThumbnail.url - ) - - val informationResponse = InvitationInformationResponseDto( - informationId = invitationInformation.id, - invitationId = invitationInformation.invitation.id, - title = invitationInformation.title, - schedule = invitationInformation.schedule, - location = invitationInformation.location, - remark = invitationInformation.remark - ) - - return CreateInvitationResponse( - invitation = invitationResponse, - owner = ownerResponse, - invitationThumbnail = thumbnailResponse, - invitationInformation = informationResponse - ) - } + fun from(invitation: Invitation): CreateInvitationResponse = + CreateInvitationResponse(invitation.id) } } diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt index 2f9a6f7..8a1a5b5 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt @@ -31,11 +31,11 @@ class InvitationFacade( val invitation = invitationUseCase.updateQrCode(generateInvitation(memberId).id) - val owner = generateOwner(memberId, invitation.id, createInvitationRequest.ownerNickname) + generateOwner(memberId, invitation.id, createInvitationRequest.ownerNickname) - val invitationThumbnail = generateInvitationThumbnail(invitation.id, createInvitationRequest.thumbnailUrl) + generateInvitationThumbnail(invitation.id, createInvitationRequest.thumbnailUrl) - val invitationInformation = generateInvitationInformation( + generateInvitationInformation( invitation.id, title = createInvitationRequest.title, schedule = createInvitationRequest.schedule, @@ -43,7 +43,7 @@ class InvitationFacade( remark = createInvitationRequest.remark ) - return CreateInvitationResponse.of(invitation, owner, invitationThumbnail, invitationInformation) + return CreateInvitationResponse.from(invitation) } fun deleteInvitation( diff --git a/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt b/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt index 3608395..7975687 100644 --- a/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt +++ b/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt @@ -128,14 +128,7 @@ class InvitationFacadeTest : DescribeSpec({ val response = invitationFacade.createInvitation(createInvitationRequest, authDetails) - response.shouldBe( - CreateInvitationResponse.of( - invitation = invitation, - owner = guest, - invitationThumbnail = invitationThumbnail, - invitationInformation = invitationInformation - ) - ) + response.shouldBe(CreateInvitationResponse.from(invitation = invitation)) } } From c9403fa40c16c9ebeaae8da4c023b45dd227188c Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Sun, 2 Feb 2025 23:59:41 +0900 Subject: [PATCH 2/9] =?UTF-8?q?refactor:=20=EC=BB=A8=EB=B2=A4=EC=85=98=20?= =?UTF-8?q?=EC=9C=A0=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../invitation/dto/response/CreateInvitationResponse.kt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/CreateInvitationResponse.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/CreateInvitationResponse.kt index 0f9f2cb..54882b5 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/CreateInvitationResponse.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/CreateInvitationResponse.kt @@ -3,10 +3,7 @@ package site.yourevents.invitation.dto.response import site.yourevents.invitation.domain.Invitation import java.util.UUID -data class CreateInvitationResponse( - val invitationId: UUID, -) { - +data class CreateInvitationResponse(val invitationId: UUID) { companion object { fun from(invitation: Invitation): CreateInvitationResponse = CreateInvitationResponse(invitation.id) From 1db428d9ed4b1b058476db4cba888f466705fb65 Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Mon, 3 Feb 2025 01:11:57 +0900 Subject: [PATCH 3/9] =?UTF-8?q?refactor:=20templateKey=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=B0=8F=20=EC=B4=88=EB=8C=80=EC=9E=A5=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EC=9A=94=EC=B2=ADDTO=EC=97=90=20=ED=95=B4=EB=8B=B9?= =?UTF-8?q?=20=EA=B0=92=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../invitation/domain/Invitation.kt | 1 + .../invitation/domain/InvitationVO.kt | 15 ++++++++--- .../invitation/port/in/InvitationUseCase.kt | 2 +- .../invitation/service/InvitationService.kt | 3 ++- .../site/yourevents/guest/domain/GuestTest.kt | 2 ++ .../yourevents/guest/domain/GuestVOTest.kt | 4 ++- .../guest/service/GuestServiceTest.kt | 1 + .../invitation/domain/InvitationTest.kt | 3 +++ .../invitation/domain/InvitationVOTest.kt | 11 +++++++- .../service/InvitationServiceTest.kt | 8 +++++- .../domain/InvitationInformationTest.kt | 1 + .../domain/InvitationInformationVOTest.kt | 1 + .../InvitationInformationServiceTest.kt | 1 + .../domain/InvitationThumbnailTest.kt | 11 +++++++- .../domain/InvitationThumbnailVOTest.kt | 11 +++++++- .../service/InvitationThumbnailServiceTest.kt | 1 + .../invitation/entity/InvitationEntity.kt | 6 +++++ .../guest/repository/GuestRepositoryTest.kt | 1 + .../repository/InvitationRepositoryTest.kt | 3 +++ .../InvitationInformationRepositoryTest.kt | 2 ++ .../InvitationThumbnailRepositoryTest.kt | 1 + .../dto/request/CreateInvitationRequest.kt | 1 + .../invitation/facade/InvitationFacade.kt | 27 ++++++++++--------- .../invitation/facade/InvitationFacadeTest.kt | 4 ++- .../member/facade/MemberFacadeTest.kt | 2 ++ 25 files changed, 98 insertions(+), 25 deletions(-) diff --git a/module-domain/src/main/kotlin/site/yourevents/invitation/domain/Invitation.kt b/module-domain/src/main/kotlin/site/yourevents/invitation/domain/Invitation.kt index f92b4f6..58b878c 100644 --- a/module-domain/src/main/kotlin/site/yourevents/invitation/domain/Invitation.kt +++ b/module-domain/src/main/kotlin/site/yourevents/invitation/domain/Invitation.kt @@ -9,6 +9,7 @@ class Invitation( val id: UUID, val member: Member, var qrUrl: String, + var templateKey: String?, var deleted: Boolean, createdAt: LocalDateTime?, modifiedAt: LocalDateTime?, diff --git a/module-domain/src/main/kotlin/site/yourevents/invitation/domain/InvitationVO.kt b/module-domain/src/main/kotlin/site/yourevents/invitation/domain/InvitationVO.kt index da12520..7bef931 100644 --- a/module-domain/src/main/kotlin/site/yourevents/invitation/domain/InvitationVO.kt +++ b/module-domain/src/main/kotlin/site/yourevents/invitation/domain/InvitationVO.kt @@ -5,13 +5,20 @@ import site.yourevents.member.domain.Member data class InvitationVO( val member: Member, val qrUrl: String, + val templateKey: String?, val deleted: Boolean, ) { companion object { - fun of(member: Member, qrUrl: String, deleted: Boolean): InvitationVO = InvitationVO( - member = member, - qrUrl = qrUrl, - deleted = deleted + fun of( + member: Member, + qrUrl: String, + templateKey: String?, + deleted: Boolean): InvitationVO = + InvitationVO( + member = member, + qrUrl = qrUrl, + templateKey = templateKey, + deleted = deleted ) } } diff --git a/module-domain/src/main/kotlin/site/yourevents/invitation/port/in/InvitationUseCase.kt b/module-domain/src/main/kotlin/site/yourevents/invitation/port/in/InvitationUseCase.kt index cb19c6d..1531b76 100644 --- a/module-domain/src/main/kotlin/site/yourevents/invitation/port/in/InvitationUseCase.kt +++ b/module-domain/src/main/kotlin/site/yourevents/invitation/port/in/InvitationUseCase.kt @@ -9,7 +9,7 @@ interface InvitationUseCase { fun countByMember(member: Member): Int - fun createInvitation(memberId: UUID, qrUrl: String): Invitation + fun createInvitation(memberId: UUID, qrUrl: String, templateKey: String?): Invitation fun updateQrCode(invitationId: UUID): Invitation diff --git a/module-domain/src/main/kotlin/site/yourevents/invitation/service/InvitationService.kt b/module-domain/src/main/kotlin/site/yourevents/invitation/service/InvitationService.kt index 45ddd5a..9fe4156 100644 --- a/module-domain/src/main/kotlin/site/yourevents/invitation/service/InvitationService.kt +++ b/module-domain/src/main/kotlin/site/yourevents/invitation/service/InvitationService.kt @@ -22,7 +22,7 @@ class InvitationService( override fun countByMember(member: Member) = invitationPersistencePort.countByMember(member) - override fun createInvitation(memberId: UUID, qrUrl: String): Invitation { + override fun createInvitation(memberId: UUID, qrUrl: String, templateKey: String?): Invitation { val member = memberUseCase.findById(memberId) ?: throw MemberNotFountException() @@ -31,6 +31,7 @@ class InvitationService( InvitationVO.of( member = member, qrUrl = qrUrl, + templateKey = templateKey, deleted = false ) ) diff --git a/module-domain/src/test/kotlin/site/yourevents/guest/domain/GuestTest.kt b/module-domain/src/test/kotlin/site/yourevents/guest/domain/GuestTest.kt index 866f49e..5978aeb 100644 --- a/module-domain/src/test/kotlin/site/yourevents/guest/domain/GuestTest.kt +++ b/module-domain/src/test/kotlin/site/yourevents/guest/domain/GuestTest.kt @@ -27,12 +27,14 @@ class GuestTest : DescribeSpec({ val invitationId = UUID.randomUUID() val qrUrl = "http://example.com" + val templateKey = "templateKey" val deleted = false val invitation = Invitation( id = invitationId, member = member, qrUrl = qrUrl, + templateKey = templateKey, deleted = deleted, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() diff --git a/module-domain/src/test/kotlin/site/yourevents/guest/domain/GuestVOTest.kt b/module-domain/src/test/kotlin/site/yourevents/guest/domain/GuestVOTest.kt index f76d3fa..fdbc20a 100644 --- a/module-domain/src/test/kotlin/site/yourevents/guest/domain/GuestVOTest.kt +++ b/module-domain/src/test/kotlin/site/yourevents/guest/domain/GuestVOTest.kt @@ -26,12 +26,14 @@ class GuestVOTest : DescribeSpec({ val invitationId = UUID.randomUUID() val qrUrl = "http://example.com" + val templateKey = "templateKey" val deleted = false invitation = Invitation( id = invitationId, member = member, qrUrl = qrUrl, - deleted = false, + templateKey = templateKey, + deleted = deleted, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() ) diff --git a/module-domain/src/test/kotlin/site/yourevents/guest/service/GuestServiceTest.kt b/module-domain/src/test/kotlin/site/yourevents/guest/service/GuestServiceTest.kt index 8a1405c..2156825 100644 --- a/module-domain/src/test/kotlin/site/yourevents/guest/service/GuestServiceTest.kt +++ b/module-domain/src/test/kotlin/site/yourevents/guest/service/GuestServiceTest.kt @@ -42,6 +42,7 @@ class GuestServiceTest : DescribeSpec({ id = invitationId, member = member, qrUrl = "https://qrUrl.com", + templateKey = null, deleted = false, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() diff --git a/module-domain/src/test/kotlin/site/yourevents/invitation/domain/InvitationTest.kt b/module-domain/src/test/kotlin/site/yourevents/invitation/domain/InvitationTest.kt index 9b67db2..4eba724 100644 --- a/module-domain/src/test/kotlin/site/yourevents/invitation/domain/InvitationTest.kt +++ b/module-domain/src/test/kotlin/site/yourevents/invitation/domain/InvitationTest.kt @@ -26,11 +26,13 @@ class InvitationTest : DescribeSpec({ val invitationId = UUID.randomUUID() val qrUrl = "http://example.com" + val templateKey = "templateKey" val deleted = false val invitation = Invitation( id = invitationId, member = member, qrUrl = qrUrl, + templateKey = templateKey, deleted = deleted, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() @@ -40,6 +42,7 @@ class InvitationTest : DescribeSpec({ id shouldBe invitationId member shouldBe member qrUrl shouldBe qrUrl + templateKey shouldBe templateKey } } } diff --git a/module-domain/src/test/kotlin/site/yourevents/invitation/domain/InvitationVOTest.kt b/module-domain/src/test/kotlin/site/yourevents/invitation/domain/InvitationVOTest.kt index 2dab06f..4d6f178 100644 --- a/module-domain/src/test/kotlin/site/yourevents/invitation/domain/InvitationVOTest.kt +++ b/module-domain/src/test/kotlin/site/yourevents/invitation/domain/InvitationVOTest.kt @@ -9,6 +9,7 @@ import java.util.UUID class InvitationVOTest : DescribeSpec({ lateinit var member: Member lateinit var qrUrl: String + lateinit var templateKey: String var deleted = false beforeTest { @@ -22,6 +23,7 @@ class InvitationVOTest : DescribeSpec({ modifiedAt = LocalDateTime.now() ) qrUrl = "http://example.com" + templateKey = "templateKey" deleted = false } @@ -31,6 +33,7 @@ class InvitationVOTest : DescribeSpec({ val invitationVO = InvitationVO( member = member, qrUrl = qrUrl, + templateKey = templateKey, deleted = deleted ) @@ -46,10 +49,16 @@ class InvitationVOTest : DescribeSpec({ val originalInvitationVO = InvitationVO( member = member, qrUrl = qrUrl, + templateKey = templateKey, deleted = deleted ) - val transformedInvitationVO = InvitationVO.of( originalInvitationVO.member, originalInvitationVO.qrUrl, originalInvitationVO.deleted) + val transformedInvitationVO = InvitationVO.of( + originalInvitationVO.member, + originalInvitationVO.qrUrl, + originalInvitationVO.templateKey, + originalInvitationVO.deleted + ) transformedInvitationVO.apply { member shouldBe originalInvitationVO.member diff --git a/module-domain/src/test/kotlin/site/yourevents/invitation/service/InvitationServiceTest.kt b/module-domain/src/test/kotlin/site/yourevents/invitation/service/InvitationServiceTest.kt index e156923..f2dce4a 100644 --- a/module-domain/src/test/kotlin/site/yourevents/invitation/service/InvitationServiceTest.kt +++ b/module-domain/src/test/kotlin/site/yourevents/invitation/service/InvitationServiceTest.kt @@ -26,6 +26,7 @@ class InvitationServiceTest : DescribeSpec({ lateinit var nickname: String lateinit var email: String lateinit var qrUrl: String + lateinit var templateKey: String lateinit var member: Member var deleted = false @@ -36,6 +37,7 @@ class InvitationServiceTest : DescribeSpec({ nickname = "seunghyun" email = "seunghyun@naver.com" qrUrl = "http://example.com" + templateKey = "templateKey" deleted = false member = Member( @@ -63,6 +65,7 @@ class InvitationServiceTest : DescribeSpec({ id = invitationId, member = member, qrUrl = qrUrl, + templateKey = templateKey, deleted = deleted, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() @@ -101,13 +104,14 @@ class InvitationServiceTest : DescribeSpec({ id = invitationId, member = member, qrUrl = qrUrl, + templateKey = templateKey, deleted = deleted, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() ) every { invitationPersistencePort.save(any()) } returns savedInvitation - val result = invitationService.createInvitation(memberId, qrUrl) + val result = invitationService.createInvitation(memberId, qrUrl, templateKey) result shouldBe savedInvitation @@ -127,6 +131,7 @@ class InvitationServiceTest : DescribeSpec({ id = invitationId, member = member, qrUrl = qrUrl, + templateKey = templateKey, deleted = deleted, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() @@ -163,6 +168,7 @@ class InvitationServiceTest : DescribeSpec({ id = invitationId, member = member, qrUrl = qrUrl, + templateKey = templateKey, deleted = false, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() diff --git a/module-domain/src/test/kotlin/site/yourevents/invitationinformation/domain/InvitationInformationTest.kt b/module-domain/src/test/kotlin/site/yourevents/invitationinformation/domain/InvitationInformationTest.kt index d8c5a54..84e4f92 100644 --- a/module-domain/src/test/kotlin/site/yourevents/invitationinformation/domain/InvitationInformationTest.kt +++ b/module-domain/src/test/kotlin/site/yourevents/invitationinformation/domain/InvitationInformationTest.kt @@ -23,6 +23,7 @@ class InvitationInformationTest : DescribeSpec({ id = UUID.randomUUID(), member = member, qrUrl = "http://example.com", + templateKey = "templateKey", deleted = false, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() diff --git a/module-domain/src/test/kotlin/site/yourevents/invitationinformation/domain/InvitationInformationVOTest.kt b/module-domain/src/test/kotlin/site/yourevents/invitationinformation/domain/InvitationInformationVOTest.kt index e337062..f3f733c 100644 --- a/module-domain/src/test/kotlin/site/yourevents/invitationinformation/domain/InvitationInformationVOTest.kt +++ b/module-domain/src/test/kotlin/site/yourevents/invitationinformation/domain/InvitationInformationVOTest.kt @@ -28,6 +28,7 @@ class InvitationInformationVOTest : DescribeSpec({ id = UUID.randomUUID(), member = member, qrUrl = "http://example.com", + templateKey = null, deleted = false, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() diff --git a/module-domain/src/test/kotlin/site/yourevents/invitationinformation/service/InvitationInformationServiceTest.kt b/module-domain/src/test/kotlin/site/yourevents/invitationinformation/service/InvitationInformationServiceTest.kt index 06c0c65..dd2be9b 100644 --- a/module-domain/src/test/kotlin/site/yourevents/invitationinformation/service/InvitationInformationServiceTest.kt +++ b/module-domain/src/test/kotlin/site/yourevents/invitationinformation/service/InvitationInformationServiceTest.kt @@ -45,6 +45,7 @@ class InvitationInformationServiceTest : DescribeSpec({ id = invitationId, member = member, qrUrl = "http://example.com", + templateKey = null, deleted = false, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() diff --git a/module-domain/src/test/kotlin/site/yourevents/invitationthumbnail/domain/InvitationThumbnailTest.kt b/module-domain/src/test/kotlin/site/yourevents/invitationthumbnail/domain/InvitationThumbnailTest.kt index ca65777..d4fe30a 100644 --- a/module-domain/src/test/kotlin/site/yourevents/invitationthumbnail/domain/InvitationThumbnailTest.kt +++ b/module-domain/src/test/kotlin/site/yourevents/invitationthumbnail/domain/InvitationThumbnailTest.kt @@ -20,8 +20,17 @@ class InvitationThumbnailTest : DescribeSpec({ val invitationId = UUID.randomUUID() val qrUrl = "http://example.com" + val templateKey = null val deleted = false - val invitation = Invitation(invitationId, member, qrUrl, deleted, LocalDateTime.now(), LocalDateTime.now()) + val invitation = Invitation( + invitationId, + member, + qrUrl, + templateKey, + deleted, + LocalDateTime.now(), + LocalDateTime.now() + ) val thumbnailId = UUID.randomUUID() val url = "http://example.com/" diff --git a/module-domain/src/test/kotlin/site/yourevents/invitationthumbnail/domain/InvitationThumbnailVOTest.kt b/module-domain/src/test/kotlin/site/yourevents/invitationthumbnail/domain/InvitationThumbnailVOTest.kt index 799e3ae..e64584f 100644 --- a/module-domain/src/test/kotlin/site/yourevents/invitationthumbnail/domain/InvitationThumbnailVOTest.kt +++ b/module-domain/src/test/kotlin/site/yourevents/invitationthumbnail/domain/InvitationThumbnailVOTest.kt @@ -26,8 +26,17 @@ class InvitationThumbnailVOTest : DescribeSpec({ val invitationId = UUID.randomUUID() val qrUrl = "http://example.com" + val templateKey = null val deleted = false - invitation = Invitation(invitationId, member, qrUrl, deleted, LocalDateTime.now(), LocalDateTime.now()) + invitation = Invitation( + invitationId, + member, + qrUrl, + templateKey, + deleted, + LocalDateTime.now(), + LocalDateTime.now() + ) url = "http://example.com/" } diff --git a/module-domain/src/test/kotlin/site/yourevents/invitationthumbnail/service/InvitationThumbnailServiceTest.kt b/module-domain/src/test/kotlin/site/yourevents/invitationthumbnail/service/InvitationThumbnailServiceTest.kt index 97aa1c1..af11c24 100644 --- a/module-domain/src/test/kotlin/site/yourevents/invitationthumbnail/service/InvitationThumbnailServiceTest.kt +++ b/module-domain/src/test/kotlin/site/yourevents/invitationthumbnail/service/InvitationThumbnailServiceTest.kt @@ -40,6 +40,7 @@ class InvitationThumbnailServiceTest : DescribeSpec({ id = invitationId, member = member, qrUrl = "http://example.com", + templateKey = null, deleted = false, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() diff --git a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/invitation/entity/InvitationEntity.kt b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/invitation/entity/InvitationEntity.kt index c119af1..2c46b32 100644 --- a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/invitation/entity/InvitationEntity.kt +++ b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/invitation/entity/InvitationEntity.kt @@ -26,6 +26,9 @@ class InvitationEntity( @Column val qrUrl: String, + @Column + val templateKey: String? = null, + @Column val deleted: Boolean, ) : BaseTimeEntity() { @@ -33,6 +36,7 @@ class InvitationEntity( id = id!!, member = member.toDomain(), qrUrl = qrUrl, + templateKey = templateKey, deleted = deleted, createdAt = createdAt, modifiedAt = modifiedAt @@ -43,12 +47,14 @@ class InvitationEntity( id = invitation.id, member = MemberEntity.from(invitation.member), qrUrl = invitation.qrUrl, + templateKey = invitation.templateKey, deleted = invitation.deleted ) fun from(invitationVO: InvitationVO): InvitationEntity = InvitationEntity( member = MemberEntity.from(invitationVO.member), qrUrl = invitationVO.qrUrl, + templateKey = invitationVO.templateKey, deleted = invitationVO.deleted ) } diff --git a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/guest/repository/GuestRepositoryTest.kt b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/guest/repository/GuestRepositoryTest.kt index 63ab335..324efc8 100644 --- a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/guest/repository/GuestRepositoryTest.kt +++ b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/guest/repository/GuestRepositoryTest.kt @@ -41,6 +41,7 @@ class GuestRepositoryTest( invitationEntity = InvitationEntity( member = memberEntity, qrUrl = "http://example.com", + templateKey = null, deleted = false ) invitationJPARepository.save(invitationEntity) diff --git a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitation/repository/InvitationRepositoryTest.kt b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitation/repository/InvitationRepositoryTest.kt index 5f7c35a..0461557 100644 --- a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitation/repository/InvitationRepositoryTest.kt +++ b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitation/repository/InvitationRepositoryTest.kt @@ -26,6 +26,7 @@ class InvitationRepositoryTest( lateinit var memberEntity: MemberEntity lateinit var invitationId: UUID val qrUrl = "http://example.com" + val templateKey = null val deleted = false beforeSpec { @@ -43,6 +44,7 @@ class InvitationRepositoryTest( val invitationEntity = InvitationEntity( member = memberEntity, qrUrl = qrUrl, + templateKey = templateKey, deleted = deleted ) invitationJPARepository.save(invitationEntity) @@ -64,6 +66,7 @@ class InvitationRepositoryTest( id shouldBe invitationId member shouldBe invitation.member qrUrl shouldBe invitation.qrUrl + templateKey shouldBe invitation.templateKey deleted shouldBe invitation.deleted } } diff --git a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt index a6f0dc8..d656b8f 100644 --- a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt +++ b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt @@ -43,6 +43,7 @@ class InvitationInformationRepositoryTest( invitationEntity = InvitationEntity( member = memberEntity, qrUrl = "http://example.com", + templateKey = null, deleted = false ) invitationJPARepository.save(invitationEntity) @@ -72,6 +73,7 @@ class InvitationInformationRepositoryTest( savedInfo.remark shouldBe invitationInformationVO.remark savedInfo.invitation.id shouldBe invitationEntity.id savedInfo.invitation.qrUrl shouldBe invitationEntity.qrUrl + savedInfo.invitation.templateKey shouldBe invitationEntity.templateKey savedInfo.invitation.deleted shouldBe invitationEntity.deleted savedInfo.invitation.member.socialId shouldBe memberEntity.toDomain().socialId savedInfo.invitation.member.nickname shouldBe memberEntity.toDomain().nickname diff --git a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationthumbnail/repository/InvitationThumbnailRepositoryTest.kt b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationthumbnail/repository/InvitationThumbnailRepositoryTest.kt index b7e23c1..1000f9b 100644 --- a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationthumbnail/repository/InvitationThumbnailRepositoryTest.kt +++ b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationthumbnail/repository/InvitationThumbnailRepositoryTest.kt @@ -44,6 +44,7 @@ class InvitationThumbnailRepositoryTest( invitationEntity = InvitationEntity( member = memberEntity, qrUrl = "http://example.com", + templateKey = null, deleted = false ) invitationJPARepository.save(invitationEntity) diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/request/CreateInvitationRequest.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/request/CreateInvitationRequest.kt index fb89d00..69befe3 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/request/CreateInvitationRequest.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/request/CreateInvitationRequest.kt @@ -4,6 +4,7 @@ import java.time.LocalDateTime data class CreateInvitationRequest( val ownerNickname: String, + val templateKey: String?, val thumbnailUrl: String, val title: String, val schedule: LocalDateTime, diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt index 8a1a5b5..4ccfe1b 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt @@ -29,7 +29,9 @@ class InvitationFacade( ): CreateInvitationResponse { val memberId = authDetails.uuid - val invitation = invitationUseCase.updateQrCode(generateInvitation(memberId).id) + val invitation = invitationUseCase.updateQrCode( + generateInvitation(memberId, createInvitationRequest.templateKey).id + ) generateOwner(memberId, invitation.id, createInvitationRequest.ownerNickname) @@ -87,8 +89,7 @@ class InvitationFacade( ) } - fun getInvitationAttendance(invitationId: UUID, authDetails: AuthDetails): InvitationAttendanceResponse - { + fun getInvitationAttendance(invitationId: UUID, authDetails: AuthDetails): InvitationAttendanceResponse { val memberId = authDetails.uuid val invitationAttendance = guestUseCase.getInvitationAttendance(memberId, invitationId) @@ -98,12 +99,12 @@ class InvitationFacade( attendance = invitationAttendance ) } - + fun verifySender(invitationId: UUID, authDetails: AuthDetails) = invitationUseCase.getOwnerId(invitationId) == authDetails.uuid - private fun generateInvitation(memberId: UUID) = - invitationUseCase.createInvitation(memberId, null.toString()) + private fun generateInvitation(memberId: UUID, templateKey: String?) = + invitationUseCase.createInvitation(memberId, null.toString(), templateKey) private fun generateOwner(memberId: UUID, invitationId: UUID, ownerNickname: String) = guestUseCase.createGuest( @@ -123,12 +124,12 @@ class InvitationFacade( title: String, schedule: LocalDateTime, location: String, - remark: String + remark: String, ) = invitationInformationUseCase.createInvitationInformation( - invitationId = invitationId, - title = title, - schedule = schedule, - location = location, - remark = remark - ) + invitationId = invitationId, + title = title, + schedule = schedule, + location = location, + remark = remark + ) } diff --git a/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt b/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt index 7975687..50db844 100644 --- a/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt +++ b/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt @@ -46,6 +46,7 @@ class InvitationFacadeTest : DescribeSpec({ val createInvitationRequest = CreateInvitationRequest( ownerNickname = "nickname", + templateKey = "templateKey", thumbnailUrl = "http://example.com/", title = "title", schedule = LocalDateTime.now(), @@ -66,6 +67,7 @@ class InvitationFacadeTest : DescribeSpec({ id = invitationId, member = Member(memberId, "6316", "nickname", "email", LocalDateTime.now(), LocalDateTime.now()), qrUrl = null.toString(), + templateKey = "templateKey", deleted = false, createdAt = LocalDateTime.now(), modifiedAt = LocalDateTime.now() @@ -109,7 +111,7 @@ class InvitationFacadeTest : DescribeSpec({ context("createInvitation 메서드가 호출되었을 때") { it("초대장을 생성하고 CreateInvitationResponse를 반환해야 한다") { every { - invitationUseCase.createInvitation(any(), any()) + invitationUseCase.createInvitation(any(), any(), any()) } answers { invitationUseCase.updateQrCode(invitation.id) invitation diff --git a/module-presentation/src/test/kotlin/site/yourevents/member/facade/MemberFacadeTest.kt b/module-presentation/src/test/kotlin/site/yourevents/member/facade/MemberFacadeTest.kt index 1216c94..7bbcd75 100644 --- a/module-presentation/src/test/kotlin/site/yourevents/member/facade/MemberFacadeTest.kt +++ b/module-presentation/src/test/kotlin/site/yourevents/member/facade/MemberFacadeTest.kt @@ -76,6 +76,7 @@ class MemberFacadeTest : DescribeSpec({ UUID.randomUUID(), member, "https://sent.qr.com", + "templateKey", false, LocalDateTime.now(), LocalDateTime.now() @@ -123,6 +124,7 @@ class MemberFacadeTest : DescribeSpec({ UUID.randomUUID(), member, "https://received.qr.com", + "templateKey", false, LocalDateTime.now(), LocalDateTime.now() From c159d0147739f535a0d801a241c4e98c86348e5c Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Mon, 3 Feb 2025 01:19:29 +0900 Subject: [PATCH 4/9] =?UTF-8?q?refactor:=20=EC=B4=88=EB=8C=80=EC=9E=A5=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=EC=A1=B0=ED=9A=8C=20=EB=B0=98=ED=99=98=20?= =?UTF-8?q?=EA=B0=92=20templateKey=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../invitation/dto/response/InvitationInfoResponse.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/InvitationInfoResponse.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/InvitationInfoResponse.kt index 6982584..a35d8d5 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/InvitationInfoResponse.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/InvitationInfoResponse.kt @@ -8,6 +8,7 @@ import java.util.UUID data class InvitationInfoResponse( val invitationId: UUID, + val templateKey: String?, val createDate: LocalDateTime?, val title: String, val schedule: LocalDateTime, @@ -23,6 +24,7 @@ data class InvitationInfoResponse( invitationThumbnail: InvitationThumbnail, ): InvitationInfoResponse = InvitationInfoResponse( invitation.id, + invitation.templateKey, invitation.createdAt, invitationInformation.title, invitationInformation.schedule, From 44d3d92b580bffe5ef232f1f74440139839a87a4 Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Mon, 3 Feb 2025 11:20:22 +0900 Subject: [PATCH 5/9] =?UTF-8?q?refactor:=20invitationEntity=20templateKey?= =?UTF-8?q?=20null=EA=B0=92=20=EC=B4=88=EA=B8=B0=ED=99=94=20=EB=B6=80?= =?UTF-8?q?=EB=B6=84=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yourevents/guest/repository/GuestJPARepository.kt | 10 +++++----- .../yourevents/invitation/entity/InvitationEntity.kt | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestJPARepository.kt b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestJPARepository.kt index c975cb0..435b5cc 100644 --- a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestJPARepository.kt +++ b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestJPARepository.kt @@ -19,11 +19,11 @@ interface GuestJPARepository : JpaRepository { @Query( "SELECT DISTINCT i " + - "FROM guest g " + - "JOIN g.invitation i " + - "WHERE g.member = :memberEntity " + - "AND i.member <> :memberEntity " + - "AND i.deleted = false" + "FROM guest g " + + "JOIN g.invitation i " + + "WHERE g.member = :memberEntity " + + "AND i.member <> :memberEntity " + + "AND i.deleted = false" ) fun getReceivedInvitations(memberEntity: MemberEntity): List diff --git a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/invitation/entity/InvitationEntity.kt b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/invitation/entity/InvitationEntity.kt index 2c46b32..a3f0e86 100644 --- a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/invitation/entity/InvitationEntity.kt +++ b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/invitation/entity/InvitationEntity.kt @@ -27,7 +27,7 @@ class InvitationEntity( val qrUrl: String, @Column - val templateKey: String? = null, + val templateKey: String?, @Column val deleted: Boolean, From 68644fabcc3e852813d94a4f5ca0b3232551441e Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Mon, 3 Feb 2025 15:23:24 +0900 Subject: [PATCH 6/9] =?UTF-8?q?refactor:=20=EC=B4=88=EB=8C=80=EC=9E=A5=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=20=EC=A1=B0=ED=9A=8C=20Reponse=EA=B0=92?= =?UTF-8?q?=EC=97=90=20ownerNickname=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/site/yourevents/guest/port/in/GuestUseCase.kt | 3 +++ .../yourevents/guest/port/out/GuestPersistencePort.kt | 2 ++ .../kotlin/site/yourevents/guest/service/GuestService.kt | 3 +++ .../yourevents/invitation/service/InvitationService.kt | 1 - .../yourevents/guest/repository/GuestJPARepository.kt | 6 ++++++ .../site/yourevents/guest/repository/GuestRepository.kt | 3 +++ .../invitation/dto/response/InvitationInfoResponse.kt | 4 ++++ .../site/yourevents/invitation/facade/InvitationFacade.kt | 3 +++ .../kotlin/site/yourevents/memeber/facade/MemberFacade.kt | 3 +++ .../yourevents/invitation/facade/InvitationFacadeTest.kt | 4 ++++ .../site/yourevents/member/facade/MemberFacadeTest.kt | 8 ++++++++ 11 files changed, 39 insertions(+), 1 deletion(-) diff --git a/module-domain/src/main/kotlin/site/yourevents/guest/port/in/GuestUseCase.kt b/module-domain/src/main/kotlin/site/yourevents/guest/port/in/GuestUseCase.kt index 5d23667..18f339e 100644 --- a/module-domain/src/main/kotlin/site/yourevents/guest/port/in/GuestUseCase.kt +++ b/module-domain/src/main/kotlin/site/yourevents/guest/port/in/GuestUseCase.kt @@ -33,4 +33,7 @@ interface GuestUseCase { fun getNotAttendGuestsByInvitation(invitation: Invitation): List fun getInvitationAttendance(memberId: UUID, invitationId: UUID): Boolean? + + fun getOwnerNickname(invitationId: UUID, memberId: UUID): String + } diff --git a/module-domain/src/main/kotlin/site/yourevents/guest/port/out/GuestPersistencePort.kt b/module-domain/src/main/kotlin/site/yourevents/guest/port/out/GuestPersistencePort.kt index 428995d..1fc46a0 100644 --- a/module-domain/src/main/kotlin/site/yourevents/guest/port/out/GuestPersistencePort.kt +++ b/module-domain/src/main/kotlin/site/yourevents/guest/port/out/GuestPersistencePort.kt @@ -22,4 +22,6 @@ interface GuestPersistencePort { fun findNotAttendGuestsByInvitation(invitation: Invitation): List fun findAttendanceByMemberAndInvitation(memberId: UUID, invitationId: UUID): Boolean? + + fun findByInvitationAndMember(invitationId: UUID, memberId: UUID): String } diff --git a/module-domain/src/main/kotlin/site/yourevents/guest/service/GuestService.kt b/module-domain/src/main/kotlin/site/yourevents/guest/service/GuestService.kt index 494ac08..067a6dd 100644 --- a/module-domain/src/main/kotlin/site/yourevents/guest/service/GuestService.kt +++ b/module-domain/src/main/kotlin/site/yourevents/guest/service/GuestService.kt @@ -84,6 +84,9 @@ class GuestService( override fun getInvitationAttendance(memberId: UUID, invitationId: UUID): Boolean? = guestPersistencePort.findAttendanceByMemberAndInvitation(memberId, invitationId) + override fun getOwnerNickname(invitationId: UUID, memberId: UUID): String = + guestPersistencePort.findByInvitationAndMember(invitationId, memberId) + private fun updateAttendance(guestId: UUID, attendance: Boolean) { val guest = guestPersistencePort.findById(guestId) ?: throw GuestNotFoundException() diff --git a/module-domain/src/main/kotlin/site/yourevents/invitation/service/InvitationService.kt b/module-domain/src/main/kotlin/site/yourevents/invitation/service/InvitationService.kt index 9fe4156..3185301 100644 --- a/module-domain/src/main/kotlin/site/yourevents/invitation/service/InvitationService.kt +++ b/module-domain/src/main/kotlin/site/yourevents/invitation/service/InvitationService.kt @@ -26,7 +26,6 @@ class InvitationService( val member = memberUseCase.findById(memberId) ?: throw MemberNotFountException() - return invitationPersistencePort.save( InvitationVO.of( member = member, diff --git a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestJPARepository.kt b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestJPARepository.kt index 435b5cc..6c6a2b2 100644 --- a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestJPARepository.kt +++ b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestJPARepository.kt @@ -46,4 +46,10 @@ interface GuestJPARepository : JpaRepository { "WHERE g.member.id = :memberId " + "AND g.invitation.id = :invitationId") fun findAttendanceByMemberIdAndInvitationId(memberId: UUID, invitationId: UUID): Boolean? + + @Query("SELECT g.nickname " + + "FROM guest g " + + "WHERE g.member.id = :memberId " + + "AND g.invitation.id = :invitationId") + fun findByInvitationAndMember(invitationId: UUID, memberId: UUID): String } diff --git a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestRepository.kt b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestRepository.kt index 9fc8db5..de93a7f 100644 --- a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestRepository.kt +++ b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestRepository.kt @@ -49,4 +49,7 @@ class GuestRepository( override fun findAttendanceByMemberAndInvitation(memberId: UUID, invitationId: UUID): Boolean? { return guestJPARepository.findAttendanceByMemberIdAndInvitationId(memberId, invitationId) } + + override fun findByInvitationAndMember(invitationId: UUID, memberId: UUID): String = + guestJPARepository.findByInvitationAndMember(invitationId, memberId) } diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/InvitationInfoResponse.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/InvitationInfoResponse.kt index a35d8d5..8972b3b 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/InvitationInfoResponse.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/InvitationInfoResponse.kt @@ -1,5 +1,6 @@ package site.yourevents.invitation.dto.response +import site.yourevents.guest.domain.Guest import site.yourevents.invitation.domain.Invitation import site.yourevents.invitationinformation.domain.InvitationInformation import site.yourevents.invitationthumnail.domain.InvitationThumbnail @@ -10,6 +11,7 @@ data class InvitationInfoResponse( val invitationId: UUID, val templateKey: String?, val createDate: LocalDateTime?, + val ownerNickname: String, val title: String, val schedule: LocalDateTime, val location: String, @@ -20,12 +22,14 @@ data class InvitationInfoResponse( companion object { fun of( invitation: Invitation, + ownerNickname: String, invitationInformation: InvitationInformation, invitationThumbnail: InvitationThumbnail, ): InvitationInfoResponse = InvitationInfoResponse( invitation.id, invitation.templateKey, invitation.createdAt, + ownerNickname, invitationInformation.title, invitationInformation.schedule, invitationInformation.location, diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt index 4ccfe1b..7860db0 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt @@ -64,12 +64,15 @@ class InvitationFacade( fun getInvitation(invitationId: UUID): InvitationInfoResponse { val invitation = invitationUseCase.findById(invitationId) + val ownerNickname = guestUseCase.getOwnerNickname(invitationId, invitation.member.id) + val invitationInformation = invitationInformationUseCase.findByInvitation(invitation) val invitationThumbnail = invitationThumbnailUseCase.findByInvitation(invitation) return InvitationInfoResponse.of( invitation, + ownerNickname, invitationInformation, invitationThumbnail ) diff --git a/module-presentation/src/main/kotlin/site/yourevents/memeber/facade/MemberFacade.kt b/module-presentation/src/main/kotlin/site/yourevents/memeber/facade/MemberFacade.kt index cfe7691..6aeb575 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/memeber/facade/MemberFacade.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/memeber/facade/MemberFacade.kt @@ -68,10 +68,13 @@ class MemberFacade( private fun createInvitationInfoResponse(invitation: Invitation): InvitationInfoResponse { val invitationInfo = invitationInformationUseCase.findByInvitation(invitation) + val ownerNickname = guestUseCase.getOwnerNickname(invitation.id, invitation.member.id) + val invitationThumbnail = invitationThumbnailUseCase.findByInvitation(invitation) return InvitationInfoResponse.of( invitation, + ownerNickname, invitationInfo, invitationThumbnail ) diff --git a/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt b/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt index 50db844..82beab0 100644 --- a/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt +++ b/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt @@ -85,6 +85,8 @@ class InvitationFacadeTest : DescribeSpec({ modifiedAt = LocalDateTime.now() ) + val ownerNickname = "nickname" + val invitationThumbnail = InvitationThumbnail( id = thumbnailId, invitation = invitation, @@ -151,6 +153,7 @@ class InvitationFacadeTest : DescribeSpec({ context("getInvitation 메서드가 호출되었을 때") { it("존재하는 초대장 정보를 반환해야 한다") { every { invitationUseCase.findById(invitationId) } returns invitation + every{ guestUseCase.getOwnerNickname(invitationId, invitation.member.id) } returns ownerNickname every { invitationInformationUseCase.findByInvitation(invitation) } returns invitationInformation every { invitationThumbnailUseCase.findByInvitation(invitation) } returns invitationThumbnail @@ -159,6 +162,7 @@ class InvitationFacadeTest : DescribeSpec({ response.shouldBe( InvitationInfoResponse.of( invitation = invitation, + ownerNickname = ownerNickname, invitationInformation = invitationInformation, invitationThumbnail = invitationThumbnail ) diff --git a/module-presentation/src/test/kotlin/site/yourevents/member/facade/MemberFacadeTest.kt b/module-presentation/src/test/kotlin/site/yourevents/member/facade/MemberFacadeTest.kt index 7bbcd75..37d5d9d 100644 --- a/module-presentation/src/test/kotlin/site/yourevents/member/facade/MemberFacadeTest.kt +++ b/module-presentation/src/test/kotlin/site/yourevents/member/facade/MemberFacadeTest.kt @@ -81,6 +81,9 @@ class MemberFacadeTest : DescribeSpec({ LocalDateTime.now(), LocalDateTime.now() ) + + val ownerNickname = "ownerNickname" + val invitationInfo = InvitationInformation( UUID.randomUUID(), invitation, @@ -102,6 +105,7 @@ class MemberFacadeTest : DescribeSpec({ val expectedResponse = listOf( InvitationInfoResponse.of( invitation, + ownerNickname, invitationInfo, invitationThumbnail ) @@ -109,6 +113,7 @@ class MemberFacadeTest : DescribeSpec({ every { memberUseCase.findById(authDetails.uuid) } returns member every { invitationUseCase.findByMember(member) } returns listOf(invitation) + every { guestUseCase.getOwnerNickname(invitation.id, invitation.member.id) } returns ownerNickname every { invitationInformationUseCase.findByInvitation(invitation) } returns invitationInfo every { invitationThumbnailUseCase.findByInvitation(invitation) } returns invitationThumbnail @@ -129,6 +134,7 @@ class MemberFacadeTest : DescribeSpec({ LocalDateTime.now(), LocalDateTime.now() ) + val ownerNickname = "ownerNickname" val invitationInfo = InvitationInformation( UUID.randomUUID(), invitation, @@ -149,6 +155,7 @@ class MemberFacadeTest : DescribeSpec({ val expectedResponse = listOf( InvitationInfoResponse.of( invitation, + ownerNickname, invitationInfo, invitationThumbnail ) @@ -156,6 +163,7 @@ class MemberFacadeTest : DescribeSpec({ every { memberUseCase.findById(authDetails.uuid) } returns member every { guestUseCase.getReceivedInvitations(member) } returns listOf(invitation) + every { guestUseCase.getOwnerNickname(invitation.id, invitation.member.id) } returns ownerNickname every { invitationInformationUseCase.findByInvitation(invitation) } returns invitationInfo every { invitationThumbnailUseCase.findByInvitation(invitation) } returns invitationThumbnail From 5c93007b16bc63ae45f7fe8a9e370b0a796e415d Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Mon, 3 Feb 2025 16:02:41 +0900 Subject: [PATCH 7/9] =?UTF-8?q?refactor:=20=EB=A9=94=EC=84=9C=EB=93=9C?= =?UTF-8?q?=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/kotlin/site/yourevents/guest/port/in/GuestUseCase.kt | 1 - .../site/yourevents/guest/port/out/GuestPersistencePort.kt | 2 +- .../main/kotlin/site/yourevents/guest/service/GuestService.kt | 2 +- .../site/yourevents/guest/repository/GuestJPARepository.kt | 2 +- .../site/yourevents/guest/repository/GuestRepository.kt | 4 ++-- .../invitation/dto/response/InvitationInfoResponse.kt | 1 - 6 files changed, 5 insertions(+), 7 deletions(-) diff --git a/module-domain/src/main/kotlin/site/yourevents/guest/port/in/GuestUseCase.kt b/module-domain/src/main/kotlin/site/yourevents/guest/port/in/GuestUseCase.kt index 18f339e..b746cf6 100644 --- a/module-domain/src/main/kotlin/site/yourevents/guest/port/in/GuestUseCase.kt +++ b/module-domain/src/main/kotlin/site/yourevents/guest/port/in/GuestUseCase.kt @@ -35,5 +35,4 @@ interface GuestUseCase { fun getInvitationAttendance(memberId: UUID, invitationId: UUID): Boolean? fun getOwnerNickname(invitationId: UUID, memberId: UUID): String - } diff --git a/module-domain/src/main/kotlin/site/yourevents/guest/port/out/GuestPersistencePort.kt b/module-domain/src/main/kotlin/site/yourevents/guest/port/out/GuestPersistencePort.kt index 1fc46a0..52b0ff7 100644 --- a/module-domain/src/main/kotlin/site/yourevents/guest/port/out/GuestPersistencePort.kt +++ b/module-domain/src/main/kotlin/site/yourevents/guest/port/out/GuestPersistencePort.kt @@ -23,5 +23,5 @@ interface GuestPersistencePort { fun findAttendanceByMemberAndInvitation(memberId: UUID, invitationId: UUID): Boolean? - fun findByInvitationAndMember(invitationId: UUID, memberId: UUID): String + fun findOwnerNickname(invitationId: UUID, memberId: UUID): String } diff --git a/module-domain/src/main/kotlin/site/yourevents/guest/service/GuestService.kt b/module-domain/src/main/kotlin/site/yourevents/guest/service/GuestService.kt index 067a6dd..c6e7270 100644 --- a/module-domain/src/main/kotlin/site/yourevents/guest/service/GuestService.kt +++ b/module-domain/src/main/kotlin/site/yourevents/guest/service/GuestService.kt @@ -85,7 +85,7 @@ class GuestService( guestPersistencePort.findAttendanceByMemberAndInvitation(memberId, invitationId) override fun getOwnerNickname(invitationId: UUID, memberId: UUID): String = - guestPersistencePort.findByInvitationAndMember(invitationId, memberId) + guestPersistencePort.findOwnerNickname(invitationId, memberId) private fun updateAttendance(guestId: UUID, attendance: Boolean) { val guest = guestPersistencePort.findById(guestId) diff --git a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestJPARepository.kt b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestJPARepository.kt index 6c6a2b2..035a500 100644 --- a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestJPARepository.kt +++ b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestJPARepository.kt @@ -51,5 +51,5 @@ interface GuestJPARepository : JpaRepository { "FROM guest g " + "WHERE g.member.id = :memberId " + "AND g.invitation.id = :invitationId") - fun findByInvitationAndMember(invitationId: UUID, memberId: UUID): String + fun findOwnerNickname(invitationId: UUID, memberId: UUID): String } diff --git a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestRepository.kt b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestRepository.kt index de93a7f..474555d 100644 --- a/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestRepository.kt +++ b/module-infrastructure/persistence-db/src/main/kotlin/site/yourevents/guest/repository/GuestRepository.kt @@ -50,6 +50,6 @@ class GuestRepository( return guestJPARepository.findAttendanceByMemberIdAndInvitationId(memberId, invitationId) } - override fun findByInvitationAndMember(invitationId: UUID, memberId: UUID): String = - guestJPARepository.findByInvitationAndMember(invitationId, memberId) + override fun findOwnerNickname(invitationId: UUID, memberId: UUID): String = + guestJPARepository.findOwnerNickname(invitationId, memberId) } diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/InvitationInfoResponse.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/InvitationInfoResponse.kt index 8972b3b..d692547 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/InvitationInfoResponse.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/InvitationInfoResponse.kt @@ -1,6 +1,5 @@ package site.yourevents.invitation.dto.response -import site.yourevents.guest.domain.Guest import site.yourevents.invitation.domain.Invitation import site.yourevents.invitationinformation.domain.InvitationInformation import site.yourevents.invitationthumnail.domain.InvitationThumbnail From 625abf2d42504e0777ff8b1e964293c98359d298 Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Mon, 3 Feb 2025 16:03:26 +0900 Subject: [PATCH 8/9] =?UTF-8?q?refactor:=20=EB=A9=94=EC=84=9C=EB=93=9C?= =?UTF-8?q?=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../site/yourevents/invitation/facade/InvitationFacadeTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt b/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt index 82beab0..2df34a8 100644 --- a/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt +++ b/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt @@ -153,7 +153,7 @@ class InvitationFacadeTest : DescribeSpec({ context("getInvitation 메서드가 호출되었을 때") { it("존재하는 초대장 정보를 반환해야 한다") { every { invitationUseCase.findById(invitationId) } returns invitation - every{ guestUseCase.getOwnerNickname(invitationId, invitation.member.id) } returns ownerNickname + every { guestUseCase.getOwnerNickname(invitationId, invitation.member.id) } returns ownerNickname every { invitationInformationUseCase.findByInvitation(invitation) } returns invitationInformation every { invitationThumbnailUseCase.findByInvitation(invitation) } returns invitationThumbnail From 7c975a2d2757090657142ad2dd5dca6021a40075 Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Mon, 3 Feb 2025 16:10:46 +0900 Subject: [PATCH 9/9] =?UTF-8?q?refactor:=20=EC=B4=88=EB=8C=80=EC=9E=A5=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EB=B0=98=ED=99=98=EA=B0=92=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../site/yourevents/invitation/api/InvitationApi.kt | 2 +- .../yourevents/invitation/api/InvitationController.kt | 2 +- .../dto/response/CreateInvitationResponse.kt | 11 ----------- .../yourevents/invitation/facade/InvitationFacade.kt | 4 ++-- .../invitation/facade/InvitationFacadeTest.kt | 3 +-- 5 files changed, 5 insertions(+), 17 deletions(-) delete mode 100644 module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/CreateInvitationResponse.kt diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/api/InvitationApi.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/api/InvitationApi.kt index f56fa74..781ab4d 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/api/InvitationApi.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/invitation/api/InvitationApi.kt @@ -22,7 +22,7 @@ interface InvitationApi { fun createInvitation( @RequestBody createInvitationRequest: CreateInvitationRequest, @AuthenticationPrincipal authDetails: AuthDetails, - ): ApiResponse + ): ApiResponse @Operation(summary = "초대장 QR 코드 조회") @GetMapping("/qr") diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/api/InvitationController.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/api/InvitationController.kt index 23e1a1a..637395b 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/api/InvitationController.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/invitation/api/InvitationController.kt @@ -21,7 +21,7 @@ class InvitationController( override fun createInvitation( @RequestBody createInvitationRequest: CreateInvitationRequest, @AuthenticationPrincipal authDetails: AuthDetails, - ): ApiResponse = ApiResponse.success( + ): ApiResponse = ApiResponse.success( SuccessCode.REQUEST_OK, invitationFacade.createInvitation(createInvitationRequest, authDetails) ) diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/CreateInvitationResponse.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/CreateInvitationResponse.kt deleted file mode 100644 index 54882b5..0000000 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/dto/response/CreateInvitationResponse.kt +++ /dev/null @@ -1,11 +0,0 @@ -package site.yourevents.invitation.dto.response - -import site.yourevents.invitation.domain.Invitation -import java.util.UUID - -data class CreateInvitationResponse(val invitationId: UUID) { - companion object { - fun from(invitation: Invitation): CreateInvitationResponse = - CreateInvitationResponse(invitation.id) - } -} diff --git a/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt b/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt index 7860db0..a2ad1f5 100644 --- a/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt +++ b/module-presentation/src/main/kotlin/site/yourevents/invitation/facade/InvitationFacade.kt @@ -26,7 +26,7 @@ class InvitationFacade( fun createInvitation( createInvitationRequest: CreateInvitationRequest, authDetails: AuthDetails, - ): CreateInvitationResponse { + ): UUID { val memberId = authDetails.uuid val invitation = invitationUseCase.updateQrCode( @@ -45,7 +45,7 @@ class InvitationFacade( remark = createInvitationRequest.remark ) - return CreateInvitationResponse.from(invitation) + return invitation.id } fun deleteInvitation( diff --git a/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt b/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt index 2df34a8..a7076b9 100644 --- a/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt +++ b/module-presentation/src/test/kotlin/site/yourevents/invitation/facade/InvitationFacadeTest.kt @@ -7,7 +7,6 @@ import site.yourevents.guest.domain.Guest import site.yourevents.guest.port.`in`.GuestUseCase import site.yourevents.invitation.domain.Invitation import site.yourevents.invitation.dto.request.CreateInvitationRequest -import site.yourevents.invitation.dto.response.CreateInvitationResponse import site.yourevents.invitation.dto.response.InvitationGuestResponse import site.yourevents.invitation.dto.response.InvitationInfoResponse import site.yourevents.invitation.port.`in`.InvitationUseCase @@ -132,7 +131,7 @@ class InvitationFacadeTest : DescribeSpec({ val response = invitationFacade.createInvitation(createInvitationRequest, authDetails) - response.shouldBe(CreateInvitationResponse.from(invitation = invitation)) + response.shouldBe(invitation.id) } }