라이브 방 - 아고라 설정 및 라이브 방 관련 API
This commit is contained in:
@@ -6,6 +6,11 @@ import kr.co.vividnext.sodalive.aws.s3.S3Uploader
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.jwt.TokenProvider
|
||||
import kr.co.vividnext.sodalive.member.block.BlockMember
|
||||
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
|
||||
import kr.co.vividnext.sodalive.member.block.MemberBlockRequest
|
||||
import kr.co.vividnext.sodalive.member.following.CreatorFollowing
|
||||
import kr.co.vividnext.sodalive.member.following.CreatorFollowingRepository
|
||||
import kr.co.vividnext.sodalive.member.info.GetMemberInfoResponse
|
||||
import kr.co.vividnext.sodalive.member.login.LoginRequest
|
||||
import kr.co.vividnext.sodalive.member.login.LoginResponse
|
||||
@@ -39,6 +44,8 @@ class MemberService(
|
||||
private val repository: MemberRepository,
|
||||
private val stipulationRepository: StipulationRepository,
|
||||
private val stipulationAgreeRepository: StipulationAgreeRepository,
|
||||
private val creatorFollowingRepository: CreatorFollowingRepository,
|
||||
private val blockMemberRepository: BlockMemberRepository,
|
||||
|
||||
private val memberNotificationService: MemberNotificationService,
|
||||
|
||||
@@ -264,4 +271,61 @@ class MemberService(
|
||||
|
||||
return MemberAdapter(member)
|
||||
}
|
||||
|
||||
@Transactional
|
||||
fun creatorFollow(creatorId: Long, memberId: Long) {
|
||||
val creatorFollowing = creatorFollowingRepository.findByCreatorIdAndMemberId(
|
||||
creatorId = creatorId,
|
||||
memberId = memberId
|
||||
)
|
||||
|
||||
if (creatorFollowing == null) {
|
||||
val creator = repository.findByIdOrNull(creatorId) ?: throw SodaException("크리에이터 정보를 확인해주세요.")
|
||||
val member = repository.findByIdOrNull(memberId) ?: throw SodaException("로그인 정보를 확인해주세요.")
|
||||
creatorFollowingRepository.save(CreatorFollowing(creator = creator, member = member))
|
||||
} else {
|
||||
creatorFollowing.isActive = true
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional
|
||||
fun creatorUnFollow(creatorId: Long, memberId: Long) {
|
||||
val creatorFollowing = creatorFollowingRepository.findByCreatorIdAndMemberId(
|
||||
creatorId = creatorId,
|
||||
memberId = memberId
|
||||
)
|
||||
|
||||
if (creatorFollowing != null) {
|
||||
creatorFollowing.isActive = false
|
||||
}
|
||||
}
|
||||
|
||||
fun memberBlock(request: MemberBlockRequest, memberId: Long) {
|
||||
var blockMember = blockMemberRepository.getBlockAccount(
|
||||
blockedMemberId = request.blockMemberId,
|
||||
memberId = memberId
|
||||
)
|
||||
|
||||
if (blockMember == null) {
|
||||
blockMember = BlockMember(
|
||||
blockedMemberId = request.blockMemberId,
|
||||
memberId = memberId
|
||||
)
|
||||
|
||||
blockMemberRepository.save(blockMember)
|
||||
} else {
|
||||
blockMember.isActive = true
|
||||
}
|
||||
}
|
||||
|
||||
fun memberUnBlock(request: MemberBlockRequest, memberId: Long) {
|
||||
val blockMember = blockMemberRepository.getBlockAccount(
|
||||
blockedMemberId = request.blockMemberId,
|
||||
memberId = memberId
|
||||
)
|
||||
|
||||
if (blockMember != null) {
|
||||
blockMember.isActive = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user