라이브 방 - 아고라 설정 및 라이브 방 관련 API

This commit is contained in:
2023-08-01 04:56:47 +09:00
parent f393c7630e
commit 58a7f87ffd
37 changed files with 1823 additions and 6 deletions

View File

@@ -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
}
}
}