Adding move track on playlist api
This commit is contained in:
parent
de52decfd9
commit
5bc467d941
@ -36,6 +36,14 @@ public class TrackEntity {
|
|||||||
this.pos = pos;
|
this.pos = pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TrackEntity(TrackEntity trackEntity){
|
||||||
|
this.title = trackEntity.title;
|
||||||
|
this.url = trackEntity.url;
|
||||||
|
this.identifier = trackEntity.identifier;
|
||||||
|
this.pos = trackEntity.pos;
|
||||||
|
this.playlist = trackEntity.playlist;
|
||||||
|
}
|
||||||
|
|
||||||
public Integer getId() {
|
public Integer getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
package net.Broken.RestApi.Data.Playlist;
|
||||||
|
|
||||||
|
public class MoveTrackData {
|
||||||
|
|
||||||
|
public int playlistId;
|
||||||
|
|
||||||
|
public int id;
|
||||||
|
|
||||||
|
public int newPos;
|
||||||
|
}
|
@ -1,15 +1,43 @@
|
|||||||
package net.Broken.RestApi;
|
package net.Broken.RestApi;
|
||||||
|
|
||||||
|
import net.Broken.DB.Entity.PlaylistEntity;
|
||||||
|
import net.Broken.DB.Entity.TrackEntity;
|
||||||
|
import net.Broken.DB.Entity.UserEntity;
|
||||||
|
import net.Broken.DB.Repository.PlaylistRepository;
|
||||||
|
import net.Broken.DB.Repository.TrackRepository;
|
||||||
|
import net.Broken.DB.Repository.UserRepository;
|
||||||
import net.Broken.MainBot;
|
import net.Broken.MainBot;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/")
|
@RequestMapping("/api/")
|
||||||
public class GeneralApiController {
|
public class GeneralApiController {
|
||||||
|
|
||||||
|
private final
|
||||||
|
UserRepository userRepository;
|
||||||
|
|
||||||
|
private final
|
||||||
|
PlaylistRepository playlistRepository;
|
||||||
|
|
||||||
|
private final
|
||||||
|
TrackRepository trackRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public GeneralApiController(UserRepository userRepository, PlaylistRepository playlistRepository, TrackRepository trackRepository) {
|
||||||
|
this.userRepository = userRepository;
|
||||||
|
this.playlistRepository = playlistRepository;
|
||||||
|
this.trackRepository = trackRepository;
|
||||||
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/isReady", method = RequestMethod.GET)
|
@RequestMapping(value = "/isReady", method = RequestMethod.GET)
|
||||||
public ResponseEntity<String> isReady(){
|
public ResponseEntity<String> isReady(){
|
||||||
if(MainBot.ready){
|
if(MainBot.ready){
|
||||||
|
@ -6,10 +6,7 @@ import net.Broken.DB.Entity.UserEntity;
|
|||||||
import net.Broken.DB.Repository.PlaylistRepository;
|
import net.Broken.DB.Repository.PlaylistRepository;
|
||||||
import net.Broken.DB.Repository.TrackRepository;
|
import net.Broken.DB.Repository.TrackRepository;
|
||||||
import net.Broken.DB.Repository.UserRepository;
|
import net.Broken.DB.Repository.UserRepository;
|
||||||
import net.Broken.RestApi.Data.Playlist.AddToPlaylistData;
|
import net.Broken.RestApi.Data.Playlist.*;
|
||||||
import net.Broken.RestApi.Data.Playlist.CreatePlaylistData;
|
|
||||||
import net.Broken.RestApi.Data.Playlist.DeleteTrackData;
|
|
||||||
import net.Broken.RestApi.Data.Playlist.PlaylistResponseData;
|
|
||||||
import net.Broken.audio.Playlist.PlaylistManager;
|
import net.Broken.audio.Playlist.PlaylistManager;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
@ -90,5 +87,15 @@ public class PlaylistAPIController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/moveTrack")
|
||||||
|
public ResponseEntity<PlaylistResponseData> moveTrack(@CookieValue(value = "token", defaultValue = "") String token, @RequestBody MoveTrackData data){
|
||||||
|
PlaylistManager playlistManager = PlaylistManager.getINSTANCE();
|
||||||
|
|
||||||
|
return playlistManager.moveTrack(token, data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import net.Broken.MainBot;
|
|||||||
import net.Broken.RestApi.Data.CommandResponseData;
|
import net.Broken.RestApi.Data.CommandResponseData;
|
||||||
import net.Broken.RestApi.Data.Playlist.AddToPlaylistData;
|
import net.Broken.RestApi.Data.Playlist.AddToPlaylistData;
|
||||||
import net.Broken.RestApi.Data.Playlist.DeleteTrackData;
|
import net.Broken.RestApi.Data.Playlist.DeleteTrackData;
|
||||||
|
import net.Broken.RestApi.Data.Playlist.MoveTrackData;
|
||||||
import net.Broken.RestApi.Data.Playlist.PlaylistResponseData;
|
import net.Broken.RestApi.Data.Playlist.PlaylistResponseData;
|
||||||
import net.Broken.SpringContext;
|
import net.Broken.SpringContext;
|
||||||
import net.Broken.Tools.UserManager.Exceptions.UnknownTokenException;
|
import net.Broken.Tools.UserManager.Exceptions.UnknownTokenException;
|
||||||
@ -122,9 +123,43 @@ public class PlaylistManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ResponseEntity<PlaylistResponseData> moveTrack(String token, MoveTrackData data) {
|
||||||
|
UserUtils userUtils = UserUtils.getInstance();
|
||||||
|
try {
|
||||||
|
UserEntity user = userUtils.getUserWithApiToken(userRepository, token);
|
||||||
|
PlaylistEntity playlist = getPlaylist(data.playlistId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TrackEntity toMove = trackRepository.findOne(data.id);
|
||||||
|
|
||||||
|
TrackEntity save = new TrackEntity(toMove);
|
||||||
|
|
||||||
|
playlist = remove(playlist, toMove);
|
||||||
|
|
||||||
|
if(playlist == null)
|
||||||
|
{
|
||||||
|
logger.warn("Playlist: " + data.playlistId + " Track: " + data.id);
|
||||||
|
return TRACK_NOT_FOUND;
|
||||||
|
}
|
||||||
|
|
||||||
|
save.setPos(data.newPos);
|
||||||
|
|
||||||
|
playlist = insert(playlist, save);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return new ResponseEntity<>(new PlaylistResponseData("Ok", playlist),HttpStatus.OK);
|
||||||
|
|
||||||
|
} catch (UnknownTokenException e) {
|
||||||
|
logger.warn("Unknown token: "+ token);
|
||||||
|
return TOKEN_ERROR;
|
||||||
|
} catch (PlaylistNotFoundException e) {
|
||||||
|
logger.debug("Playlist not found: "+ data.playlistId);
|
||||||
|
return PLAYLIST_NOT_FOUND;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private PlaylistEntity getPlaylist(int id) throws PlaylistNotFoundException{
|
private PlaylistEntity getPlaylist(int id) throws PlaylistNotFoundException{
|
||||||
PlaylistEntity playlist = playlistRepository.findOne(id);
|
PlaylistEntity playlist = playlistRepository.findOne(id);
|
||||||
if(playlist == null)
|
if(playlist == null)
|
||||||
|
@ -1,14 +1,25 @@
|
|||||||
package net.Broken.webView;
|
package net.Broken.webView;
|
||||||
|
|
||||||
|
import net.Broken.DB.Entity.PlaylistEntity;
|
||||||
|
import net.Broken.DB.Entity.TrackEntity;
|
||||||
|
import net.Broken.DB.Entity.UserEntity;
|
||||||
|
import net.Broken.DB.Repository.UserRepository;
|
||||||
|
import net.Broken.RestApi.Commands.Play;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Web page controller for index
|
* Web page controller for index
|
||||||
*/
|
*/
|
||||||
@Controller
|
@Controller
|
||||||
public class GeneralWebView {
|
public class GeneralWebView {
|
||||||
|
|
||||||
|
|
||||||
@RequestMapping("/")
|
@RequestMapping("/")
|
||||||
public String music(Model model){
|
public String music(Model model){
|
||||||
|
|
||||||
@ -18,4 +29,8 @@ public class GeneralWebView {
|
|||||||
public String loading(Model model){
|
public String loading(Model model){
|
||||||
return "loading";
|
return "loading";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user