Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
defd063
Mapper Examples
Charlie9077 Jun 6, 2022
010b674
List object reference
Litegene Jun 6, 2022
5d26f6d
Merge branch 'main' into MapperExamples
Charlie9077 Jun 6, 2022
76be230
Merge pull request #1 from Litegene/MapperExamples
Charlie9077 Jun 6, 2022
4abf0ad
List object reference
Litegene Jun 6, 2022
f0a6e74
Merge pull request #2 from Litegene/HW_20220606
Litegene Jun 6, 2022
57930fc
Student Refactoring
Charlie9077 Oct 11, 2022
a24fa7d
Merge branch 'main' into StudentRefacotoring
Charlie9077 Oct 11, 2022
abb0dca
Merge pull request #5 from Litegene/StudentRefacotoring
Charlie9077 Oct 11, 2022
4fca96d
Student Refactoring- fix student mapper
Charlie9077 Oct 11, 2022
784612f
Student Refactoring- fix student mapper
Charlie9077 Oct 11, 2022
a312e49
Merge branch 'main' into Fix_StudentMapper
Charlie9077 Oct 11, 2022
3746748
Student Refactoring- fix student mapper
Charlie9077 Oct 11, 2022
7c16c52
Merge pull request #6 from Litegene/Fix_StudentMapper
Charlie9077 Oct 11, 2022
3a84030
Adding a unit test for VideoService
Charlie9077 Oct 13, 2022
05d7f47
Merge pull request #7 from Litegene/VideoServiceUnitTest
Charlie9077 Oct 13, 2022
7722224
More mappers
Litegene Nov 4, 2022
d943d52
Merge pull request #8 from Litegene/testSave
Litegene Nov 4, 2022
19d2427
Frontend
Slik1290 Nov 4, 2022
6515795
Frontend
Slik1290 Nov 4, 2022
6dc9313
More mappers
Litegene Nov 11, 2022
1e6921b
frontend stuff
Litegene Nov 11, 2022
da18e09
Merge pull request #9 from Litegene/frontend_extra
Litegene Nov 11, 2022
27e20f0
Adding a studentsGradeDto example and connecting to Frontend
Charlie9077 Nov 16, 2022
a795526
Merge pull request #10 from Litegene/Feature/StudentsGradeDto
Slik1290 Nov 18, 2022
836db4c
frontend stuff
Litegene Nov 25, 2022
6229251
Merge pull request #11 from Litegene/frontend_extra
Litegene Nov 25, 2022
8ba7328
Frontend
Slik1290 Nov 25, 2022
08aa879
Merge pull request #12 from Litegene/Fixing_Up_Student_Grade
Slik1290 Nov 25, 2022
b5c3e85
Frontend
Slik1290 Nov 25, 2022
d428abd
Merge pull request #13 from Litegene/Fixing_Up_Student_Grade
Slik1290 Nov 25, 2022
8646e2d
Adding teacher service for backend and frontend
Charlie9077 Nov 25, 2022
4e50bfe
Merge pull request #14 from Litegene/FrontendButton
Litegene Nov 28, 2022
da1eef9
Homework
Litegene Nov 30, 2022
de115b3
Homework
Litegene Nov 30, 2022
6f630b9
Merge pull request #15 from Litegene/More_Frontend_Homework
Litegene Dec 2, 2022
c8a861b
Homework
Litegene Jan 19, 2023
d34b3d1
Merge pull request #16 from Litegene/More_Frontend_Homework
Litegene Jan 20, 2023
b6bd577
Cheat for frontend problem 4) Total up the amount of likes into Total…
Charlie9077 Jan 24, 2023
3d610ed
Cheat for frontend problem 4) Total up the amount of likes into Total…
Charlie9077 Jan 24, 2023
1fb3e00
Merge pull request #17 from Litegene/Frontend_Homework_Cheat
Charlie9077 Jan 28, 2023
13a79cf
Homework
Litegene Feb 6, 2023
f07fcad
Homework
Litegene Apr 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion backend/kaiser/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,12 @@
<artifactId>postgresql</artifactId>
<version>42.2.5</version>
</dependency>
</dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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<Students> {

Expand Down
Original file line number Diff line number Diff line change
@@ -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<Students> {

Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.example.springKaiser.business.joinvideoandtag;

public class JoinVideoAndTagMapper {
}
Original file line number Diff line number Diff line change
@@ -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<JoinVideoAndTag> listVideoAndTag(){
List<JoinVideoAndTag> listVideoAndTag = joinVideoAndTagRepository.findAll();
return listVideoAndTag;
}

public List<ListVideoAndTagDto> listTagsByVideoName(String videoName) {
List<JoinVideoAndTag> joinVideoAndTagList = joinVideoAndTagRepository.findByVideoName(videoName);
List<ListVideoAndTagDto> 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;
}
}
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,51 +27,50 @@ 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<PlaylistName> listPlaylist(){
public List<PlaylistName> listPlaylist() {
List<PlaylistName> listPlaylistName = playlistNameRepository.findAll();
return listPlaylistName;
}

public List<PlaylistName> sortPlaylist(){
public List<PlaylistName> sortPlaylist() {
List<PlaylistName> listByPlaylistName = playlistNameRepository.findAll();
List<PlaylistName> sortList = listByPlaylistName.stream().sorted(Comparator.comparing(PlaylistName::getPlaylistname)).collect(Collectors.toList());
return sortList;
}

public List<PlaylistVideo> listPlaylistVideo(){
public List<PlaylistVideo> listPlaylistVideo() {
List<PlaylistVideo> listPlaylistVideo = playlistVideoRepository.findAll();
return listPlaylistVideo;
}

public String countPlaylist(String playlistName){
List<PlaylistVideo> listByPlaylistVideo =playlistVideoRepository.findByPlaylistName(playlistName);
public String countPlaylist(String playlistName) {
List<PlaylistVideo> 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);
PlaylistVideo playlistVideo = new PlaylistVideo();
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<PlaylistVideo> playlistVideos = playlistVideoRepository.findByVideoNameAndChannelName(videoName, channelName);
ListPlaylistByVideoNameAndChannelNameDto listPlaylistByVideoNameAndChannelNameDtos = new ListPlaylistByVideoNameAndChannelNameDto();
listPlaylistByVideoNameAndChannelNameDtos.setPlaylistName(playlistVideos.get(0).getPlaylistName().getPlaylistname());
Expand All @@ -80,12 +79,11 @@ public ListPlaylistByVideoNameAndChannelNameDto listByVideoNameAndChannelName (S
return listPlaylistByVideoNameAndChannelNameDtos;
}

public List<ListPlaylistByChannelDto> listPlaylistNameByChannelName(String channelName){
public List<ListPlaylistByChannelDto> listPlaylistNameByChannelName(String channelName) {
List<PlaylistVideo> playlistVideos = playlistVideoRepository.findPlaylistNameByChannelName(channelName);
ListPlaylistByChannelDto listPlaylistByChannelDto = new ListPlaylistByChannelDto();
List<ListPlaylistByChannelDto> listPlaylistByChannelDtos = new ArrayList<>();
for (int i =0; i<playlistVideos.size(); i++)
{
for (int i = 0; i < playlistVideos.size(); i++) {
listPlaylistByChannelDto.setPlaylistName(playlistVideos.get(i).getPlaylistName().getPlaylistname());
listPlaylistByChannelDto.setChannelName(playlistVideos.get(i).getVideo().getChannel().getChannelName());
listPlaylistByChannelDtos.add(listPlaylistByChannelDto);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.example.springKaiser.business.tags;

public class TagDto {
private String tagName;

public String getTagName() {
return tagName;
}

public void setTagName(String tagName) {
this.tagName = tagName;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.example.springKaiser.business.tags;

public class TagMapper {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.example.springKaiser.business.tags;

import com.example.springKaiser.business.playlist.ListPlaylistByChannelDto;
import com.example.springKaiser.business.video.VideoDto;
import com.example.springKaiser.entities.JoinVideoAndTag;
import com.example.springKaiser.entities.PlaylistVideo;
import com.example.springKaiser.entities.Video;
import com.example.springKaiser.repositories.JoinVideoAndTagRepository;
import com.example.springKaiser.repositories.TagRepository;
import com.example.springKaiser.entities.Tags;
import com.example.springKaiser.repositories.VideoRepository;
import org.hibernate.mapping.Join;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.swing.text.html.HTML;
import java.util.ArrayList;
import java.util.List;

@Service
public class TagService {
@Autowired
TagRepository tagRepository;

@Autowired
JoinVideoAndTagRepository joinVideoAndTagRepository;

@Autowired
VideoRepository videoRepository;

// search videoName, if exists, load tagDetails, convert tagDetails to string object, add extra tag to string object, save back into object and database
// public String addTagToVideo(String tagName, String videoName){
// Video video = videoRepository.findOneByName(videoName);
//
// return "Success";
// }

public List<Tags> listTags() {
List<Tags> listTags = tagRepository.findAll();
return listTags;
}

public List<JoinVideoAndTag> listVideoAndTags(){
List<JoinVideoAndTag> joinVideoAndTagList = joinVideoAndTagRepository.findAll();
return joinVideoAndTagList;
}

}
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,42 +40,43 @@ public List<Video> listVideo() {
return listVideo;
}

// Homework
// Homework
public List<VideoDto> listVideoDto() {
// List<VideoDto> videoDtoList = videoRepository.findAll().stream().map(this::convertDto).collect(Collectors.toList());
// return videoDtoList;
List<VideoDto> videoDtoList = new ArrayList<>();
List<Video> videoListFromRepository = videoRepository.findAll();
for (Video videoList : videoListFromRepository) {
videoDtoList.add(this.convertDto(videoList));
}
return videoDtoList;

// Lambda example
// videoRepository.findAll().stream().map(videoEntry->{
// videoEntry.setLikes(9);
// return convertDto(videoEntry);
// }).collect(Collectors.toList());
return ((List<Video>) videoRepository.findAll()).stream().map(this::convertDto).collect(Collectors.toList());
}

public List<VideoLikeDto> listVideoLikesDto() {
List<VideoLikeDto> videoLikeDtoList = new ArrayList<>();
List<Video> videoListFromRepository = videoRepository.findAll();
for (Video videoList : videoListFromRepository) {
videoLikeDtoList.add(this.convertLikeDto(videoList));
}
return videoLikeDtoList;
}
private VideoLikeDto convertLikeDto(Video video){
VideoLikeDto dto = new VideoLikeDto();
dto.setName(video.getName());
dto.setLikes(video.getLikes());
// Channel channel = channelRepository.findById(video.getChannel().getId()).get();
return dto;
}
//Homework
private VideoDto convertDto(Video video){
VideoDto dto = new VideoDto();
dto.setName(video.getName());
dto.setComments(video.getComments());
dto.setLikes(video.getLikes());
dto.setViews(video.getViews());
Channel channel = channelRepository.findById(video.getChannel().getId()).get();
// Channel channel = channelRepository.findById(video.getChannel().getId()).get();
dto.setChannelId(video.getChannel().getId());
return dto;
}

// no longer working as channel name (string) has been replaced with a channel object

// public List<Video> listByChannel(String channelName){
// List<Video> listByChannelName = new ArrayList<>();
// for (Video video : listVideo()){
// if (video.getChannel().equals(channelName)){
// listByChannelName.add(video);
// }
// }
// return listByChannelName;
// }
//Homework
public List<VideoDto> listByChannelDto(int channelId){
List<VideoDto> listByChannelNameDto = new ArrayList<>();
Expand Down
Loading