From 1051846c5bcd41581579a7398b9226bdead274db Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 12 Sep 2024 23:51:28 +0900 Subject: [PATCH] =?UTF-8?q?=ED=81=AC=EB=A6=AC=EC=97=90=EC=9D=B4=ED=84=B0?= =?UTF-8?q?=20=ED=8C=94=EB=A1=9C=EC=9A=B0=20API=20-=20=ED=8C=94=EB=A1=9C?= =?UTF-8?q?=EC=9A=B0=20/=20=EC=96=B8=ED=8C=94=EB=A1=9C=EC=9A=B0=20/=20?= =?UTF-8?q?=EC=95=8C=EB=A6=BC=20=EB=B0=9B=EA=B8=B0=20/=20=EC=95=8C?= =?UTF-8?q?=EB=A6=BC=20=EB=B0=9B=EC=A7=80=20=EC=95=8A=EA=B8=B0=20=EB=A5=BC?= =?UTF-8?q?=20=EB=AA=A8=EB=91=90=20=EC=B2=98=EB=A6=AC=ED=95=A0=20=EC=88=98?= =?UTF-8?q?=20=EC=9E=88=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vividnext/sodalive/member/MemberController.kt | 9 ++++++++- .../co/vividnext/sodalive/member/MemberService.kt | 11 ++++++++--- .../member/following/CreatorFollowRequest.kt | 6 +++++- .../sodalive/member/following/CreatorFollowing.kt | 13 +++++++------ 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt index e3312d7..024981c 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt @@ -142,7 +142,14 @@ class MemberController(private val service: MemberService) { ) = run { if (member == null) throw SodaException("로그인 정보를 확인해주세요.") - ApiResponse.ok(service.creatorFollow(creatorId = request.creatorId, memberId = member.id!!)) + ApiResponse.ok( + service.creatorFollow( + creatorId = request.creatorId, + isNotify = request.isNotify ?: true, + isActive = request.isActive ?: true, + memberId = member.id!! + ) + ) } @PostMapping("/creator/unfollow") diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt index e1a96fc..38c143d 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt @@ -331,7 +331,7 @@ class MemberService( } @Transactional - fun creatorFollow(creatorId: Long, memberId: Long) { + fun creatorFollow(creatorId: Long, isNotify: Boolean, isActive: Boolean, memberId: Long) { val creatorFollowing = creatorFollowingRepository.findByCreatorIdAndMemberId( creatorId = creatorId, memberId = memberId @@ -340,9 +340,14 @@ class MemberService( if (creatorFollowing == null) { val creator = repository.findByIdOrNull(creatorId) ?: throw SodaException("크리에이터 정보를 확인해주세요.") val member = repository.findByIdOrNull(memberId) ?: throw SodaException("로그인 정보를 확인해주세요.") - creatorFollowingRepository.save(CreatorFollowing(creator = creator, member = member)) + + val newCreatorFollowing = CreatorFollowing() + newCreatorFollowing.member = member + newCreatorFollowing.creator = creator + creatorFollowingRepository.save(newCreatorFollowing) } else { - creatorFollowing.isActive = true + creatorFollowing.isNotify = isNotify + creatorFollowing.isActive = isActive } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowRequest.kt index 453004b..3c32f9a 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowRequest.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowRequest.kt @@ -1,3 +1,7 @@ package kr.co.vividnext.sodalive.member.following -data class CreatorFollowRequest(val creatorId: Long) +data class CreatorFollowRequest( + val creatorId: Long, + val isNotify: Boolean?, + val isActive: Boolean? +) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowing.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowing.kt index c0a3044..5165393 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowing.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowing.kt @@ -8,16 +8,17 @@ import javax.persistence.JoinColumn import javax.persistence.ManyToOne @Entity -class CreatorFollowing( +data class CreatorFollowing( + var isNotify: Boolean = true, + var isActive: Boolean = true +) : BaseEntity() { // 유저가 알림받기 한 크리에이터 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "creator_id", nullable = false) - var creator: Member, + var creator: Member? = null // 크리에이터를 알림받기 한 유저 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id", nullable = false) - var member: Member, - - var isActive: Boolean = true -) : BaseEntity() + var member: Member? = null +}