diff --git a/pom.xml b/pom.xml
index 9c95881..d92b5c6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,6 +45,17 @@
3.7.2
+
+ com.h2database
+ h2
+ runtime
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
diff --git a/src/main/java/ru/yandex/practicum/filmorate/controller/FilmController.java b/src/main/java/ru/yandex/practicum/filmorate/controller/FilmController.java
index 068d66f..38d4c93 100644
--- a/src/main/java/ru/yandex/practicum/filmorate/controller/FilmController.java
+++ b/src/main/java/ru/yandex/practicum/filmorate/controller/FilmController.java
@@ -1,21 +1,19 @@
package ru.yandex.practicum.filmorate.controller;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.Positive;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import jakarta.validation.Valid;
-import jakarta.validation.constraints.Positive;
import ru.yandex.practicum.filmorate.exception.ValidationException;
-import ru.yandex.practicum.filmorate.exception.NotFoundException;
import ru.yandex.practicum.filmorate.model.Film;
import ru.yandex.practicum.filmorate.service.FilmService;
import ru.yandex.practicum.filmorate.service.UserService;
-import ru.yandex.practicum.filmorate.storage.InMemoryFilmStorage;
-import ru.yandex.practicum.filmorate.storage.InMemoryUserStorage;
-import java.time.LocalDate;
import java.util.List;
+import java.util.Map;
@RestController
@RequestMapping("/films")
@@ -25,11 +23,6 @@ public class FilmController {
private final FilmService filmService;
private final UserService userService;
- public FilmController() {
- this.filmService = new FilmService(new InMemoryFilmStorage());
- this.userService = new UserService(new InMemoryUserStorage());
- }
-
@Autowired
public FilmController(FilmService filmService, UserService userService) {
this.filmService = filmService;
@@ -38,84 +31,57 @@ public FilmController(FilmService filmService, UserService userService) {
@GetMapping
public List getAllFilms() {
- log.info("Fetching all films");
return filmService.getAllFilms();
}
@GetMapping("/{id}")
public Film getFilm(@Positive @PathVariable Long id) {
- log.info("Fetching film with id {}", id);
return filmService.getFilmById(id);
}
@PostMapping
public Film addFilm(@Valid @RequestBody Film film) {
- log.info("Adding film: {}", film);
- validateFilm(film);
return filmService.addFilm(film);
}
@PutMapping
public Film updateFilm(@Valid @RequestBody Film film) {
- log.info("Updating film: {}", film);
- validateFilm(film);
- try {
- return filmService.updateFilm(film);
- } catch (NotFoundException e) {
- log.warn("Film not found: {}", film.getId());
- throw new ValidationException("Film not found");
- }
+ return filmService.updateFilm(film);
}
@DeleteMapping("/{id}")
public void deleteFilm(@Positive @PathVariable Long id) {
- log.info("Deleting film with id {}", id);
filmService.removeFilm(id);
}
@PutMapping("/{id}/like/{userId}")
- public void addLike(@Positive @PathVariable Long id,
- @Positive @PathVariable Long userId) {
- log.info("User {} likes film {}", userId, id);
+ public ResponseEntity