46 lines
1.3 KiB
Java
46 lines
1.3 KiB
Java
package com.krylov.refound.service;
|
|
|
|
import com.krylov.refound.dto.ReviewRequestDto;
|
|
import com.krylov.refound.dto.ReviewResponseDto;
|
|
import com.krylov.refound.entity.Review;
|
|
import com.krylov.refound.repository.ReviewRepository;
|
|
import jakarta.validation.Valid;
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@Service
|
|
@RequiredArgsConstructor
|
|
public class ReviewService {
|
|
|
|
private final ReviewRepository reviewRepository;
|
|
|
|
public List<ReviewResponseDto> getAllReviews() {
|
|
return reviewRepository.findAllByOrderByCreatedAtDesc()
|
|
.stream()
|
|
.map(this::toResponse)
|
|
.toList();
|
|
}
|
|
|
|
public ReviewResponseDto createReview(ReviewRequestDto request, String username) {
|
|
Review review = new Review();
|
|
review.setAuthorName(username); // или firstName из User
|
|
review.setRating(request.getRating());
|
|
review.setText(request.getText());
|
|
review.setCreatedAt(LocalDateTime.now());
|
|
|
|
Review saved = reviewRepository.save(review);
|
|
return toResponse(saved);
|
|
}
|
|
private ReviewResponseDto toResponse(Review r) {
|
|
return new ReviewResponseDto(
|
|
r.getId(),
|
|
r.getAuthorName(),
|
|
r.getRating(),
|
|
r.getText(),
|
|
r.getCreatedAt()
|
|
);
|
|
}
|
|
}
|