test #214
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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?
|
||||
)
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue