Skip to content

Commit

Permalink
검색 API 분리 (#577)
Browse files Browse the repository at this point in the history
* [feat] 검색 API 분리

* [test] 검색 TC 수정
  • Loading branch information
jjddhh authored Jul 9, 2023
1 parent 6b7eeea commit 454360e
Show file tree
Hide file tree
Showing 18 changed files with 423 additions and 85 deletions.
7 changes: 5 additions & 2 deletions src/docs/asciidoc/Search-API.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,8 @@
== Search API

[[Search-검색]]
=== Search 검색
operation::search-controller-test/검색[snippets='http-request,request-headers,request-parameters,http-response,response-fields']
=== Search 일기 검색
operation::search-controller-test/일기_검색[snippets='http-request,request-headers,request-parameters,http-response,response-fields']

=== Search 회고 검색
operation::search-controller-test/회고_검색[snippets='http-request,request-headers,request-parameters,http-response,response-fields']
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package com.nanal.backend.domain.search.controller;

import com.nanal.backend.domain.search.dto.req.ReqSearchDto;
import com.nanal.backend.domain.search.dto.resp.RespSearchDto;
import com.nanal.backend.domain.search.dto.resp.RespSearchDiaryDto;
import com.nanal.backend.domain.search.dto.resp.RespSearchRetrospectDto;
import com.nanal.backend.domain.search.service.SearchService;
import com.nanal.backend.global.exception.customexception.BindingResultException;
import com.nanal.backend.global.response.CommonResponse;
Expand All @@ -17,18 +18,29 @@
@RequiredArgsConstructor
@RestController
public class SearchController {

private final SearchService searchService;

@GetMapping("/search")
public CommonResponse<?> search(@AuthenticationPrincipal User user,
@GetMapping("/search/diary")
public CommonResponse<?> searchDiary(@AuthenticationPrincipal User user,
@Valid ReqSearchDto reqSearchDto,
BindingResult bindingResult) {

if(bindingResult.hasErrors()) throw new BindingResultException(bindingResult.getFieldErrors());


RespSearchDiaryDto respSearchDiaryDto = searchService.searchDiary(user.getSocialId(), reqSearchDto);
return new CommonResponse<>(respSearchDiaryDto);
}

@GetMapping("/search/retrospect")
public CommonResponse<?> searchRetrospect(@AuthenticationPrincipal User user,
@Valid ReqSearchDto reqSearchDto,
BindingResult bindingResult) {

if(bindingResult.hasErrors()) throw new BindingResultException(bindingResult.getFieldErrors());


RespSearchDto respSearchDto = searchService.search(user.getSocialId() ,reqSearchDto);
return new CommonResponse<>(respSearchDto);
RespSearchRetrospectDto respSearchRetrospectDto = searchService.searchRetrospect(user.getSocialId(), reqSearchDto);
return new CommonResponse<>(respSearchRetrospectDto);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
@NoArgsConstructor
@Data
public class DiaryInfo {

private Boolean existMore = false;
private Integer nextDiaryCount;
private List<DiaryDto> diaryDtoList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
@NoArgsConstructor
@Data
public class RetrospectInfo {

private Boolean existMore = false;
private Integer nextRetrospectCount;
private List<RetrospectDto> retrospectDtoList;
Expand All @@ -33,7 +32,6 @@ public RetrospectInfo(List<Retrospect> retrospectList, Integer nextRetrospectCou
.collect(Collectors.toList());
}


@Builder
@AllArgsConstructor
@NoArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.nanal.backend.domain.search.dto.resp;

import com.nanal.backend.domain.diary.entity.Diary;
import com.nanal.backend.domain.search.dto.DiaryInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class RespSearchDiaryDto {
private DiaryInfo diaryInfo;

public RespSearchDiaryDto(String searchWord,
List<Diary> diaryList,
Integer nextDiaryCount) {
this.diaryInfo = new DiaryInfo(diaryList, nextDiaryCount, searchWord);
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package com.nanal.backend.domain.search.dto.resp;

import com.nanal.backend.domain.diary.entity.Diary;
import com.nanal.backend.domain.retrospect.entity.Retrospect;
import com.nanal.backend.domain.search.dto.DiaryInfo;
import com.nanal.backend.domain.search.dto.RetrospectInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
Expand All @@ -15,18 +13,12 @@
@AllArgsConstructor
@NoArgsConstructor
@Data
public class RespSearchDto {

private DiaryInfo diaryInfo;

public class RespSearchRetrospectDto {
private RetrospectInfo retrospectInfo;

public RespSearchDto(String searchWord,
List<Diary> diaryList,
List<Retrospect> retrospectList,
Integer nextDiaryCount,
Integer nextRetrospectCount) {
this.diaryInfo = new DiaryInfo(diaryList, nextDiaryCount, searchWord);
public RespSearchRetrospectDto(String searchWord,
List<Retrospect> retrospectList,
Integer nextRetrospectCount) {
this.retrospectInfo = new RetrospectInfo(retrospectList, nextRetrospectCount, searchWord);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
import com.nanal.backend.domain.diary.entity.Diary;
import com.nanal.backend.domain.retrospect.entity.Retrospect;
import com.nanal.backend.domain.search.dto.req.ReqSearchDto;
import com.nanal.backend.domain.search.dto.resp.RespSearchDto;
import com.nanal.backend.domain.search.dto.resp.RespSearchDiaryDto;
import com.nanal.backend.domain.search.dto.resp.RespSearchRetrospectDto;
import com.nanal.backend.domain.search.repository.SearchDiaryRepository;
import com.nanal.backend.domain.search.repository.SearchRetrospectRepository;
import io.micrometer.core.annotation.Timed;
Expand All @@ -20,22 +21,27 @@
@RequiredArgsConstructor
@Service
public class SearchService {

private final MemberRepository memberRepository;
private final SearchDiaryRepository searchDiaryRepository;
private final SearchRetrospectRepository searchRetrospectRepository;

public RespSearchDto search(String socialId, ReqSearchDto reqSearchDto) {
public RespSearchDiaryDto searchDiary(String socialId, ReqSearchDto reqSearchDto) {
Member member = memberRepository.findMember(socialId);

// 일기 검색
List<Diary> diaryList = searchDiaryRepository.searchDiary(reqSearchDto, member.getMemberId());
Integer nextDiaryCount = searchDiaryRepository.countLeftDiary(reqSearchDto, member.getMemberId());

return new RespSearchDiaryDto(reqSearchDto.getSearchWord(), diaryList, nextDiaryCount);
}

public RespSearchRetrospectDto searchRetrospect(String socialId, ReqSearchDto reqSearchDto) {
Member member = memberRepository.findMember(socialId);

// 회고 검색
List<Retrospect> retrospectList = searchRetrospectRepository.searchRetrospect(reqSearchDto, member.getMemberId());
Integer nextRetrospectCount = searchRetrospectRepository.countLeftRetrospect(reqSearchDto, member.getMemberId());

return new RespSearchDto(reqSearchDto.getSearchWord(), diaryList, retrospectList, nextDiaryCount, nextRetrospectCount);
return new RespSearchRetrospectDto(reqSearchDto.getSearchWord(), retrospectList, nextRetrospectCount);
}
}
2 changes: 1 addition & 1 deletion src/main/resources/static/docs/Alarm-API.html
Original file line number Diff line number Diff line change
Expand Up @@ -648,7 +648,7 @@ <h4 id="Alarm-회고-알림-변경_response_fields">Response fields</h4>
<div id="footer">
<div id="footer-text">
Version 0.0.1-SNAPSHOT<br>
Last updated 2023-07-04 17:05:11 +0900
Last updated 2023-05-24 23:34:58 +0900
</div>
</div>
</body>
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/static/docs/Auth-API.html
Original file line number Diff line number Diff line change
Expand Up @@ -1029,7 +1029,7 @@ <h4 id="Auth-토큰-재발급_response_fields">Response fields</h4>
<div id="footer">
<div id="footer-text">
Version 0.0.1-SNAPSHOT<br>
Last updated 2023-07-04 17:05:11 +0900
Last updated 2023-04-18 10:42:19 +0900
</div>
</div>
</body>
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/static/docs/Diary-API.html
Original file line number Diff line number Diff line change
Expand Up @@ -1305,7 +1305,7 @@ <h4 id="Diary-감정어-조회_response_fields">Response fields</h4>
<div id="footer">
<div id="footer-text">
Version 0.0.1-SNAPSHOT<br>
Last updated 2023-07-04 17:05:11 +0900
Last updated 2023-04-18 10:42:19 +0900
</div>
</div>
</body>
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/static/docs/MyPage-API.html
Original file line number Diff line number Diff line change
Expand Up @@ -1275,7 +1275,7 @@ <h4 id="MyPage-회원탈퇴_response_fields">Response fields</h4>
<div id="footer">
<div id="footer-text">
Version 0.0.1-SNAPSHOT<br>
Last updated 2023-07-04 17:05:11 +0900
Last updated 2023-04-18 10:42:19 +0900
</div>
</div>
</body>
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/static/docs/OnBoarding-API.html
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,7 @@ <h4 id="OnBoarding-온보딩-회고일-변경_response_fields">Response fields</
<div id="footer">
<div id="footer-text">
Version 0.0.1-SNAPSHOT<br>
Last updated 2023-07-04 17:05:11 +0900
Last updated 2023-04-18 10:42:19 +0900
</div>
</div>
</body>
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/static/docs/Overview.html
Original file line number Diff line number Diff line change
Expand Up @@ -659,7 +659,7 @@ <h3 id="Overview-Retrospect-status-codes">Retrospect Status Codes</h3>
<div id="footer">
<div id="footer-text">
Version 0.0.1-SNAPSHOT<br>
Last updated 2023-07-04 17:05:11 +0900
Last updated 2023-04-18 10:42:19 +0900
</div>
</div>
</body>
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/static/docs/Retrospect-API.html
Original file line number Diff line number Diff line change
Expand Up @@ -2017,7 +2017,7 @@ <h4 id="Retrospect-회고-삭제_response_fields">Response fields</h4>
<div id="footer">
<div id="footer-text">
Version 0.0.1-SNAPSHOT<br>
Last updated 2023-07-04 17:05:11 +0900
Last updated 2023-04-18 10:42:19 +0900
</div>
</div>
</body>
Expand Down
Loading

0 comments on commit 454360e

Please sign in to comment.