Skip to content
Extraits de code Groupes Projets
Valider 6c656167 rédigé par oussama aftys's avatar oussama aftys
Parcourir les fichiers

fixed live pagination bug

parent d819dc40
Branches
1 requête de fusion!23fixed live pagination bug
Pipeline #14538 en échec avec les étapes
in 24 secondes
......@@ -4,6 +4,7 @@ import java.io.IOException;
import java.util.List;
import java.util.Map;
import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
......@@ -32,7 +33,7 @@ public class LiveStreamController {
@GetMapping("/all")
@PreAuthorize("@securityCustomExpressions.isClientTrusted(#requestAuthorization)")
public ResponseEntity<List<LiveStreamResponse>> getLiveStreams(
public ResponseEntity<Page<LiveStreamResponse>> getLiveStreams(
@RequestParam(value = "search", defaultValue = "") String search,
@RequestParam(value = "status", defaultValue = "ALL") String statusStr,
@RequestParam(value = "page", defaultValue = "0") int page,
......@@ -42,10 +43,10 @@ public class LiveStreamController {
@RequestHeader String requestAuthorization) {
LiveStatus status = LiveStatus.valueOf(statusStr);
List<LiveStreamResponse> liveStreams = liveStreamService.getLiveStreams(
Page<LiveStreamResponse> liveStreamsPage = liveStreamService.getLiveStreams(
search, status, page, size, sortBy, sortDir);
return ResponseEntity.ok(liveStreams);
return ResponseEntity.ok(liveStreamsPage);
}
@GetMapping("/client")
......
package com.marketingconfort.mydressin.mydressinstreamservices.models.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@RequiredArgsConstructor
public enum LiveStatus {
COMING("The event is coming soon."),
ONGOING("The event is currently ongoing."),
REVIEW("The event is under review."),
REPLAY("The event is available for replay."),
ARCHIVED ("The event is available for archived."),
ALL ("The event is available for all.");
private final String message;
COMING, // Upcoming live stream
ONGOING, // Currently streaming
REVIEW, // Ended but not published
REPLAY, // Published recording
ARCHIVED, // Archived stream
ALL // Special value for querying all statuses
}
......@@ -4,6 +4,7 @@ import java.io.IOException;
import java.util.List;
import java.util.Map;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
......@@ -17,7 +18,7 @@ import com.marketingconfort.mydressin.mydressinstreamservices.models.enums.LiveS
import com.marketingconfort.starter.core.exceptions.S3FunctionalException;
public interface ILiveStreamService {
public List <LiveStreamResponse> getLiveStreams( String search, LiveStatus status ,int page, int size , String sortBy, String sortOrder);
public Page<LiveStreamResponse> getLiveStreams(String search, LiveStatus status, int page, int size, String sortBy, String sortOrder);
public List<LiveStreamResponse> getAllLiveStreamsForClient(String search, int page, int size, String sortBy, String sortDir) ;
public LiveStreamDto getLiveStream(Long id);
public LiveStreamResponse createLiveStream(LiveStreamDto liveStreamDto, MultipartFile image) throws S3FunctionalException, IOException;
......
......@@ -319,7 +319,7 @@ public class LiveStreamService implements ILiveStreamService {
@Override
public List<LiveStreamResponse> getLiveStreams(String search, LiveStatus status, int page, int size, String sortBy, String sortDir) {
public Page<LiveStreamResponse> getLiveStreams(String search, LiveStatus status, int page, int size, String sortBy, String sortDir) {
Pageable pageable = PageRequest.of(page, size, Sort.Direction.fromString(sortDir), sortBy);
Page<LiveStream> liveStreamPage;
......@@ -328,12 +328,11 @@ public class LiveStreamService implements ILiveStreamService {
if (status == LiveStatus.ALL) {
liveStreamPage = liveStreamRepository.findByTitleContaining(search, pageable);
} else {
liveStreamPage = liveStreamRepository.findByTitleContainingAndStatus(search, status, pageable); // Only fetch based on status
liveStreamPage = liveStreamRepository.findByTitleContainingAndStatus(search, status, pageable);
}
return liveStreamPage.stream()
.map(LiveStreamResponse::fromEntity)
.collect(Collectors.toList());
// Map the Page<LiveStream> to Page<LiveStreamResponse>
return liveStreamPage.map(LiveStreamResponse::fromEntity);
}
......
0% ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter