앱 - 오디션 상세 API
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package kr.co.vividnext.sodalive.audition.role
|
||||
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory
|
||||
import kr.co.vividnext.sodalive.audition.AuditionRole
|
||||
import kr.co.vividnext.sodalive.audition.AuditionStatus
|
||||
import kr.co.vividnext.sodalive.audition.GetAuditionRoleListData
|
||||
import kr.co.vividnext.sodalive.audition.QAudition.audition
|
||||
import kr.co.vividnext.sodalive.audition.QAuditionRole.auditionRole
|
||||
import kr.co.vividnext.sodalive.audition.QGetAuditionRoleListData
|
||||
import org.springframework.beans.factory.annotation.Value
|
||||
import org.springframework.data.jpa.repository.JpaRepository
|
||||
|
||||
interface AuditionRoleRepository : JpaRepository<AuditionRole, Long>, AuditionRoleQueryRepository
|
||||
|
||||
interface AuditionRoleQueryRepository {
|
||||
fun getAuditionRoleListByAuditionId(auditionId: Long): List<GetAuditionRoleListData>
|
||||
}
|
||||
|
||||
class AuditionRoleQueryRepositoryImpl(
|
||||
private val queryFactory: JPAQueryFactory,
|
||||
|
||||
@Value("\${cloud.aws.cloud-front.host}")
|
||||
private val cloudfrontHost: String
|
||||
) : AuditionRoleQueryRepository {
|
||||
override fun getAuditionRoleListByAuditionId(auditionId: Long): List<GetAuditionRoleListData> {
|
||||
return queryFactory
|
||||
.select(
|
||||
QGetAuditionRoleListData(
|
||||
auditionRole.id,
|
||||
auditionRole.name,
|
||||
auditionRole.imagePath.prepend("/").prepend(cloudfrontHost),
|
||||
auditionRole.status.eq(AuditionStatus.COMPLETED)
|
||||
)
|
||||
)
|
||||
.from(auditionRole)
|
||||
.innerJoin(auditionRole.audition, audition)
|
||||
.where(
|
||||
audition.id.eq(auditionId),
|
||||
auditionRole.isActive.isTrue
|
||||
)
|
||||
.fetch()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user