Skip to content

Commit

Permalink
[Refactor] 인터페이스를 도입하여 상속 관계가 더 분명하도록 하였음
Browse files Browse the repository at this point in the history
  • Loading branch information
NARUBROWN committed Jan 20, 2024
1 parent 04b38cb commit d35c9ca
Show file tree
Hide file tree
Showing 14 changed files with 65 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,32 @@

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import server.inuappcenter.kr.common.data.dto.CommonResponseDto;
import server.inuappcenter.kr.data.dto.request.FaqBoardRequestDto;
import server.inuappcenter.kr.data.dto.response.BoardResponseDto;
import server.inuappcenter.kr.service.boardService.AdditionalBoardService;
import server.inuappcenter.kr.service.boardService.BoardService;
import server.inuappcenter.kr.service.boardService.FaqBoardService;

import javax.validation.Valid;
import java.util.List;

@RestController
@RequiredArgsConstructor
@RequestMapping("/faqs")
@Tag(name = "[FAQ] 질의응답 게시판")
@Slf4j
public class FaqController {
private final BoardService boardService;
private final FaqBoardService faqBoardService;
private final AdditionalBoardService additionalBoardService;

public FaqController(BoardService boardService, @Qualifier(value = "FaqBoardServiceImpl") AdditionalBoardService additionalBoardService) {
this.boardService = boardService;
this.additionalBoardService = additionalBoardService;
}

@Operation(summary = "FAQ 한 개 가져오기", description = "조회할 faq_id를 입력해주세요")
@GetMapping("public/{id}")
Expand All @@ -34,7 +38,7 @@ public ResponseEntity<BoardResponseDto> getFaqBoard(final @PathVariable("id") Lo
@Operation(summary = "FAQ 전체 가져오기", description = "전체 FAQ 목록을 가져옵니다.")
@GetMapping("public/all-faq-boards")
public ResponseEntity<List<BoardResponseDto>> getFaqBoardList() {
return ResponseEntity.status(HttpStatus.OK).body(faqBoardService.findFaqBoardList());
return ResponseEntity.status(HttpStatus.OK).body(additionalBoardService.findBoardList());
}

@Operation(summary = "FAQ 한 개 작성", description = "저장할 FAQ JSON을 보내주세요")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
Expand All @@ -13,21 +13,25 @@
import server.inuappcenter.kr.data.dto.request.IntroBoardRequestDto;
import server.inuappcenter.kr.data.dto.response.BoardResponseDto;
import server.inuappcenter.kr.exception.customExceptions.CustomModelAttributeException;
import server.inuappcenter.kr.service.boardService.AdditionalBoardService;
import server.inuappcenter.kr.service.boardService.BoardService;
import server.inuappcenter.kr.service.boardService.IntroBoardService;

import javax.validation.Valid;
import java.util.List;
import java.util.Objects;

@RestController
@RequiredArgsConstructor
@RequestMapping("/introduction-board")
@Tag(name = "[Intro] 애플리케이션 소개 게시판")
public class IntroBoardController {

public final BoardService boardService;
public final IntroBoardService introBoardService;
public final AdditionalBoardService additionalBoardService;

public IntroBoardController(BoardService boardService, @Qualifier(value = "IntroBoardServiceImpl") AdditionalBoardService additionalBoardService) {
this.boardService = boardService;
this.additionalBoardService = additionalBoardService;
}

@Operation(summary = "게시글 (1개) 가져오기", description = "가져올 게시글의 id를 입력해주세요")
@Parameter(name = "id", description = "게시판 id", required = true)
Expand Down Expand Up @@ -56,7 +60,7 @@ public ResponseEntity<CommonResponseDto> deleteBoard(final @PathVariable("id") L
@Operation(summary = "앱 소개 글 (전체) 조회", description = "앱 소개 글을 모두 반환합니다.")
@GetMapping("/public/all-boards-contents")
public ResponseEntity<List<BoardResponseDto>> findAllBoard() {
return ResponseEntity.status(HttpStatus.OK).body(introBoardService.findIntroBoardList());
return ResponseEntity.status(HttpStatus.OK).body(additionalBoardService.findBoardList());
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
Expand All @@ -13,20 +13,24 @@
import server.inuappcenter.kr.data.dto.request.PhotoBoardRequestDto;
import server.inuappcenter.kr.data.dto.response.BoardResponseDto;
import server.inuappcenter.kr.exception.customExceptions.CustomModelAttributeException;
import server.inuappcenter.kr.service.boardService.AdditionalBoardService;
import server.inuappcenter.kr.service.boardService.BoardService;
import server.inuappcenter.kr.service.boardService.PhotoBoardService;

import javax.validation.Valid;
import java.util.List;
import java.util.Objects;

@RestController
@RequiredArgsConstructor
@RequestMapping("/photo-board")
@Tag(name = "[Photo] 사진 게시판")
public class PhotoBoardController {
private final BoardService boardService;
private final PhotoBoardService photoBoardService;
private final AdditionalBoardService additionalBoardService;

public PhotoBoardController(BoardService boardService, @Qualifier(value = "PhotoBoardServiceImpl") AdditionalBoardService additionalBoardService) {
this.boardService = boardService;
this.additionalBoardService = additionalBoardService;
}

@Operation(summary = "게시글 (1개) 가져오기", description = "가져올 게시글의 id를 입력해주세요")
@Parameter(name = "id", description = "게시판 id")
Expand Down Expand Up @@ -69,7 +73,7 @@ public ResponseEntity<CommonResponseDto> deleteBoard(final @PathVariable("id") L
@Operation(summary = "사진 글 (전체) 조회", description = "사진 글을 모두 반환합니다.")
@GetMapping("/public/all-boards-contents")
public ResponseEntity<List<BoardResponseDto>> findAllBoard() {
return ResponseEntity.status(HttpStatus.OK).body(photoBoardService.findPhotoBoardList());
return ResponseEntity.status(HttpStatus.OK).body(additionalBoardService.findBoardList());
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public Member (MemberRequestDto memberRequestDto) {
this.gitRepositoryLink = memberRequestDto.getGitRepositoryLink();
}

public void setMember(Long id, MemberRequestDto memberRequestDto) {
public void updateMember(Long id, MemberRequestDto memberRequestDto) {
this.id = id;
this.name = memberRequestDto.getName();
this.description = memberRequestDto.getDescription();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public MemberResponseDto saveMember(MemberRequestDto memberRequestDto) {
@Transactional
public MemberResponseDto updateMember(Long id, MemberRequestDto memberRequestDto) {
Member found_member = memberRepository.findById(id).orElseThrow(() -> new CustomNotFoundException("The requested ID was not found."));
found_member.setMember(id, memberRequestDto);
found_member.updateMember(id, memberRequestDto);
Member saved_member = memberRepository.save(found_member);
return MemberResponseDto.entityToDto(saved_member);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package server.inuappcenter.kr.service.boardService;

import server.inuappcenter.kr.data.dto.response.BoardResponseDto;

import java.util.List;

public interface AdditionalBoardService {
List<BoardResponseDto> findBoardList();
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package server.inuappcenter.kr.service.boardService;
package server.inuappcenter.kr.service.boardService.impl;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -7,20 +7,22 @@
import server.inuappcenter.kr.data.domain.board.Board;
import server.inuappcenter.kr.data.dto.response.BoardResponseDto;
import server.inuappcenter.kr.data.repository.FaqRepository;
import server.inuappcenter.kr.service.boardService.AdditionalBoardService;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;

@Service
@Service("FaqBoardServiceImpl")
@RequiredArgsConstructor
@Slf4j
public class FaqBoardService {
public class FaqBoardServiceImpl implements AdditionalBoardService {
private final FaqRepository faqRepository;
private final HttpServletRequest request;

@Override
@Transactional(readOnly = true)
public List<BoardResponseDto> findFaqBoardList() {
public List<BoardResponseDto> findBoardList() {
List<BoardResponseDto> responseDtoList= new ArrayList<>();
for (Board board : faqRepository.findAll()) {
responseDtoList.add(board.createResponse(request));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
package server.inuappcenter.kr.service.boardService;
package server.inuappcenter.kr.service.boardService.impl;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import server.inuappcenter.kr.data.domain.board.Board;
import server.inuappcenter.kr.data.dto.response.BoardResponseDto;
import server.inuappcenter.kr.data.repository.IntroBoardRepository;
import server.inuappcenter.kr.service.boardService.AdditionalBoardService;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;

@Service
@Service("IntroBoardServiceImpl")
@RequiredArgsConstructor
@Slf4j
public class IntroBoardService {
public class IntroBoardServiceImpl implements AdditionalBoardService {
private final IntroBoardRepository introBoardRepository;
private final HttpServletRequest request;

@Override
@Transactional(readOnly = true)
public List<BoardResponseDto> findIntroBoardList() {
public List<BoardResponseDto> findBoardList() {
List<BoardResponseDto> responseDtoList= new ArrayList<>();
for (Board board : introBoardRepository.findAll()) {
responseDtoList.add(board.createResponse(request));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package server.inuappcenter.kr.service.boardService;
package server.inuappcenter.kr.service.boardService.impl;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -7,20 +7,22 @@
import server.inuappcenter.kr.data.domain.board.Board;
import server.inuappcenter.kr.data.dto.response.BoardResponseDto;
import server.inuappcenter.kr.data.repository.PhotoBoardRepository;
import server.inuappcenter.kr.service.boardService.AdditionalBoardService;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;

@Service
@Service("PhotoBoardServiceImpl")
@RequiredArgsConstructor
@Slf4j
public class PhotoBoardService {
public class PhotoBoardServiceImpl implements AdditionalBoardService {
private final PhotoBoardRepository photoBoardRepository;
private final HttpServletRequest request;

@Override
@Transactional(readOnly = true)
public List<BoardResponseDto> findPhotoBoardList() {
public List<BoardResponseDto> findBoardList() {
List<BoardResponseDto> responseDtoList= new ArrayList<>();
for (Board board : photoBoardRepository.findAll()) {
responseDtoList.add(board.createResponse(request));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package server.inuappcenter.kr.service;
package server.inuappcenter.kr.service.impl;

import lombok.RequiredArgsConstructor;
import org.springframework.security.core.userdetails.UserDetails;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import server.inuappcenter.kr.data.dto.request.FaqBoardRequestDto;
import server.inuappcenter.kr.data.dto.response.FaqBoardResponseDto;
import server.inuappcenter.kr.service.boardService.BoardService;
import server.inuappcenter.kr.service.boardService.FaqBoardService;
import server.inuappcenter.kr.service.boardService.impl.FaqBoardServiceImpl;

import java.time.LocalDateTime;

Expand All @@ -42,7 +42,7 @@ public class FaqControllerTest {
BoardService boardService;

@MockBean
FaqBoardService faqBoardService;
FaqBoardServiceImpl faqBoardServiceImpl;

private final Long givenId = 1L;
FaqBoardRequestDto givenDto = new FaqBoardRequestDto("서버", "질문입니다.", "답변입니다.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import server.inuappcenter.kr.data.dto.request.PhotoBoardRequestDto;
import server.inuappcenter.kr.data.dto.response.PhotoBoardResponseDto;
import server.inuappcenter.kr.service.boardService.BoardService;
import server.inuappcenter.kr.service.boardService.PhotoBoardService;
import server.inuappcenter.kr.service.boardService.impl.PhotoBoardServiceImpl;

import java.time.LocalDateTime;
import java.util.HashMap;
Expand All @@ -39,7 +39,7 @@ public class PhotoBoardControllerTest {
@MockBean
private BoardService boardService;
@MockBean
private PhotoBoardService photoBoardService;
private PhotoBoardServiceImpl photoBoardServiceImpl;


public Map<Long, String> makeMockImageMap() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public void updateMemberTest() {
"김길동", "안녕하세요 제 이름은...", "https://...", "https://...",
"[email protected]", "https://...");
given(memberRepository.findById(givenId)).willReturn(Optional.ofNullable(expectedEntity));
expectedEntity.setMember(givenId, givenDto);
expectedEntity.updateMember(givenId, givenDto);
given(memberRepository.save(Mockito.any(Member.class))).willReturn(expectedEntity);
// when
MemberResponseDto result = memberService.updateMember(givenId,givenDto);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@
import server.inuappcenter.kr.data.repository.ImageRepository;
import server.inuappcenter.kr.data.repository.PhotoBoardRepository;
import server.inuappcenter.kr.service.boardService.BoardService;
import server.inuappcenter.kr.service.boardService.PhotoBoardService;
import server.inuappcenter.kr.service.boardService.impl.PhotoBoardServiceImpl;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@ExtendWith(MockitoExtension.class)
public class PhotoBoardServiceTest{
public class PhotoBoardServiceImplTest {
@Mock
private BoardService boardService;
@Mock
Expand All @@ -30,7 +30,7 @@ public class PhotoBoardServiceTest{
@Mock
private HttpServletRequest request = new MockHttpServletRequest();
@InjectMocks
private PhotoBoardService photoBoardService;
private PhotoBoardServiceImpl photoBoardServiceImpl;

private final Long givenId = 1L;

Expand Down

0 comments on commit d35c9ca

Please sign in to comment.