Init playlist service/Rename api postmapping root to /v2

This commit is contained in:
Reeverflow
2026-02-21 17:43:36 +01:00
parent 99ff046d16
commit f41ce2ec30
6 changed files with 77 additions and 2 deletions

View File

@@ -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());

View File

@@ -0,0 +1,8 @@
package com.example.video_downloader.dto;
import lombok.Data;
@Data
public class SaveNewPlaylistRequest {
private String url;
}

View File

@@ -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;
}

View File

@@ -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> {
}

View File

@@ -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();
}
}

View File

@@ -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;