JBear2/src/main/kotlin/at/eisibaer/jbear2/service/BoardServiceImpl.kt

62 lines
2.1 KiB
Kotlin
Raw Normal View History

2026-03-15 17:38:23 +01:00
package at.eisibaer.jbear2.service
import at.eisibaer.jbear2.dto.board.BoardDto
import at.eisibaer.jbear2.model.Board
import at.eisibaer.jbear2.model.User
import at.eisibaer.jbear2.repository.BoardRepository
import at.eisibaer.jbear2.repository.FileRepository
import at.eisibaer.jbear2.repository.UserRepository
import at.eisibaer.jbear2.service.mapper.BoardMapper
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.http.ResponseEntity
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
@Service
class BoardServiceImpl (
private val boardRepository: BoardRepository,
private val userRepository: UserRepository,
private val fileRepository: FileRepository,
private val boardMapper: BoardMapper,
) : BoardService {
val log: Logger = LoggerFactory.getLogger(BoardServiceImpl::class.java);
@Transactional
override fun getBoardsByUser(user: User): ResponseEntity<List<BoardDto>?> {
val boards = boardRepository.findAllByOwner(user)
return ResponseEntity.ok(boardMapper.toDto(boards));
}
@Transactional
override fun getBoardByUserAndId(user: User, boardId: Long): ResponseEntity<BoardDto?> {
val board = boardRepository.findByIdAndOwner(boardId, user) ?: return ResponseEntity.status(404).build();
return ResponseEntity.ok(boardMapper.toDto(board))
}
@Transactional
override fun saveBoardToUser( user: User, boardDto: BoardDto): ResponseEntity<BoardDto> {
val board: Board = boardMapper.toEntity(boardDto, user, userRepository, fileRepository);
val savedBoard: Board;
try {
savedBoard = boardRepository.save(board);
} catch (ex: Exception) {
log.error(ex.message, ex);
return ResponseEntity.badRequest().build();
}
return ResponseEntity.ok(boardMapper.toDto(savedBoard))
}
override fun deleteBoardOfUser(user: User, boardId: Long): ResponseEntity<Unit> {
boardRepository.deleteById( boardId );
//TODO Delete Images
return ResponseEntity.ok().build();
}
}