From 7ba08dc25ddca222857f21e6b184f6822e8d95d3 Mon Sep 17 00:00:00 2001 From: lukaDjordjevic01 <96748944+lukaDjordjevic01@users.noreply.github.com> Date: Tue, 17 Feb 2026 11:34:40 +0100 Subject: [PATCH] feat: Add endpoint for fetching all accommodations. --- .../controller/AccommodationController.java | 8 ++++++++ .../accommodation/service/AccommodationService.java | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/main/java/com/devoops/accommodation/controller/AccommodationController.java b/src/main/java/com/devoops/accommodation/controller/AccommodationController.java index 805971c..9e3f900 100644 --- a/src/main/java/com/devoops/accommodation/controller/AccommodationController.java +++ b/src/main/java/com/devoops/accommodation/controller/AccommodationController.java @@ -8,6 +8,7 @@ import com.devoops.accommodation.service.AccommodationService; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -31,6 +32,13 @@ public ResponseEntity create( return ResponseEntity.status(HttpStatus.CREATED).body(response); } + @GetMapping + public ResponseEntity> getAll( + @RequestParam(defaultValue = "0") int page, + @RequestParam(defaultValue = "12") int size) { + return ResponseEntity.ok(accommodationService.getAll(page, size)); + } + @GetMapping("/{id}") public ResponseEntity getById(@PathVariable UUID id) { return ResponseEntity.ok(accommodationService.getById(id)); diff --git a/src/main/java/com/devoops/accommodation/service/AccommodationService.java b/src/main/java/com/devoops/accommodation/service/AccommodationService.java index df22199..9342117 100644 --- a/src/main/java/com/devoops/accommodation/service/AccommodationService.java +++ b/src/main/java/com/devoops/accommodation/service/AccommodationService.java @@ -10,6 +10,10 @@ import com.devoops.accommodation.mapper.AccommodationMapper; import com.devoops.accommodation.repository.AccommodationRepository; import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -51,6 +55,13 @@ public List getByHostId(UUID hostId) { return accommodationMapper.toResponseList(accommodations); } + @Transactional(readOnly = true) + public Page getAll(int page, int size) { + Pageable pageable = PageRequest.of(page, size, Sort.by(Sort.Direction.DESC, "createdAt")); + Page accommodations = accommodationRepository.findAll(pageable); + return accommodations.map(accommodationMapper::toResponse); + } + @Transactional public AccommodationResponse update(UUID id, UpdateAccommodationRequest request, UserContext userContext) { Accommodation accommodation = findAccommodationOrThrow(id);