NemesLaszlo/Forum

View on GitHub
src/main/java/com/forum/service/SubforumService.java

Summary

Maintainability
A
0 mins
Test Coverage
package com.forum.service;

import com.forum.dto.SubforumDto;
import com.forum.exceptions.SpringForumException;
import com.forum.mapper.SubforumMapper;
import com.forum.model.Subforum;
import com.forum.model.User;
import com.forum.repository.SubforumRepository;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import static java.util.stream.Collectors.toList;

@Service
@AllArgsConstructor
@Slf4j
public class SubforumService {

    private final SubforumRepository subforumRepository;
    private final SubforumMapper subforumMapper;
    private final AuthService authService;

    @Transactional
    public SubforumDto create(SubforumDto subforumDto) {
        User currentUser = authService.getCurrentUser();
        Subforum subforum = subforumRepository.save(subforumMapper.mapDtoToSubforum(subforumDto, currentUser));
        subforumDto.setId(subforum.getId());
        return subforumDto;
    }



    @Transactional(readOnly=true)
    public List<SubforumDto> getAll() {
         return subforumRepository.findAll()
                 .stream()
                 .map(subforumMapper::mapSubforumToDto)
                 .collect(toList());
    }

    public SubforumDto getSubforumById(Long id) {
        Subforum subforum = subforumRepository.findById(id).orElseThrow(() -> new SpringForumException("No subreddit found with ID - " + id));
        return subforumMapper.mapSubforumToDto(subforum);
    }

    /*
    private Subforum mapSubforumDto(SubforumDto subforumDto) {
        return Subforum.builder().name(subforumDto.getName()).description(subforumDto.getDescription()).build();
    }

    private SubforumDto mapToDto(Subforum subforum) {
        return SubforumDto.builder().name(subforum.getName()).id(subforum.getId()).numberOfPosts(subforum.getPosts().size()).build();
    }
    */


}