Index: src/main/java/com/wediscussmovies/project/service/DiscussionService.java
===================================================================
--- src/main/java/com/wediscussmovies/project/service/DiscussionService.java	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
+++ src/main/java/com/wediscussmovies/project/service/DiscussionService.java	(revision c02189fa25621ce1d654581cba8f42042572979c)
@@ -3,4 +3,5 @@
 import com.wediscussmovies.project.model.Discussion;
 import com.wediscussmovies.project.model.User;
+import com.wediscussmovies.project.querymodels.DiscussionLikes;
 
 import java.util.List;
@@ -16,3 +17,8 @@
     void unlikeDiscussion(Integer discussionId,Integer userId);
     List<Discussion> findAllForPersonOrMovie(Integer id,Character type);
+
+    List<Discussion> findLikedDiscussionsByUser(User user);
+
+    DiscussionLikes findLikesForDiscussionWithId(int discussionId);
+
 }
Index: src/main/java/com/wediscussmovies/project/service/MovieService.java
===================================================================
--- src/main/java/com/wediscussmovies/project/service/MovieService.java	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
+++ src/main/java/com/wediscussmovies/project/service/MovieService.java	(revision c02189fa25621ce1d654581cba8f42042572979c)
@@ -6,4 +6,5 @@
 import com.wediscussmovies.project.model.Person;
 import com.wediscussmovies.project.model.User;
+import com.wediscussmovies.project.querymodels.MovieLikesQM;
 import org.springframework.data.jpa.repository.Query;
 
@@ -17,4 +18,5 @@
      List<Movie> searchByTitle(String title);
      Movie findById(Integer id);
+     Movie findBasicById(Integer id);
      List<Integer> listAllIds();
      Movie save(String title, String description, String imageUrl, Date airingDate,Double  rating,
@@ -35,3 +37,5 @@
 
      void addGradeMovie(Integer movieId, User user, Grade grade);
+
+    MovieLikesQM findLikesForMovieById(int movieId);
 }
Index: src/main/java/com/wediscussmovies/project/service/impl/DiscussionServiceImpl.java
===================================================================
--- src/main/java/com/wediscussmovies/project/service/impl/DiscussionServiceImpl.java	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
+++ src/main/java/com/wediscussmovies/project/service/impl/DiscussionServiceImpl.java	(revision c02189fa25621ce1d654581cba8f42042572979c)
@@ -5,20 +5,17 @@
 import com.wediscussmovies.project.model.exception.PersonNotExistException;
 import com.wediscussmovies.project.model.exception.UserNotExistException;
-import com.wediscussmovies.project.repository.DiscussionRepository;
+import com.wediscussmovies.project.model.primarykeys.DiscussionLikesPK;
+import com.wediscussmovies.project.model.relation.DiscussionLikes;
+import com.wediscussmovies.project.repository.*;
 import com.wediscussmovies.project.model.Discussion;
 import com.wediscussmovies.project.model.Movie;
 import com.wediscussmovies.project.model.Person;
 import com.wediscussmovies.project.model.User;
-import com.wediscussmovies.project.repository.MovieRepository;
-import com.wediscussmovies.project.repository.PersonRepository;
-import com.wediscussmovies.project.repository.UserRepository;
 import com.wediscussmovies.project.service.DiscussionService;
-import com.wediscussmovies.project.service.MovieService;
-import com.wediscussmovies.project.service.PersonService;
-import com.wediscussmovies.project.service.UserService;
 import org.springframework.stereotype.Service;
 
 import java.sql.Date;
 import java.time.LocalDate;
+import java.util.ArrayList;
 import java.util.List;
 
@@ -27,4 +24,5 @@
 
     private final DiscussionRepository discussionRepository;
+    private final DiscussionLikesRepository discussionLikesRepository;
     private final UserRepository userRepository;
 
@@ -32,7 +30,8 @@
     private final PersonRepository personRepository;
 
