From b3173df0345ba44f0dce08a7b30bc414216b9e5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D0=BE=D0=BC=D0=B0=D0=BD=20=D0=91=D1=83=D1=81=D0=BB?= =?UTF-8?q?=D0=B0=D0=B5=D0=B2?= Date: Sat, 4 Oct 2025 12:31:14 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=BF=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ulstu/is/server/api/MovieController.java | 29 +++++++--- .../java/ru/ulstu/is/server/dto/MovieRq.java | 54 ++++++++++++++----- .../java/ru/ulstu/is/server/entity/Genre.java | 19 +++++-- .../is/server/repository/MovieRepository.java | 15 +++++- .../ulstu/is/server/service/MovieService.java | 10 +++- 5 files changed, 100 insertions(+), 27 deletions(-) diff --git a/backend/src/main/java/ru/ulstu/is/server/api/MovieController.java b/backend/src/main/java/ru/ulstu/is/server/api/MovieController.java index 1bcd9fe..98d16db 100644 --- a/backend/src/main/java/ru/ulstu/is/server/api/MovieController.java +++ b/backend/src/main/java/ru/ulstu/is/server/api/MovieController.java @@ -14,22 +14,37 @@ import java.util.List; public class MovieController { private final MovieService service; - public MovieController(MovieService service) { this.service = service; } + + public MovieController(MovieService service) { + this.service = service; + } @GetMapping - public List all() { return service.getAll(); } + public List all() { + return service.getAll(); + } - @GetMapping("/{id}") - public MovieRs one(@PathVariable Long id) { return service.get(id); } + @GetMapping("/page") + public List getPage( + @RequestParam(defaultValue = "0") int page, + @RequestParam(defaultValue = "10") int size) { + return service.getPage(page, size); + } @PostMapping @ResponseStatus(HttpStatus.CREATED) - public MovieRs create(@RequestBody @Valid MovieRq rq) { return service.create(rq); } + public MovieRs create(@RequestBody @Valid MovieRq rq) { + return service.create(rq); + } @PutMapping("/{id}") - public MovieRs update(@PathVariable Long id, @RequestBody @Valid MovieRq rq) { return service.update(id, rq); } + public MovieRs update(@PathVariable Long id, @RequestBody @Valid MovieRq rq) { + return service.update(id, rq); + } @DeleteMapping("/{id}") @ResponseStatus(HttpStatus.NO_CONTENT) - public void delete(@PathVariable Long id) { service.delete(id); } + public void delete(@PathVariable Long id) { + service.delete(id); + } } diff --git a/backend/src/main/java/ru/ulstu/is/server/dto/MovieRq.java b/backend/src/main/java/ru/ulstu/is/server/dto/MovieRq.java index 3972b1b..915a92f 100644 --- a/backend/src/main/java/ru/ulstu/is/server/dto/MovieRq.java +++ b/backend/src/main/java/ru/ulstu/is/server/dto/MovieRq.java @@ -5,22 +5,50 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; public class MovieRq { + @NotBlank private String title; + + @NotBlank private String image; - @NotNull @Valid - private GenreRefRq genre; + @NotNull + @Valid + private GenreRefRq genre; - @NotNull @Valid - private DirectorRefRq director; + @NotNull + @Valid + private DirectorRefRq director; - public String getTitle() { return title; } - public void setTitle(String title) { this.title = title; } - public String getImage() { return image; } - public void setImage(String image) { this.image = image; } - public GenreRefRq getGenre() { return genre; } - public void setGenre(GenreRefRq genre) { this.genre = genre; } - public DirectorRefRq getDirector() { return director; } - public void setDirector(DirectorRefRq director) { this.director = director; } -} \ No newline at end of file + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getImage() { + return image; + } + + public void setImage(String image) { + this.image = image; + } + + public GenreRefRq getGenre() { + return genre; + } + + public void setGenre(GenreRefRq genre) { + this.genre = genre; + } + + public DirectorRefRq getDirector() { + return director; + } + + public void setDirector(DirectorRefRq director) { + this.director = director; + } +} diff --git a/backend/src/main/java/ru/ulstu/is/server/entity/Genre.java b/backend/src/main/java/ru/ulstu/is/server/entity/Genre.java index 60c8ce4..970ee83 100644 --- a/backend/src/main/java/ru/ulstu/is/server/entity/Genre.java +++ b/backend/src/main/java/ru/ulstu/is/server/entity/Genre.java @@ -1,11 +1,22 @@ package ru.ulstu.is.server.entity; public class Genre extends BaseEntity { + private String name; - public Genre() { } - public Genre(Long id, String name) { super(id); this.name = name; } + public Genre() { + } - public String getName() { return name; } - public void setName(String name) { this.name = name; } + public Genre(Long id, String name) { + super(id); + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } } diff --git a/backend/src/main/java/ru/ulstu/is/server/repository/MovieRepository.java b/backend/src/main/java/ru/ulstu/is/server/repository/MovieRepository.java index ec23bb6..631ef6a 100644 --- a/backend/src/main/java/ru/ulstu/is/server/repository/MovieRepository.java +++ b/backend/src/main/java/ru/ulstu/is/server/repository/MovieRepository.java @@ -1,5 +1,18 @@ package ru.ulstu.is.server.repository; + import org.springframework.stereotype.Repository; +import ru.ulstu.is.server.entity.Movie; + +import java.util.List; @Repository -public class MovieRepository extends MapRepository { } \ No newline at end of file +public class MovieRepository extends MapRepository implements CommonRepository { + + public List findPage(int page, int size) { + int start = Math.max(page * size, 0); + return findAll().stream() + .skip(start) + .limit(size) + .toList(); + } +} diff --git a/backend/src/main/java/ru/ulstu/is/server/service/MovieService.java b/backend/src/main/java/ru/ulstu/is/server/service/MovieService.java index d88a6d0..60dcaa4 100644 --- a/backend/src/main/java/ru/ulstu/is/server/service/MovieService.java +++ b/backend/src/main/java/ru/ulstu/is/server/service/MovieService.java @@ -12,17 +12,23 @@ import java.util.List; @Service public class MovieService { + private final MovieRepository repo; private final MovieMapper mapper; public MovieService(MovieRepository repo, MovieMapper mapper) { - this.repo = repo; this.mapper = mapper; + this.repo = repo; + this.mapper = mapper; } public List getAll() { return repo.findAll().stream().map(mapper::toRs).toList(); } + public List getPage(int page, int size) { + return repo.findPage(page, size).stream().map(mapper::toRs).toList(); + } + public MovieRs get(Long id) { return mapper.toRs(getEntity(id)); } @@ -45,7 +51,7 @@ public class MovieService { } public void delete(Long id) { - getEntity(id); + getEntity(id); repo.deleteById(id); }