Init playlist service/Rename api postmapping root to /v2
This commit is contained in:
@@ -1,7 +1,10 @@
|
|||||||
package com.example.video_downloader.controllers;
|
package com.example.video_downloader.controllers;
|
||||||
|
|
||||||
|
import com.example.video_downloader.dto.SaveNewPlaylistRequest;
|
||||||
import com.example.video_downloader.dto.SaveNewVideoRequest;
|
import com.example.video_downloader.dto.SaveNewVideoRequest;
|
||||||
|
import com.example.video_downloader.entity.Playlist;
|
||||||
import com.example.video_downloader.entity.Video;
|
import com.example.video_downloader.entity.Video;
|
||||||
|
import com.example.video_downloader.services.PlaylistService;
|
||||||
import com.example.video_downloader.services.VideoService;
|
import com.example.video_downloader.services.VideoService;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -11,13 +14,16 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping(path="/video")
|
@RequestMapping(path="/v2")
|
||||||
@CrossOrigin(origins = "http://localhost:3000")
|
@CrossOrigin(origins = "http://localhost:3000")
|
||||||
public class VideoController {
|
public class VideoController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private VideoService videoService;
|
private VideoService videoService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PlaylistService playlistService;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
private static class Response {
|
private static class Response {
|
||||||
private Long id;
|
private Long id;
|
||||||
@@ -34,6 +40,12 @@ public class VideoController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping(path = "/playlists")
|
||||||
|
public void saveNewPlaylist(@RequestBody SaveNewPlaylistRequest request){
|
||||||
|
Playlist playlist = playlistService.saveNewPlaylist(request);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping(path = "/all")
|
@GetMapping(path = "/all")
|
||||||
public ResponseEntity<List<Video>> getAllVideos(){
|
public ResponseEntity<List<Video>> getAllVideos(){
|
||||||
return ResponseEntity.ok(videoService.getVideos());
|
return ResponseEntity.ok(videoService.getVideos());
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.example.video_downloader.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SaveNewPlaylistRequest {
|
||||||
|
private String url;
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.example.video_downloader.entity;
|
||||||
|
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ToString
|
||||||
|
@Entity
|
||||||
|
@Table(name = "playlists")
|
||||||
|
public class Playlist {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.SEQUENCE)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private String url;
|
||||||
|
private StatusEnum status;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package com.example.video_downloader.repositories;
|
||||||
|
|
||||||
|
import com.example.video_downloader.entity.Playlist;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
public interface PlaylistRepository extends JpaRepository<Playlist, Long> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.example.video_downloader.services;
|
||||||
|
|
||||||
|
import com.example.video_downloader.dto.SaveNewPlaylistRequest;
|
||||||
|
import com.example.video_downloader.entity.Playlist;
|
||||||
|
import com.example.video_downloader.entity.StatusEnum;
|
||||||
|
import com.example.video_downloader.repositories.PlaylistRepository;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class PlaylistService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PlaylistRepository playlistRepository;
|
||||||
|
|
||||||
|
public Playlist saveNewPlaylist(SaveNewPlaylistRequest request){
|
||||||
|
Playlist playlist = new Playlist();
|
||||||
|
|
||||||
|
playlist.setStatus(StatusEnum.NEW);
|
||||||
|
playlist.setUrl(request.getUrl());
|
||||||
|
playlistRepository.save(playlist);
|
||||||
|
return playlist;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Playlist> getAllPlaylists(){
|
||||||
|
return playlistRepository.findAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,7 +13,7 @@ import java.nio.file.Path;
|
|||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class YtdlpService {
|
public class YTDLPService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private VideoRepository videoRepository;
|
private VideoRepository videoRepository;
|
||||||
Reference in New Issue
Block a user