-    public DiscussionServiceImpl(DiscussionRepository discussionRepository, UserRepository userRepository,
+    public DiscussionServiceImpl(DiscussionRepository discussionRepository, DiscussionLikesRepository discussionLikesRepository, UserRepository userRepository,
                                  MovieRepository movieRepository, PersonRepository personRepository) {
         this.discussionRepository = discussionRepository;
+        this.discussionLikesRepository = discussionLikesRepository;
         this.userRepository = userRepository;
         this.movieRepository = movieRepository;
@@ -94,11 +93,30 @@
     @Override
     public void likeDiscussion(Integer discussionId, Integer userId) {
-        //ova fali od dijagram
+        Discussion discussion = discussionRepository.findById(discussionId).orElseThrow(() -> new DiscussionNotExistException(discussionId));
+        User user = userRepository.findById(userId).orElseThrow(() -> new UserNotExistException(userId.toString()));
+        this.discussionLikesRepository.save(new DiscussionLikes(discussion, user));
+    }
+
+    @Override
+    public List<Discussion> findLikedDiscussionsByUser(User user) {
+        List<DiscussionLikes> likes = discussionLikesRepository.findAllByUser(user);
+        List<Discussion> discussions = new ArrayList<>();
+        for(DiscussionLikes dl: likes){
+            discussions.add(dl.getDiscussion());
+        }
+        return discussions;
     }
 
     @Override
     public void unlikeDiscussion(Integer discussionId, Integer userId) {
-        // ova fali od dijagram
+        DiscussionLikesPK pk = new DiscussionLikesPK(discussionId, userId);
+        this.discussionLikesRepository.deleteById(pk);
     }
+
+    @Override
+    public com.wediscussmovies.project.querymodels.DiscussionLikes findLikesForDiscussionWithId(int discussionId) {
+        return discussionRepository.findAllWithLikes().stream().filter(d ->  d.getDiscussionId().equals(discussionId)).findFirst().get();
+    }
+
 
     @Override
Index: src/main/java/com/wediscussmovies/project/service/impl/GenreServiceImpl.java
===================================================================
--- src/main/java/com/wediscussmovies/project/service/impl/GenreServiceImpl.java	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
+++ src/main/java/com/wediscussmovies/project/service/impl/GenreServiceImpl.java	(revision c02189fa25621ce1d654581cba8f42042572979c)
@@ -56,5 +56,5 @@
     @Override
     public List<Genre> findAll() {
-        return this.genreRepository.findAll();
+        return this.genreRepository.findAllSorted();
     }
 
Index: src/main/java/com/wediscussmovies/project/service/impl/MovieServiceImpl.java
===================================================================
--- src/main/java/com/wediscussmovies/project/service/impl/MovieServiceImpl.java	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
+++ src/main/java/com/wediscussmovies/project/service/impl/MovieServiceImpl.java	(revision c02189fa25621ce1d654581cba8f42042572979c)
@@ -13,4 +13,5 @@
 import com.wediscussmovies.project.model.relation.MovieLikes;
 import com.wediscussmovies.project.model.relation.MovieRates;
+import com.wediscussmovies.project.querymodels.MovieLikesQM;
 import com.wediscussmovies.project.repository.*;
 import com.wediscussmovies.project.model.exception.MovieIdNotFoundException;
@@ -73,4 +74,14 @@
     public Movie findById(Integer id) {
         return this.movieRepository.findById(id).orElseThrow(() -> new MovieIdNotFoundException(id));
+    }
+
+    @Override
+    public Movie findBasicById(Integer id) {
+        return this.movieRepository.findBasicById(id).orElseThrow(() -> new MovieIdNotFoundException(id));
+    }
+
+    @Override
+    public MovieLikesQM findLikesForMovieById(int movieId) {
+        return this.movieRepository.findLikesForMovie(movieId).get(0);
     }
 
Index: src/main/java/com/wediscussmovies/project/service/impl/PersonServiceImpl.java
===================================================================
--- src/main/java/com/wediscussmovies/project/service/impl/PersonServiceImpl.java	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
+++ src/main/java/com/wediscussmovies/project/service/impl/PersonServiceImpl.java	(revision c02189fa25621ce1d654581cba8f42042572979c)
@@ -9,4 +9,5 @@
 import com.wediscussmovies.project.model.primarykeys.PersonRatesPK;
 import com.wediscussmovies.project.model.relation.MovieActors;
+import com.wediscussmovies.project.model.relation.MovieLikes;
 import com.wediscussmovies.project.model.relation.PersonRates;
 import com.wediscussmovies.project.repository.*;
@@ -28,5 +29,4 @@
     private final MovieActorsRepository movieActorsRepository;
     private final PersonRatesRepository personRatesRepository;
-
     public PersonServiceImpl(PersonRepository personRepository,
                              MovieRepository movieRepository, MovieActorsRepository movieActorsRepository,
@@ -152,5 +152,4 @@
 
 
-
     private void addActorForMovies(Person person, List<Integer> movieIds){
 
