Newer
Older
bremer / src / main / kotlin / service / domain / PlaylistDomainService.kt
yhornisse on 2 Jul 2023 1 KB add project
/*
 * Copyright (c) 2023. yo-saito. All Rights Reserved.
 */

package net.piedpiper.bremer.service.domain

import net.piedpiper.bremer.entity.PlaylistEntity
import net.piedpiper.bremer.repository.PlaylistRepository
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
import java.util.*

@Service("bremer.service.PlaylistDomainService")
class PlaylistDomainService(
    private val playlistRepository: PlaylistRepository
) {
    @Transactional
    fun findAll(): List<PlaylistEntity> = playlistRepository.findAll()

    @Transactional
    fun findOneBySlug(slug: String): PlaylistEntity? = playlistRepository.findBySlug(slug)

    @Transactional
    fun insertOne(entity: PlaylistEntity): PlaylistEntity = playlistRepository.insertOne(entity)
        .let { playlistRepository.findOneById(it) ?: throw IllegalStateException() }

    @Transactional
    fun updateOne(entity: PlaylistEntity): PlaylistEntity {
        playlistRepository.updateOne(entity)
        return playlistRepository.findOneById(entity.id) ?: throw IllegalStateException()
    }
}