유저 관심사, 라이브 관심사 - 연령제한 설정 추가

This commit is contained in:
2023-08-25 16:15:59 +09:00
parent 65e0b87d79
commit 7af970ace4
11 changed files with 47 additions and 18 deletions

View File

@@ -1,3 +1,3 @@
package kr.co.vividnext.sodalive.live.tag
data class CreateLiveTagRequest(val tag: String)
data class CreateLiveTagRequest(val tag: String, val isAdult: Boolean = false)

View File

@@ -8,6 +8,8 @@ import javax.persistence.Entity
data class LiveTag(
@Column(unique = true, nullable = false)
var tag: String,
@Column(nullable = false)
var isAdult: Boolean = false,
@Column(nullable = true)
var image: String? = null,
@Column(nullable = false)

View File

@@ -29,11 +29,11 @@ class LiveTagController(private val service: LiveTagService) {
@DeleteMapping("/{id}")
@PreAuthorize("hasRole('ADMIN')")
fun deleteSudaTag(@PathVariable id: Long) = ApiResponse.ok(service.deleteTag(id), "삭제되었습니다.")
fun deleteLiveTag(@PathVariable id: Long) = ApiResponse.ok(service.deleteTag(id), "삭제되었습니다.")
@PutMapping("/{id}")
@PreAuthorize("hasRole('ADMIN')")
fun modifySudaTag(
fun modifyLiveTag(
@PathVariable id: Long,
@RequestPart("image") image: MultipartFile?,
@RequestPart("request") requestString: String

View File

@@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.live.tag
import com.querydsl.jpa.impl.JPAQueryFactory
import kr.co.vividnext.sodalive.live.tag.QLiveTag.liveTag
import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.member.MemberRole
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository
@@ -12,16 +13,16 @@ interface LiveTagRepository : JpaRepository<LiveTag, Long>, LiveTagQueryReposito
}
interface LiveTagQueryRepository {
fun getTags(role: MemberRole, isAdult: Boolean, cloudFrontHost: String): List<GetLiveTagResponse>
fun getTags(member: Member, cloudFrontHost: String): List<GetLiveTagResponse>
}
@Repository
class LiveTagQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : LiveTagQueryRepository {
override fun getTags(role: MemberRole, isAdult: Boolean, cloudFrontHost: String): List<GetLiveTagResponse> {
override fun getTags(member: Member, cloudFrontHost: String): List<GetLiveTagResponse> {
var where = liveTag.isActive.isTrue
if (role != MemberRole.ADMIN && !isAdult) {
where = where.and(liveTag.tag.notIn("음담패설", "EDPS"))
if (member.role != MemberRole.ADMIN && member.auth == null) {
where = where.and(liveTag.isAdult.isFalse)
}
return queryFactory

View File

@@ -90,7 +90,7 @@ class LiveTagService(
}
fun getTags(member: Member): List<GetLiveTagResponse> {
return repository.getTags(role = member.role, isAdult = member.auth != null, cloudFrontHost = cloudFrontHost)
return repository.getTags(member = member, cloudFrontHost = cloudFrontHost)
}
fun tagExistCheck(request: CreateLiveTagRequest) {