29 lines
1.1 KiB
Kotlin
29 lines
1.1 KiB
Kotlin
package at.eisibaer.jbear2.service.mapper
|
|
|
|
import at.eisibaer.jbear2.dto.board.BoardDto
|
|
import at.eisibaer.jbear2.model.Board
|
|
import at.eisibaer.jbear2.model.User
|
|
import at.eisibaer.jbear2.repository.FileRepository
|
|
import at.eisibaer.jbear2.repository.UserRepository
|
|
import org.mapstruct.*
|
|
|
|
@Mapper(uses = [UserMapper::class,QuestionMapper::class,AnswerMapper::class,BoardEntryMapper::class,CategoryMapper::class])
|
|
abstract class BoardMapper {
|
|
|
|
abstract fun toDto(e: Board): BoardDto;
|
|
abstract fun toDto(e: List<Board>): List<BoardDto>;
|
|
|
|
@Mapping(target = "owner", source = "owner")
|
|
@Mapping(target = "id", source = "d.id")
|
|
abstract fun toEntity(d: BoardDto, owner: User, @Context userRepository: UserRepository, @Context fileRepository: FileRepository): Board;
|
|
abstract fun toEntity(d: List<BoardDto>, @Context owner: User, @Context userRepository: UserRepository, @Context fileRepository: FileRepository): List<Board>;
|
|
|
|
@AfterMapping
|
|
fun addBoardToCategory(source: BoardDto, @MappingTarget target: Board ): Board{
|
|
for( category in target.categories ){
|
|
category.board = target
|
|
}
|
|
return target
|
|
}
|
|
}
|