Skip to content

Commit

Permalink
refactor: 불필요한 DTO 반환 로직 제거
Browse files Browse the repository at this point in the history
  • Loading branch information
hangillee committed Oct 4, 2024
1 parent c26fbf5 commit 140efb6
Show file tree
Hide file tree
Showing 9 changed files with 39 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import kr.touroot.travelogue.dto.request.TravelogueFilterRequest;
import kr.touroot.travelogue.dto.request.TravelogueRequest;
import kr.touroot.travelogue.dto.request.TravelogueSearchRequest;
import kr.touroot.travelogue.dto.response.TravelogueCreateResponse;
import kr.touroot.travelogue.dto.response.TravelogueLikeResponse;
import kr.touroot.travelogue.dto.response.TravelogueResponse;
import kr.touroot.travelogue.dto.response.TravelogueSimpleResponse;
Expand Down Expand Up @@ -56,14 +57,13 @@ public class TravelogueController {
),
})
@PostMapping
public ResponseEntity<TravelogueResponse> createTravelogue(
public ResponseEntity<Void> createTravelogue(
@Valid MemberAuth member,
@Valid @RequestBody TravelogueRequest request
) {
TravelogueResponse response = travelogueFacadeService.createTravelogue(member, request);
TravelogueCreateResponse response = travelogueFacadeService.createTravelogue(member, request);

return ResponseEntity.created(URI.create("/api/v1/travelogues/" + response.id()))
.body(response);
return ResponseEntity.created(URI.create("/api/v1/travelogues/" + response.id())).build();
}

@Operation(summary = "여행기 좋아요")
Expand Down Expand Up @@ -188,12 +188,13 @@ public ResponseEntity<Page<TravelogueSimpleResponse>> findTraveloguesByKeyword(
)
})
@PutMapping("/{id}")
public ResponseEntity<TravelogueResponse> updateTravelogue(
public ResponseEntity<Void> updateTravelogue(
@PathVariable Long id,
@Valid MemberAuth member,
@Valid @RequestBody TravelogueRequest request
) {
return ResponseEntity.ok(travelogueFacadeService.updateTravelogue(id, member, request));
travelogueFacadeService.updateTravelogue(id, member, request);
return ResponseEntity.ok().build();
}

@Operation(summary = "여행기 삭제")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package kr.touroot.travelogue.dto.response;

import io.swagger.v3.oas.annotations.media.Schema;

public record TravelogueCreateResponse(
@Schema(description = "생성된 여행기 id", example = "1")
Long id
) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import kr.touroot.travelogue.dto.request.TraveloguePlaceRequest;
import kr.touroot.travelogue.dto.request.TravelogueRequest;
import kr.touroot.travelogue.dto.request.TravelogueSearchRequest;
import kr.touroot.travelogue.dto.response.TravelogueCreateResponse;
import kr.touroot.travelogue.dto.response.TravelogueDayResponse;
import kr.touroot.travelogue.dto.response.TravelogueLikeResponse;
import kr.touroot.travelogue.dto.response.TraveloguePlaceResponse;
Expand All @@ -42,12 +43,12 @@ public class TravelogueFacadeService {
private final MemberService memberService;

@Transactional
public TravelogueResponse createTravelogue(MemberAuth member, TravelogueRequest request) {
public TravelogueCreateResponse createTravelogue(MemberAuth member, TravelogueRequest request) {
Member author = memberService.getById(member.memberId());
Travelogue travelogue = travelogueService.createTravelogue(author, request);
List<TagResponse> tags = travelogueTagService.createTravelogueTags(travelogue, request.tags());
TravelogueLikeResponse like = travelogueLikeService.findLikeByTravelogueAndLiker(travelogue, author);
return TravelogueResponse.of(travelogue, createDays(request.days(), travelogue), tags, like);
travelogueTagService.createTravelogueTags(travelogue, request.tags());
travelogueLikeService.findLikeByTravelogueAndLiker(travelogue, author);
return new TravelogueCreateResponse(travelogue.getId());
}

private List<TravelogueDayResponse> createDays(List<TravelogueDayRequest> requests, Travelogue travelogue) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import kr.touroot.global.auth.dto.MemberAuth;
import kr.touroot.global.exception.dto.ExceptionResponse;
import kr.touroot.travelplan.dto.request.TodoStatusUpdateRequest;
import kr.touroot.travelplan.dto.response.PlanPlaceTodoResponse;
import kr.touroot.travelplan.service.PlaceTodoService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
Expand Down Expand Up @@ -46,12 +45,12 @@ public class PlaceTodoController {
)
})
@PatchMapping("/{id}")
public ResponseEntity<PlanPlaceTodoResponse> updateTodo(
public ResponseEntity<Void> updateTodo(
@PathVariable Long id,
@Valid @RequestBody TodoStatusUpdateRequest updateRequest,
MemberAuth memberAuth
) {
PlanPlaceTodoResponse updatedTodoResponse = placeTodoService.updateTodoStatus(id, memberAuth, updateRequest);
return ResponseEntity.ok(updatedTodoResponse);
placeTodoService.updateTodoStatus(id, memberAuth, updateRequest);
return ResponseEntity.ok().build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,12 @@ public class TravelPlanController {
)
})
@PostMapping
public ResponseEntity<PlanCreateResponse> createTravelPlan(
public ResponseEntity<Void> createTravelPlan(
@Valid @RequestBody PlanRequest request,
MemberAuth memberAuth
) {
PlanCreateResponse data = travelPlanService.createTravelPlan(request, memberAuth);
return ResponseEntity.created(URI.create("/api/v1/travel-plans/" + data.id()))
.body(data);
return ResponseEntity.created(URI.create("/api/v1/travel-plans/" + data.id())).build();
}

@Operation(summary = "여행 계획 상세 조회")
Expand Down Expand Up @@ -106,12 +105,13 @@ public ResponseEntity<PlanResponse> readTravelPlan(
)
})
@PutMapping("/{id}")
public ResponseEntity<PlanCreateResponse> updateTravelPlan(
public ResponseEntity<Void> updateTravelPlan(
@PathVariable Long id,
@Valid MemberAuth memberAuth,
@Valid @RequestBody PlanRequest request
) {
return ResponseEntity.ok(travelPlanService.updateTravelPlan(id, memberAuth, request));
travelPlanService.updateTravelPlan(id, memberAuth, request);
return ResponseEntity.ok().build();
}

@Operation(summary = "여행 계획 삭제")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,7 @@ void findTraveloguesByKeywordWithoutSearchType() {

@DisplayName("여행기를 수정한다.")
@Test
void updateTravelogue() throws JsonProcessingException {
void updateTravelogue() {
Mockito.when(s3Provider.copyImageToPermanentStorage(any(String.class)))
.thenReturn(TravelogueResponseFixture.getUpdatedTravelogueResponse().thumbnail());

Expand All @@ -458,16 +458,14 @@ void updateTravelogue() throws JsonProcessingException {
saveImages(days);

TravelogueRequest request = TravelogueRequestFixture.getUpdateTravelogueRequest(days);
TravelogueResponse response = TravelogueResponseFixture.getUpdatedTravelogueResponse();

RestAssured.given().log().all()
.contentType(ContentType.JSON)
.header(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken)
.body(request)
.when().put("/api/v1/travelogues/" + travelogue.getId())
.then().log().all()
.statusCode(200)
.body(is(objectMapper.writeValueAsString(response)));
.statusCode(200);
}

private List<TravelogueDayRequest> getUpdateTravelogueDayRequests() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,7 @@ void createTravelogue() {
MemberAuth memberAuth = new MemberAuth(1L);
TravelogueRequest request = TravelogueRequestFixture.getTravelogueRequest(days);

assertThat(service.createTravelogue(memberAuth, request))
.isEqualTo(TravelogueResponseFixture.getTravelogueResponse());
assertThat(service.createTravelogue(memberAuth, request).id()).isEqualTo(1L);
}

private void saveImages(List<TravelogueDayRequest> days) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import static org.hamcrest.Matchers.is;

import com.fasterxml.jackson.databind.ObjectMapper;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import kr.touroot.authentication.infrastructure.JwtTokenProvider;
Expand All @@ -23,7 +22,6 @@
@AcceptanceTest
class PlaceTodoControllerTest {

private final ObjectMapper objectMapper;
private final DatabaseCleaner databaseCleaner;
private final JwtTokenProvider jwtTokenProvider;
private final TravelPlanTestHelper testHelper;
Expand All @@ -33,9 +31,8 @@ class PlaceTodoControllerTest {
private Member member;

@Autowired
public PlaceTodoControllerTest(ObjectMapper objectMapper, DatabaseCleaner databaseCleaner,
JwtTokenProvider jwtTokenProvider, TravelPlanTestHelper testHelper) {
this.objectMapper = objectMapper;
public PlaceTodoControllerTest(DatabaseCleaner databaseCleaner, JwtTokenProvider jwtTokenProvider,
TravelPlanTestHelper testHelper) {
this.databaseCleaner = databaseCleaner;
this.jwtTokenProvider = jwtTokenProvider;
this.testHelper = testHelper;
Expand Down Expand Up @@ -63,8 +60,7 @@ void updateTodoStatus() {
.when().log().all()
.patch("/api/v1/todos/" + 1L)
.then().log().all()
.statusCode(200)
.body("checked", is(true));
.statusCode(200);
}

@DisplayName("존재하지 않는 TODO의 체크 상태를 업데이트 하려는 경우 예외가 발생한다")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ void setUp() {
accessToken = jwtTokenProvider.createToken(member.getId()).accessToken();
}

@DisplayName("여행 계획 컨트롤러는 생성 요청이 들어올 때 200을 응답한다.")
@DisplayName("여행 계획 컨트롤러는 생성 요청이 들어올 때 201을 응답한다.")
@Test
void createTravelPlan() {
// given
Expand All @@ -87,8 +87,8 @@ void createTravelPlan() {
.when().log().all()
.post("/api/v1/travel-plans")
.then().log().all()
.statusCode(201)
.body("id", is(1));
.headers("Location", "/api/v1/travel-plans/1")
.statusCode(201);
}

@DisplayName("여행 계획 컨트롤러는 지난 날짜로 생성 요청이 들어올 때 400을 응답한다.")
Expand Down Expand Up @@ -272,8 +272,7 @@ void updateTravelPlan() {
.body(request)
.when().put("/api/v1/travel-plans/" + travelPlan.getId())
.then().log().all()
.statusCode(200)
.body("id", is(1));
.statusCode(200);
}

@DisplayName("존재하지 않는 여행 계획 수정시 400를 응답한다.")
Expand Down

0 comments on commit 140efb6

Please sign in to comment.