source: Git/src/main/java/com/wediscussmovies/project/service/impl/DiscussionServiceImpl.java@ e0ef1b1

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

Added CRUD for movies,persons,discussion,replies,genres
Added ajaxcalls

  • Property mode set to 100644
File size: 4.8 KB
Line 
1package com.wediscussmovies.project.service.impl;
2
3import com.wediscussmovies.project.model.exception.DiscussionNotExistException;
4import com.wediscussmovies.project.model.exception.MovieIdNotFoundException;
5import com.wediscussmovies.project.model.exception.PersonNotExistException;
6import com.wediscussmovies.project.model.exception.UserNotExistException;
7import com.wediscussmovies.project.repository.DiscussionRepository;
8import com.wediscussmovies.project.model.Discussion;
9import com.wediscussmovies.project.model.Movie;
10import com.wediscussmovies.project.model.Person;
11import com.wediscussmovies.project.model.User;
12import com.wediscussmovies.project.repository.MovieRepository;
13import com.wediscussmovies.project.repository.PersonRepository;
14import com.wediscussmovies.project.repository.UserRepository;
15import com.wediscussmovies.project.service.DiscussionService;
16import com.wediscussmovies.project.service.MovieService;
17import com.wediscussmovies.project.service.PersonService;
18import com.wediscussmovies.project.service.UserService;
19import org.springframework.stereotype.Service;
20
21import java.sql.Date;
22import java.time.LocalDate;
23import java.util.List;
24
25@Service
26public class DiscussionServiceImpl implements DiscussionService {
27
28 private final DiscussionRepository discussionRepository;
29 private final UserRepository userRepository;
30
31 private final MovieRepository movieRepository;
32 private final PersonRepository personRepository;
33
34 public DiscussionServiceImpl(DiscussionRepository discussionRepository, UserRepository userRepository,
35 MovieRepository movieRepository, PersonRepository personRepository) {
36 this.discussionRepository = discussionRepository;
37 this.userRepository = userRepository;
38 this.movieRepository = movieRepository;
39 this.personRepository = personRepository;
40 }
41
42
43
44
45 @Override
46 public List<Discussion> listAll() {
47 return this.discussionRepository.findAll();
48 }
49
50 @Override
51 public void save(Character type,Integer id,String title, String text,User user) {
52 Date date = Date.valueOf(LocalDate.now());
53 Discussion discussion;
54
55 if (type.equals('M')) {
56 discussion = new Discussion('M',text,title,date,user);
57 this.addMovieForDiscussion(id,discussion);
58 }
59 else{
60 discussion = new Discussion('P',text,title,date,user);
61 this.addPersonForDiscussion(id,discussion);
62 }
63
64
65
66 discussionRepository.save(discussion);
67 }
68
69 @Override
70 public void edit(Integer discussionId, Character type, Integer id, String title, String text) {
71 Discussion discussion = this.findById(discussionId);
72
73 discussion.setText(text);
74 discussion.setTitle(title);
75 discussion.setType(type);
76 discussion.setMovie(null);
77 discussion.setPerson(null);
78
79 if (type.equals('M')) {
80 this.addMovieForDiscussion(id,discussion);
81 }
82 else{
83 this.addPersonForDiscussion(id,discussion);
84 }
85 this.discussionRepository.save(discussion);
86
87 }
88
89 @Override
90 public void deleteById(Integer discussionId) {
91 this.discussionRepository.deleteById(discussionId);
92 }
93
94 @Override
95 public void likeDiscussion(Integer discussionId, Integer userId) {
96 //ova fali od dijagram
97 }
98
99 @Override
100 public void unlikeDiscussion(Integer discussionId, Integer userId) {
101 // ova fali od dijagram
102 }
103
104 @Override
105 public List<Discussion> findAllForPersonOrMovie(Integer id,Character type) {
106 if (type.equals('M'))
107 {
108 Movie movie = this.findMovieById(id);
109 return this.discussionRepository.findAllByMovie(movie);
110 }
111 Person person = this.findPersonById(id);
112 return this.discussionRepository.findAllByPerson(person);
113
114 }
115
116 @Override
117 public Discussion findById(Integer id) {
118 return discussionRepository.findById(id).orElseThrow(() -> new DiscussionNotExistException(id));
119 }
120
121 @Override
122 public List<Discussion> listAllByTitle(String title) {
123 if(title == null || title.isEmpty())
124 return this.listAll();
125 return discussionRepository.findAllByTitleLike("%"+title+"%");
126 }
127 private void addMovieForDiscussion(Integer id,Discussion discussion){
128 Movie movie = findMovieById(id);
129 discussion.setMovie(movie);
130
131 }
132
133 private void addPersonForDiscussion(Integer id, Discussion discussion){
134 Person person = findPersonById(id);
135 discussion.setPerson(person);
136
137 }
138 private Movie findMovieById(Integer id){
139 return this.movieRepository.findById(id).orElseThrow(() -> new MovieIdNotFoundException(id));
140 }
141 private Person findPersonById(Integer id){
142 return this.personRepository.findById(id).orElseThrow(() -> new PersonNotExistException(id));
143
144 }
145}
Note: See TracBrowser for help on using the repository browser.