source: Git/src/main/java/com/wediscussmovies/project/service/impl/GenreServiceImpl.java@ 6f91f99

main
Last change on this file since 6f91f99 was 6f91f99, checked in by Test <matonikolov77@…>, 2 years ago

Refactored reply repository and discussion repository

  • Property mode set to 100644
File size: 2.7 KB
Line 
1package com.wediscussmovies.project.service.impl;
2
3import com.wediscussmovies.project.model.User;
4import com.wediscussmovies.project.model.exception.GenreNotExistException;
5import com.wediscussmovies.project.model.exception.UserNotExistException;
6import com.wediscussmovies.project.model.primarykeys.UserGenresPK;
7import com.wediscussmovies.project.model.relation.UserGenres;
8import com.wediscussmovies.project.querymodels.GenreLikesQM;
9import com.wediscussmovies.project.repository.GenreLikesRepository;
10import com.wediscussmovies.project.repository.GenreRepository;
11import com.wediscussmovies.project.model.Genre;
12import com.wediscussmovies.project.repository.UserRepository;
13import com.wediscussmovies.project.service.GenreService;
14import org.springframework.stereotype.Service;
15
16import java.util.List;
17
18@Service
19public class GenreServiceImpl implements GenreService {
20 private final GenreRepository genreRepository;
21 private final UserRepository userRepository;
22 private final GenreLikesRepository genreLikesRepository;
23
24
25 public GenreServiceImpl(GenreRepository genreRepository, UserRepository userRepository, GenreLikesRepository genreLikesRepository) {
26 this.genreRepository = genreRepository;
27 this.userRepository = userRepository;
28 this.genreLikesRepository = genreLikesRepository;
29 }
30
31 @Override
32 public Genre findById(Integer id) {
33 return this.genreRepository.findById(id).orElseThrow(() -> new GenreNotExistException(id));
34 }
35
36 @Override
37 public List<Genre> findAllByType(String genre) {
38 return this.genreRepository.findAllByGenreType(genre);
39 }
40
41 @Override
42 public Genre save(String genreName) {
43 Genre genre = new Genre(genreName);
44 return this.genreRepository.save(genre);
45 }
46
47 @Override
48 public List<GenreLikesQM> findAllWithLikes() {
49 // List<GenreLikes> genreLikesList = this.genreRepository.findAllWithLikes();
50 // genreLikesList.sort(GenreLikes.sorter);
51 return this.genreRepository.findAllWithLikes();
52 }
53
54 @Override
55 public List<Genre> findAll() {
56 return this.genreRepository.findAllSorted();
57 }
58
59 @Override
60 public void likeGenre(Integer genreId, Integer userId) {
61 User user = this.userRepository.findById(userId).orElseThrow(() -> new UserNotExistException(userId.toString()));
62 Genre genre = this.genreRepository.findById(genreId).orElseThrow(() -> new GenreNotExistException(genreId));
63 this.genreLikesRepository.save(new UserGenres(genre, user));
64 }
65
66 @Override
67 public void unlikeGenre(Integer genreId, Integer userId) {
68 UserGenresPK movieLikesPK = new UserGenresPK(userId, genreId);
69 this.genreLikesRepository.deleteById(movieLikesPK);
70 }
71}
Note: See TracBrowser for help on using the repository browser.