Исправлены избранные стримы
This commit is contained in:
@@ -27,14 +27,22 @@ public class StreamController {
|
|||||||
|
|
||||||
@PostMapping("/all")
|
@PostMapping("/all")
|
||||||
public List<Stream> getStreams(@RequestBody Pagination pagination) {
|
public List<Stream> getStreams(@RequestBody Pagination pagination) {
|
||||||
|
if (pagination.isFavorites()) {
|
||||||
|
return streamService.findFavorites(pagination);
|
||||||
|
} else {
|
||||||
return streamService.findAll(pagination);
|
return streamService.findAll(pagination);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/{port}")
|
@PostMapping("/{port}")
|
||||||
public List<Stream> getStreams(@PathVariable int port, @RequestBody Pagination pagination) {
|
public List<Stream> getStreams(@PathVariable int port, @RequestBody Pagination pagination) {
|
||||||
final Optional<CtfService> serviceOptional = servicesService.findByPort(port);
|
final Optional<CtfService> serviceOptional = servicesService.findByPort(port);
|
||||||
if (serviceOptional.isPresent()) {
|
if (serviceOptional.isPresent()) {
|
||||||
|
if (pagination.isFavorites()) {
|
||||||
|
return streamService.findFavoritesByService(pagination, serviceOptional.get());
|
||||||
|
} else {
|
||||||
return streamService.findAllByService(pagination, serviceOptional.get());
|
return streamService.findAllByService(pagination, serviceOptional.get());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,20 +10,37 @@ import java.util.List;
|
|||||||
|
|
||||||
public interface StreamRepository extends JpaRepository<Stream, Long> {
|
public interface StreamRepository extends JpaRepository<Stream, Long> {
|
||||||
|
|
||||||
List<Stream> findAllByIdGreaterThanAndFavorite(long streamId, boolean favorite, Pageable pageable);
|
List<Stream> findAllByIdGreaterThanAndFavoriteIsTrue(long streamId, Pageable pageable);
|
||||||
|
|
||||||
List<Stream> findAllByIdLessThanAndFavorite(long streamId, boolean favorite, Pageable pageable);
|
List<Stream> findAllByIdLessThanAndFavoriteIsTrue(long streamId, Pageable pageable);
|
||||||
|
|
||||||
List<Stream> findAllByIdGreaterThanAndFavoriteAndFoundPatternsContaining(long streamId, boolean favorite, Pattern pattern, Pageable pageable);
|
List<Stream> findAllByIdGreaterThanAndFavoriteIsTrueAndFoundPatternsContaining(long streamId, Pattern pattern, Pageable pageable);
|
||||||
|
|
||||||
List<Stream> findAllByIdLessThanAndFavoriteAndFoundPatternsContaining(long streamId, boolean favorite, Pattern pattern, Pageable pageable);
|
List<Stream> findAllByIdLessThanAndFavoriteIsTrueAndFoundPatternsContaining(long streamId, Pattern pattern, Pageable pageable);
|
||||||
|
|
||||||
List<Stream> findAllByServiceAndIdGreaterThanAndFavorite(CtfService service, long streamId, boolean favorite, Pageable pageable);
|
List<Stream> findAllByServiceAndIdGreaterThanAndFavoriteIsTrue(CtfService service, long streamId, Pageable pageable);
|
||||||
|
|
||||||
List<Stream> findAllByServiceAndIdLessThanAndFavorite(CtfService service, long streamId, boolean favorite, Pageable pageable);
|
List<Stream> findAllByServiceAndIdLessThanAndFavoriteIsTrue(CtfService service, long streamId, Pageable pageable);
|
||||||
|
|
||||||
List<Stream> findAllByServiceAndIdGreaterThanAndFavoriteAndFoundPatternsContaining(CtfService service, long streamId, boolean favorite, Pattern pattern, Pageable pageable);
|
List<Stream> findAllByServiceAndIdGreaterThanAndFavoriteIsTrueAndFoundPatternsContaining(CtfService service, long streamId, Pattern pattern, Pageable pageable);
|
||||||
|
|
||||||
|
List<Stream> findAllByServiceAndIdLessThanAndFavoriteIsTrueAndFoundPatternsContaining(CtfService service, long streamId, Pattern pattern, Pageable pageable);
|
||||||
|
|
||||||
|
List<Stream> findAllByIdGreaterThan(long streamId, Pageable pageable);
|
||||||
|
|
||||||
|
List<Stream> findAllByIdLessThan(long streamId, Pageable pageable);
|
||||||
|
|
||||||
|
List<Stream> findAllByIdGreaterThanAndFoundPatternsContaining(long streamId, Pattern pattern, Pageable pageable);
|
||||||
|
|
||||||
|
List<Stream> findAllByIdLessThanAndFoundPatternsContaining(long streamId, Pattern pattern, Pageable pageable);
|
||||||
|
|
||||||
|
List<Stream> findAllByServiceAndIdGreaterThan(CtfService service, long streamId, Pageable pageable);
|
||||||
|
|
||||||
|
List<Stream> findAllByServiceAndIdLessThan(CtfService service, long streamId, Pageable pageable);
|
||||||
|
|
||||||
|
List<Stream> findAllByServiceAndIdGreaterThanAndFoundPatternsContaining(CtfService service, long streamId, Pattern pattern, Pageable pageable);
|
||||||
|
|
||||||
|
List<Stream> findAllByServiceAndIdLessThanAndFoundPatternsContaining(CtfService service, long streamId, Pattern pattern, Pageable pageable);
|
||||||
|
|
||||||
List<Stream> findAllByServiceAndIdLessThanAndFavoriteAndFoundPatternsContaining(CtfService service, long streamId, boolean favorite, Pattern pattern, Pageable pageable);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,20 +168,56 @@ public class StreamService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Stream> findFavorites(Pagination pagination) {
|
||||||
|
PageRequest page = PageRequest.of(0, pagination.getPageSize(), pagination.getDirection(), "id");
|
||||||
|
|
||||||
|
if (pagination.getPattern() != null) { // задан паттерн для поиска
|
||||||
|
if (pagination.getDirection() == Sort.Direction.ASC) { // более новые стримы
|
||||||
|
return repository.findAllByIdGreaterThanAndFavoriteIsTrueAndFoundPatternsContaining(pagination.getStartingFrom(), pagination.getPattern(), page);
|
||||||
|
} else { // более старые стримы
|
||||||
|
return repository.findAllByIdLessThanAndFavoriteIsTrueAndFoundPatternsContaining(pagination.getStartingFrom(), pagination.getPattern(), page);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (pagination.getDirection() == Sort.Direction.ASC) { // более новые стримы
|
||||||
|
return repository.findAllByIdGreaterThanAndFavoriteIsTrue(pagination.getStartingFrom(), page);
|
||||||
|
} else { // более старые стримы
|
||||||
|
return repository.findAllByIdLessThanAndFavoriteIsTrue(pagination.getStartingFrom(), page);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Stream> findFavoritesByService(Pagination pagination, CtfService service) {
|
||||||
|
PageRequest page = PageRequest.of(0, pagination.getPageSize(), pagination.getDirection(), "id");
|
||||||
|
|
||||||
|
if (pagination.getPattern() != null) { // задан паттерн для поиска
|
||||||
|
if (pagination.getDirection() == Sort.Direction.ASC) { // более новые стримы
|
||||||
|
return repository.findAllByServiceAndIdGreaterThanAndFavoriteIsTrueAndFoundPatternsContaining(service, pagination.getStartingFrom(), pagination.getPattern(), page);
|
||||||
|
} else { // более старые стримы
|
||||||
|
return repository.findAllByServiceAndIdLessThanAndFavoriteIsTrueAndFoundPatternsContaining(service, pagination.getStartingFrom(), pagination.getPattern(), page);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (pagination.getDirection() == Sort.Direction.ASC) { // более новые стримы
|
||||||
|
return repository.findAllByServiceAndIdGreaterThanAndFavoriteIsTrue(service, pagination.getStartingFrom(), page);
|
||||||
|
} else { // более старые стримы
|
||||||
|
return repository.findAllByServiceAndIdLessThanAndFavoriteIsTrue(service, pagination.getStartingFrom(), page);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public List<Stream> findAll(Pagination pagination) {
|
public List<Stream> findAll(Pagination pagination) {
|
||||||
PageRequest page = PageRequest.of(0, pagination.getPageSize(), pagination.getDirection(), "id");
|
PageRequest page = PageRequest.of(0, pagination.getPageSize(), pagination.getDirection(), "id");
|
||||||
|
|
||||||
if (pagination.getPattern() != null) { // задан паттерн для поиска
|
if (pagination.getPattern() != null) { // задан паттерн для поиска
|
||||||
if (pagination.getDirection() == Sort.Direction.ASC) { // более новые стримы
|
if (pagination.getDirection() == Sort.Direction.ASC) { // более новые стримы
|
||||||
return repository.findAllByIdGreaterThanAndFavoriteAndFoundPatternsContaining(pagination.getStartingFrom(), pagination.isFavorites(), pagination.getPattern(), page);
|
return repository.findAllByIdGreaterThanAndFoundPatternsContaining(pagination.getStartingFrom(), pagination.getPattern(), page);
|
||||||
} else { // более старые стримы
|
} else { // более старые стримы
|
||||||
return repository.findAllByIdLessThanAndFavoriteAndFoundPatternsContaining(pagination.getStartingFrom(), pagination.isFavorites(), pagination.getPattern(), page);
|
return repository.findAllByIdLessThanAndFoundPatternsContaining(pagination.getStartingFrom(), pagination.getPattern(), page);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (pagination.getDirection() == Sort.Direction.ASC) { // более новые стримы
|
if (pagination.getDirection() == Sort.Direction.ASC) { // более новые стримы
|
||||||
return repository.findAllByIdGreaterThanAndFavorite(pagination.getStartingFrom(), pagination.isFavorites(), page);
|
return repository.findAllByIdGreaterThan(pagination.getStartingFrom(), page);
|
||||||
} else { // более старые стримы
|
} else { // более старые стримы
|
||||||
return repository.findAllByIdLessThanAndFavorite(pagination.getStartingFrom(), pagination.isFavorites(), page);
|
return repository.findAllByIdLessThan(pagination.getStartingFrom(), page);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -191,15 +227,15 @@ public class StreamService {
|
|||||||
|
|
||||||
if (pagination.getPattern() != null) { // задан паттерн для поиска
|
if (pagination.getPattern() != null) { // задан паттерн для поиска
|
||||||
if (pagination.getDirection() == Sort.Direction.ASC) { // более новые стримы
|
if (pagination.getDirection() == Sort.Direction.ASC) { // более новые стримы
|
||||||
return repository.findAllByServiceAndIdGreaterThanAndFavoriteAndFoundPatternsContaining(service, pagination.getStartingFrom(), pagination.isFavorites(), pagination.getPattern(), page);
|
return repository.findAllByServiceAndIdGreaterThanAndFoundPatternsContaining(service, pagination.getStartingFrom(), pagination.getPattern(), page);
|
||||||
} else { // более старые стримы
|
} else { // более старые стримы
|
||||||
return repository.findAllByServiceAndIdLessThanAndFavoriteAndFoundPatternsContaining(service, pagination.getStartingFrom(), pagination.isFavorites(), pagination.getPattern(), page);
|
return repository.findAllByServiceAndIdLessThanAndFoundPatternsContaining(service, pagination.getStartingFrom(), pagination.getPattern(), page);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (pagination.getDirection() == Sort.Direction.ASC) { // более новые стримы
|
if (pagination.getDirection() == Sort.Direction.ASC) { // более новые стримы
|
||||||
return repository.findAllByServiceAndIdGreaterThanAndFavorite(service, pagination.getStartingFrom(), pagination.isFavorites(), page);
|
return repository.findAllByServiceAndIdGreaterThan(service, pagination.getStartingFrom(), page);
|
||||||
} else { // более старые стримы
|
} else { // более старые стримы
|
||||||
return repository.findAllByServiceAndIdLessThanAndFavorite(service, pagination.getStartingFrom(), pagination.isFavorites(), page);
|
return repository.findAllByServiceAndIdLessThan(service, pagination.getStartingFrom(), page);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user