Skip to content

Commit

Permalink
Feat. 주변 예약 가능 상품 조회 API
Browse files Browse the repository at this point in the history
  • Loading branch information
Miensoap authored and soyesenna committed Jun 5, 2024
1 parent 3bf3d6d commit c944679
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public class AccomodationController {

@GetMapping
public List<AccomodationEntity> findAll() {
return accomodationService.findAllAccomodations();
return accomodationService.findAllAccommodations();
}

@GetMapping("/location")
Expand All @@ -31,7 +31,10 @@ public List<AccomodationListResponse> findNeighbor(
@RequestParam double latitude,
@RequestParam double distance) {

return accomodationService.findNearbyAccomodations(longitude, latitude, distance);
return accomodationService.findNearbyAccommodations(longitude, latitude, distance)
.stream()
.map(AccomodationListResponse::of)
.toList();
}

@PostMapping
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,13 @@ public class AccomodationService {
private final GeometryHelper geometryHelper;
private final AccomodationRepository accomodationRepository;

public List<AccomodationListResponse> findNearbyAccomodations(double longitude, double latitude, double distance) {
public List<AccomodationEntity> findNearbyAccommodations(double longitude, double latitude, double distance) {
Point center = geometryHelper.getPoint(longitude, latitude);

return accomodationRepository.findByLocationWithinDistance(center, distance)
.stream()
.map(AccomodationListResponse::of)
.toList();
return accomodationRepository.findByLocationWithinDistance(center, distance);
}

public List<AccomodationEntity> findAllAccomodations() {
public List<AccomodationEntity> findAllAccommodations() {
return accomodationRepository.findAll();
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,34 @@
package team07.airbnb.domain.product;

import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import team07.airbnb.domain.accommodation.AccomodationService;
import team07.airbnb.domain.product.dto.ProductListResponse;

import java.time.LocalDate;
import java.util.List;

@RequestMapping("/products")
@RestController
@RequiredArgsConstructor
public class ProductController {

private final AccomodationService accomodationService;
private final ProductService productService;

@GetMapping("/available")
public List<ProductListResponse> findNearByAvailableProducts(
@RequestParam LocalDate checkIn,
@RequestParam LocalDate checkOut,
@RequestParam double longitude,
@RequestParam double latitude,
@RequestParam double distance) {

return productService.findAvailableInDateRange(
accomodationService.findNearbyAccommodations(longitude, latitude, distance),
checkIn, checkOut);
}
}

0 comments on commit c944679

Please sign in to comment.