test #214
|
@ -142,7 +142,14 @@ class MemberController(private val service: MemberService) {
|
||||||
) = run {
|
) = run {
|
||||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
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")
|
@PostMapping("/creator/unfollow")
|
||||||
|
|
|
@ -331,7 +331,7 @@ class MemberService(
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
fun creatorFollow(creatorId: Long, memberId: Long) {
|
fun creatorFollow(creatorId: Long, isNotify: Boolean, isActive: Boolean, memberId: Long) {
|
||||||
val creatorFollowing = creatorFollowingRepository.findByCreatorIdAndMemberId(
|
val creatorFollowing = creatorFollowingRepository.findByCreatorIdAndMemberId(
|
||||||
creatorId = creatorId,
|
creatorId = creatorId,
|
||||||
memberId = memberId
|
memberId = memberId
|
||||||
|
@ -340,9 +340,14 @@ class MemberService(
|
||||||
if (creatorFollowing == null) {
|
if (creatorFollowing == null) {
|
||||||
val creator = repository.findByIdOrNull(creatorId) ?: throw SodaException("크리에이터 정보를 확인해주세요.")
|
val creator = repository.findByIdOrNull(creatorId) ?: throw SodaException("크리에이터 정보를 확인해주세요.")
|
||||||
val member = repository.findByIdOrNull(memberId) ?: 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 {
|
} else {
|
||||||
creatorFollowing.isActive = true
|
creatorFollowing.isNotify = isNotify
|
||||||
|
creatorFollowing.isActive = isActive
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
package kr.co.vividnext.sodalive.member.following
|
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
|
import javax.persistence.ManyToOne
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
class CreatorFollowing(
|
data class CreatorFollowing(
|
||||||
|
var isNotify: Boolean = true,
|
||||||
|
var isActive: Boolean = true
|
||||||
|
) : BaseEntity() {
|
||||||
// 유저가 알림받기 한 크리에이터
|
// 유저가 알림받기 한 크리에이터
|
||||||
@ManyToOne(fetch = FetchType.LAZY)
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
@JoinColumn(name = "creator_id", nullable = false)
|
@JoinColumn(name = "creator_id", nullable = false)
|
||||||
var creator: Member,
|
var creator: Member? = null
|
||||||
|
|
||||||
// 크리에이터를 알림받기 한 유저
|
// 크리에이터를 알림받기 한 유저
|
||||||
@ManyToOne(fetch = FetchType.LAZY)
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
@JoinColumn(name = "member_id", nullable = false)
|
@JoinColumn(name = "member_id", nullable = false)
|
||||||
var member: Member,
|
var member: Member? = null
|
||||||
|
}
|
||||||
var isActive: Boolean = true
|
|
||||||
) : BaseEntity()
|
|
||||||
|
|
Loading…
Reference in New Issue