앱 - 오디션 상세 API

This commit is contained in:
2024-12-30 23:42:25 +09:00
parent b56b2e15af
commit ddd552deb4
5 changed files with 113 additions and 1 deletions

View File

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