Skip to content

Commit 2730b74

Browse files
authored
Merge pull request #34 from KONKUK-MAP-Service/feat-spot
💡 [feat] : 장소검색 기능 구현 #34
2 parents 6967fdc + 5ccbc01 commit 2730b74

File tree

3 files changed

+27
-8
lines changed

3 files changed

+27
-8
lines changed

src/main/java/com/cona/KUsukKusuk/spot/controller/SpotController.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.cona.KUsukKusuk.spot.dto.SpotDeleteResponse;
77
import com.cona.KUsukKusuk.spot.dto.SpotDetailResponse;
88
import com.cona.KUsukKusuk.spot.dto.SpotGetResponse;
9+
import com.cona.KUsukKusuk.spot.dto.SpotSearchRequest;
910
import com.cona.KUsukKusuk.spot.dto.SpotUpdatResponse;
1011
import com.cona.KUsukKusuk.spot.dto.SpotUpdateRequest;
1112
import com.cona.KUsukKusuk.spot.dto.SpotUploadRequest;
@@ -91,11 +92,13 @@ public HttpResponse<List<CommentResponse>> getSpotComments(@PathVariable Long sp
9192
return HttpResponse.okBuild(comments);
9293
}
9394

94-
95-
96-
97-
98-
95+
@GetMapping("/search")
96+
@Operation(summary = "장소 검색", description = "장소를 검색합니다.")
97+
public HttpResponse<List<SpotDetailResponse>> searchSpots(@RequestParam(required = false) String searchText) {
98+
SpotSearchRequest searchRequest = new SpotSearchRequest(searchText);
99+
List<SpotDetailResponse> searchResults = spotService.searchSpots(searchRequest);
100+
return HttpResponse.okBuild(searchResults);
101+
}
99102

100103
}
101104

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.cona.KUsukKusuk.spot.dto;
2+
3+
import lombok.Builder;
4+
5+
@Builder
6+
public record SpotSearchRequest(
7+
String searchText
8+
) {
9+
}

src/main/java/com/cona/KUsukKusuk/spot/service/SpotService.java

+10-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.cona.KUsukKusuk.spot.dto.CommentResponse;
1313
import com.cona.KUsukKusuk.spot.dto.SpotDetailResponse;
1414
import com.cona.KUsukKusuk.spot.dto.SpotGetResponse;
15+
import com.cona.KUsukKusuk.spot.dto.SpotSearchRequest;
1516
import com.cona.KUsukKusuk.spot.dto.SpotUpdateRequest;
1617
import com.cona.KUsukKusuk.spot.dto.SpotUploadRequest;
1718
import com.cona.KUsukKusuk.spot.exception.SpotNotFoundException;
@@ -200,11 +201,17 @@ private CommentResponse mapToCommentResponse(Comment comment, boolean currentUse
200201
comment.getUser().getProfileimage()
201202
);
202203
}
204+
public List<SpotDetailResponse> searchSpots(SpotSearchRequest searchRequest) {
205+
List<Spot> spots = spotRepository.findAll();
203206

207+
String username = SecurityContextHolder.getContext().getAuthentication().getName();
204208

205-
206-
207-
209+
return spots.stream()
210+
.filter(spot -> spot.getSpotName().contains(searchRequest.searchText())
211+
|| spot.getReview().contains(searchRequest.searchText()))
212+
.map(spot -> SpotDetailResponse.fromSpot(spot, !username.equals("anonymousUser"), !username.equals("anonymousUser")))
213+
.collect(Collectors.toList());
214+
}
208215

209216

210217
}

0 commit comments

Comments
 (0)