diff --git a/backend/kaiser/pom.xml b/backend/kaiser/pom.xml index af32153..0e7160a 100644 --- a/backend/kaiser/pom.xml +++ b/backend/kaiser/pom.xml @@ -53,7 +53,12 @@ postgresql 42.2.5 - + + junit + junit + test + + diff --git a/backend/kaiser/src/main/java/com/example/springKaiser/SOLID/OpenClosedPrinciple/BetterFilter.java b/backend/kaiser/src/main/java/com/example/springKaiser/SOLID/OpenClosedPrinciple/BetterFilter.java index 93818da..e24f6f7 100644 --- a/backend/kaiser/src/main/java/com/example/springKaiser/SOLID/OpenClosedPrinciple/BetterFilter.java +++ b/backend/kaiser/src/main/java/com/example/springKaiser/SOLID/OpenClosedPrinciple/BetterFilter.java @@ -1,6 +1,6 @@ package com.example.springKaiser.SOLID.OpenClosedPrinciple; -import com.example.springKaiser.entities.Students; +import com.example.springKaiser.school.entities.Students; import java.util.List; import java.util.stream.Stream; diff --git a/backend/kaiser/src/main/java/com/example/springKaiser/SOLID/OpenClosedPrinciple/EmailSpecification.java b/backend/kaiser/src/main/java/com/example/springKaiser/SOLID/OpenClosedPrinciple/EmailSpecification.java index 74162c8..fefae16 100644 --- a/backend/kaiser/src/main/java/com/example/springKaiser/SOLID/OpenClosedPrinciple/EmailSpecification.java +++ b/backend/kaiser/src/main/java/com/example/springKaiser/SOLID/OpenClosedPrinciple/EmailSpecification.java @@ -1,6 +1,6 @@ package com.example.springKaiser.SOLID.OpenClosedPrinciple; -import com.example.springKaiser.entities.Students; +import com.example.springKaiser.school.entities.Students; public class EmailSpecification implements Specification { diff --git a/backend/kaiser/src/main/java/com/example/springKaiser/SOLID/OpenClosedPrinciple/NameSpecification.java b/backend/kaiser/src/main/java/com/example/springKaiser/SOLID/OpenClosedPrinciple/NameSpecification.java index aed4339..09226e6 100644 --- a/backend/kaiser/src/main/java/com/example/springKaiser/SOLID/OpenClosedPrinciple/NameSpecification.java +++ b/backend/kaiser/src/main/java/com/example/springKaiser/SOLID/OpenClosedPrinciple/NameSpecification.java @@ -1,6 +1,6 @@ package com.example.springKaiser.SOLID.OpenClosedPrinciple; -import com.example.springKaiser.entities.Students; +import com.example.springKaiser.school.entities.Students; public class NameSpecification implements Specification { diff --git a/backend/kaiser/src/main/java/com/example/springKaiser/YoutubeFeedManagerApplication.java b/backend/kaiser/src/main/java/com/example/springKaiser/YoutubeFeedManagerApplication.java index 4e2fe3d..b27ac2f 100644 --- a/backend/kaiser/src/main/java/com/example/springKaiser/YoutubeFeedManagerApplication.java +++ b/backend/kaiser/src/main/java/com/example/springKaiser/YoutubeFeedManagerApplication.java @@ -1,18 +1,12 @@ package com.example.springKaiser; -import com.example.springKaiser.entities.Students; -import com.example.springKaiser.entities.Subscriber; -import com.example.springKaiser.entities.Video; -import com.example.springKaiser.repositories.*; +import com.example.springKaiser.school.Repository.GradeRepository; +import com.example.springKaiser.school.Repository.TeacherRepository; import lombok.Builder; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.ApplicationRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; -import org.springframework.context.annotation.Bean; - -import java.util.stream.Stream; @SpringBootApplication(exclude = { SecurityAutoConfiguration.class }) @Builder diff --git a/backend/kaiser/src/main/java/com/example/springKaiser/business/joinvideoandtag/JoinVideoAndTagDto.java b/backend/kaiser/src/main/java/com/example/springKaiser/business/joinvideoandtag/JoinVideoAndTagDto.java new file mode 100644 index 0000000..f916a54 --- /dev/null +++ b/backend/kaiser/src/main/java/com/example/springKaiser/business/joinvideoandtag/JoinVideoAndTagDto.java @@ -0,0 +1,22 @@ +package com.example.springKaiser.business.joinvideoandtag; + +public class JoinVideoAndTagDto { + private int tagId; + private int videoId; + + public int getTagId() { + return tagId; + } + + public void setTagId(int tagId) { + this.tagId = tagId; + } + + public int getVideoId() { + return videoId; + } + + public void setVideoId(int videoId) { + this.videoId = videoId; + } +} diff --git a/backend/kaiser/src/main/java/com/example/springKaiser/business/joinvideoandtag/JoinVideoAndTagMapper.java b/backend/kaiser/src/main/java/com/example/springKaiser/business/joinvideoandtag/JoinVideoAndTagMapper.java new file mode 100644 index 0000000..bcc0b6a --- /dev/null +++ b/backend/kaiser/src/main/java/com/example/springKaiser/business/joinvideoandtag/JoinVideoAndTagMapper.java @@ -0,0 +1,4 @@ +package com.example.springKaiser.business.joinvideoandtag; + +public class JoinVideoAndTagMapper { +} diff --git a/backend/kaiser/src/main/java/com/example/springKaiser/business/joinvideoandtag/JoinVideoAndTagService.java b/backend/kaiser/src/main/java/com/example/springKaiser/business/joinvideoandtag/JoinVideoAndTagService.java new file mode 100644 index 0000000..50b58a7 --- /dev/null +++ b/backend/kaiser/src/main/java/com/example/springKaiser/business/joinvideoandtag/JoinVideoAndTagService.java @@ -0,0 +1,43 @@ +package com.example.springKaiser.business.joinvideoandtag; + +import com.example.springKaiser.business.playlist.ListPlaylistByVideoNameAndChannelNameDto; +import com.example.springKaiser.entities.JoinVideoAndTag; +import com.example.springKaiser.entities.PlaylistVideo; +import com.example.springKaiser.repositories.JoinVideoAndTagRepository; +import com.example.springKaiser.repositories.TagRepository; +import com.example.springKaiser.repositories.VideoRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class JoinVideoAndTagService { + @Autowired + TagRepository tagRepository; + + @Autowired + VideoRepository videoRepository; + + @Autowired + JoinVideoAndTagRepository joinVideoAndTagRepository; + + public List listVideoAndTag(){ + List listVideoAndTag = joinVideoAndTagRepository.findAll(); + return listVideoAndTag; + } + + public List listTagsByVideoName(String videoName) { + List joinVideoAndTagList = joinVideoAndTagRepository.findByVideoName(videoName); + List listVideoAndTagDtos = new ArrayList<>(); + for (int i = 0; i < joinVideoAndTagList.size(); i++) { + ListVideoAndTagDto listVideoAndTagDto = new ListVideoAndTagDto(); + listVideoAndTagDto.setTagName(joinVideoAndTagList.get(i).getTag().getTagName()); + listVideoAndTagDto.setVideoName(joinVideoAndTagList.get(i).getVideo().getName()); + listVideoAndTagDtos.add(listVideoAndTagDto); + } + + return listVideoAndTagDtos; + } +} diff --git a/backend/kaiser/src/main/java/com/example/springKaiser/business/joinvideoandtag/ListVideoAndTagDto.java b/backend/kaiser/src/main/java/com/example/springKaiser/business/joinvideoandtag/ListVideoAndTagDto.java new file mode 100644 index 0000000..1697104 --- /dev/null +++ b/backend/kaiser/src/main/java/com/example/springKaiser/business/joinvideoandtag/ListVideoAndTagDto.java @@ -0,0 +1,22 @@ +package com.example.springKaiser.business.joinvideoandtag; + +public class ListVideoAndTagDto { + private String videoName; + private String tagName; + + public String getVideoName() { + return videoName; + } + + public void setVideoName(String videoName) { + this.videoName = videoName; + } + + public String getTagName() { + return tagName; + } + + public void setTagName(String tagName) { + this.tagName = tagName; + } +} diff --git a/backend/kaiser/src/main/java/com/example/springKaiser/business/playlist/PlaylistService.java b/backend/kaiser/src/main/java/com/example/springKaiser/business/playlist/PlaylistService.java index 6e0ad0b..6bae2d0 100644 --- a/backend/kaiser/src/main/java/com/example/springKaiser/business/playlist/PlaylistService.java +++ b/backend/kaiser/src/main/java/com/example/springKaiser/business/playlist/PlaylistService.java @@ -27,39 +27,39 @@ public class PlaylistService { VideoRepository videoRepository; - public void addPlaylist(PlaylistName playlistName){ + public void addPlaylist(PlaylistName playlistName) { playlistNameRepository.save(playlistName); } - public void addVideo(PlaylistVideo playlistVideo){ + public void addVideo(PlaylistVideo playlistVideo) { playlistVideoRepository.save(playlistVideo); } - public List listPlaylist(){ + public List listPlaylist() { List listPlaylistName = playlistNameRepository.findAll(); return listPlaylistName; } - public List sortPlaylist(){ + public List sortPlaylist() { List listByPlaylistName = playlistNameRepository.findAll(); List sortList = listByPlaylistName.stream().sorted(Comparator.comparing(PlaylistName::getPlaylistname)).collect(Collectors.toList()); return sortList; } - public List listPlaylistVideo(){ + public List listPlaylistVideo() { List listPlaylistVideo = playlistVideoRepository.findAll(); return listPlaylistVideo; } - public String countPlaylist(String playlistName){ - List listByPlaylistVideo =playlistVideoRepository.findByPlaylistName(playlistName); + public String countPlaylist(String playlistName) { + List listByPlaylistVideo = playlistVideoRepository.findByPlaylistName(playlistName); return "Number of videos inside playlist: " + listByPlaylistVideo.size(); } - public String addVideoToPlaylist(String playlist, String videoName){ + public String addVideoToPlaylist(String playlist, String videoName) { PlaylistName playlistName = playlistNameRepository.findOneByName(playlist); Video video = videoRepository.findOneByName(videoName); @@ -67,11 +67,10 @@ public String addVideoToPlaylist(String playlist, String videoName){ playlistVideo.setPlaylistName(playlistName); playlistVideo.setVideo(video); playlistVideoRepository.save(playlistVideo); - return "Success"; } - public ListPlaylistByVideoNameAndChannelNameDto listByVideoNameAndChannelName (String videoName, String channelName){ + public ListPlaylistByVideoNameAndChannelNameDto listByVideoNameAndChannelName(String videoName, String channelName) { List playlistVideos = playlistVideoRepository.findByVideoNameAndChannelName(videoName, channelName); ListPlaylistByVideoNameAndChannelNameDto listPlaylistByVideoNameAndChannelNameDtos = new ListPlaylistByVideoNameAndChannelNameDto(); listPlaylistByVideoNameAndChannelNameDtos.setPlaylistName(playlistVideos.get(0).getPlaylistName().getPlaylistname()); @@ -80,12 +79,11 @@ public ListPlaylistByVideoNameAndChannelNameDto listByVideoNameAndChannelName (S return listPlaylistByVideoNameAndChannelNameDtos; } - public List listPlaylistNameByChannelName(String channelName){ + public List listPlaylistNameByChannelName(String channelName) { List playlistVideos = playlistVideoRepository.findPlaylistNameByChannelName(channelName); ListPlaylistByChannelDto listPlaylistByChannelDto = new ListPlaylistByChannelDto(); List listPlaylistByChannelDtos = new ArrayList<>(); - for (int i =0; i listTags() { + List listTags = tagRepository.findAll(); + return listTags; + } + + public List listVideoAndTags(){ + List joinVideoAndTagList = joinVideoAndTagRepository.findAll(); + return joinVideoAndTagList; + } + +} diff --git a/backend/kaiser/src/main/java/com/example/springKaiser/business/video/VideoLikeDto.java b/backend/kaiser/src/main/java/com/example/springKaiser/business/video/VideoLikeDto.java new file mode 100644 index 0000000..b24a3a7 --- /dev/null +++ b/backend/kaiser/src/main/java/com/example/springKaiser/business/video/VideoLikeDto.java @@ -0,0 +1,23 @@ +package com.example.springKaiser.business.video; + +public class VideoLikeDto { + private String name; + private int likes; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + public int getLikes() { + return likes; + } + + public void setLikes(int likes) { + this.likes = likes; + } +} diff --git a/backend/kaiser/src/main/java/com/example/springKaiser/business/video/VideoService.java b/backend/kaiser/src/main/java/com/example/springKaiser/business/video/VideoService.java index fe7e350..5019111 100644 --- a/backend/kaiser/src/main/java/com/example/springKaiser/business/video/VideoService.java +++ b/backend/kaiser/src/main/java/com/example/springKaiser/business/video/VideoService.java @@ -40,19 +40,32 @@ public List