62 lines
2.1 KiB
Kotlin
62 lines
2.1 KiB
Kotlin
|
|
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();
|
||
|
|
}
|
||
|
|
}
|