Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.yandex.practicum.filmorate.model;
package ru.yandex.practicum.filmorate.annotation;

import jakarta.validation.Constraint;
import jakarta.validation.Payload;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.yandex.practicum.filmorate.model;
package ru.yandex.practicum.filmorate.annotation;

import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import ru.yandex.practicum.filmorate.Enum.EventType;
import ru.yandex.practicum.filmorate.Enum.OperationType;
import ru.yandex.practicum.filmorate.dal.mappers.DirectorRowMapper;
Expand Down Expand Up @@ -283,7 +282,6 @@ public void connectDirectors(Collection<Film> films) {
}
}

@Transactional
@Override
public void addLike(long filmId, long userId) {

Expand All @@ -302,7 +300,6 @@ public void addLike(long filmId, long userId) {
}
}

@Transactional
@Override
public void deleteLike(long filmId, long userId) {
GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import ru.yandex.practicum.filmorate.Enum.EventType;
import ru.yandex.practicum.filmorate.Enum.OperationType;
import ru.yandex.practicum.filmorate.dal.mappers.ReviewRowMapper;
Expand Down Expand Up @@ -134,7 +133,6 @@ public List<Review> getAllReviewsByFilmId(long filmId, long count) {
.collect(Collectors.toList());
}

@Transactional
@Override
public Review create(Review review) {
GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();
Expand All @@ -158,7 +156,6 @@ public Review create(Review review) {
return review;
}

@Transactional
@Override
public Review update(Review review) {
GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();
Expand All @@ -180,7 +177,6 @@ public Review update(Review review) {
return reviewUpdated;
}

@Transactional
@Override
public void deleteReview(long reviewId) {
MapSqlParameterSource params = new MapSqlParameterSource();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package ru.yandex.practicum.filmorate.exception;

import jakarta.validation.ConstraintViolationException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

@RestControllerAdvice
@Slf4j
Expand Down Expand Up @@ -38,4 +41,28 @@ public ErrorResponse handleServerError(final InternalServerException e) {
e.getMessage()
);
}

@ResponseBody
@ExceptionHandler(ConstraintViolationException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ErrorResponse onConstraintValidationException(ConstraintViolationException e) {
log.error("Параметры не прошли валидацию Spring {}", e.getMessage());
return new ErrorResponse(
"Объект не прошёл валидацию Spring ",
e.getMessage()
);
}

@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
public ErrorResponse onMethodArgumentNotValidException(MethodArgumentNotValidException e) {
log.error("Объект не прошёл валидацию Spring {}", e.getMessage());
return new ErrorResponse(
"Объект не прошёл валидацию Spring ",
e.getMessage()
);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import jakarta.validation.constraints.*;
import lombok.*;
import ru.yandex.practicum.filmorate.annotation.StartDate;

import java.time.LocalDate;
import java.util.LinkedHashSet;
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
logging.level.org.zalando.logbook=TRACE
spring.sql.init.mode=always
spring.datasource.url=jdbc:h2:file:./db/filmorate
spring.datasource.url=jdbc:h2:file:./db/filmorate-test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
Expand Down
Loading