관리자 콘텐츠 메인 탭 조회 API
This commit is contained in:
parent
d36aada227
commit
00ce6d6a7a
|
@ -42,6 +42,9 @@ class AdminContentController(private val service: AdminContentService) {
|
|||
fun modifyAudioContent(
|
||||
@RequestBody request: UpdateAdminContentRequest
|
||||
) = ApiResponse.ok(service.updateAudioContent(request))
|
||||
|
||||
@GetMapping("/main/tab")
|
||||
fun getContentMainTabList() = ApiResponse.ok(service.getContentMainTabList())
|
||||
}
|
||||
|
||||
enum class ContentReleaseStatus {
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
package kr.co.vividnext.sodalive.admin.content
|
||||
|
||||
import kr.co.vividnext.sodalive.admin.content.curation.AdminContentCurationRepository
|
||||
import kr.co.vividnext.sodalive.admin.content.tab.AdminContentMainTabRepository
|
||||
import kr.co.vividnext.sodalive.admin.content.theme.AdminContentThemeRepository
|
||||
import kr.co.vividnext.sodalive.aws.cloudfront.AudioContentCloudFront
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.main.tab.GetContentMainTabItem
|
||||
import org.springframework.data.domain.Pageable
|
||||
import org.springframework.data.repository.findByIdOrNull
|
||||
import org.springframework.stereotype.Service
|
||||
|
@ -14,7 +16,8 @@ class AdminContentService(
|
|||
private val repository: AdminContentRepository,
|
||||
private val themeRepository: AdminContentThemeRepository,
|
||||
private val audioContentCloudFront: AudioContentCloudFront,
|
||||
private val curationRepository: AdminContentCurationRepository
|
||||
private val curationRepository: AdminContentCurationRepository,
|
||||
private val contentMainTabRepository: AdminContentMainTabRepository
|
||||
) {
|
||||
fun getAudioContentList(status: ContentReleaseStatus, pageable: Pageable): GetAdminContentListResponse {
|
||||
val totalCount = repository.getAudioContentTotalCount(status = status)
|
||||
|
@ -118,4 +121,8 @@ class AdminContentService(
|
|||
audioContent.theme = theme
|
||||
}
|
||||
}
|
||||
|
||||
fun getContentMainTabList(): List<GetContentMainTabItem> {
|
||||
return contentMainTabRepository.findAllByActiveIsTrue()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
package kr.co.vividnext.sodalive.admin.content.tab
|
||||
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory
|
||||
import kr.co.vividnext.sodalive.content.main.tab.AudioContentMainTab
|
||||
import kr.co.vividnext.sodalive.content.main.tab.GetContentMainTabItem
|
||||
import kr.co.vividnext.sodalive.content.main.tab.QAudioContentMainTab.audioContentMainTab
|
||||
import kr.co.vividnext.sodalive.content.main.tab.QGetContentMainTabItem
|
||||
import org.springframework.data.jpa.repository.JpaRepository
|
||||
|
||||
interface AdminContentMainTabRepository : JpaRepository<AudioContentMainTab, Long>, AdminContentMainTabQueryRepository
|
||||
|
||||
interface AdminContentMainTabQueryRepository {
|
||||
fun findAllByActiveIsTrue(): List<GetContentMainTabItem>
|
||||
}
|
||||
|
||||
class AdminContentMainTabQueryRepositoryImpl(
|
||||
private val queryFactory: JPAQueryFactory
|
||||
) : AdminContentMainTabQueryRepository {
|
||||
override fun findAllByActiveIsTrue(): List<GetContentMainTabItem> {
|
||||
return queryFactory
|
||||
.select(
|
||||
QGetContentMainTabItem(
|
||||
audioContentMainTab.id,
|
||||
audioContentMainTab.title
|
||||
)
|
||||
)
|
||||
.from(audioContentMainTab)
|
||||
.where(audioContentMainTab.isActive.isTrue)
|
||||
.fetch()
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package kr.co.vividnext.sodalive.content.main.tab
|
||||
|
||||
import com.querydsl.core.annotations.QueryProjection
|
||||
|
||||
data class GetContentMainTabItem @QueryProjection constructor(
|
||||
val tabId: Long,
|
||||
val title: String
|
||||
)
|
Loading…
Reference in New Issue