mirror of
https://github.com/TeamPiped/Piped-Backend.git
synced 2024-08-14 23:51:41 +00:00
commit
2b0b72ff28
3 changed files with 45 additions and 0 deletions
|
@ -345,6 +345,15 @@ public class ServerLauncher extends MultithreadedHttpServerLauncher {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return getErrorResponse(e, request.getPath());
|
return getErrorResponse(e, request.getPath());
|
||||||
}
|
}
|
||||||
|
})).map(POST, "/user/playlists/rename", AsyncServlet.ofBlocking(executor, request -> {
|
||||||
|
try {
|
||||||
|
var json = Constants.mapper.readTree(request.loadBody().getResult().asArray());
|
||||||
|
var playlistId = json.get("playlistId").textValue();
|
||||||
|
var newName = json.get("newName").textValue();
|
||||||
|
return getJsonResponse(ResponseHelper.renamePlaylistResponse(request.getHeader(AUTHORIZATION), playlistId, newName), "private");
|
||||||
|
} catch (Exception e) {
|
||||||
|
return getErrorResponse(e, request.getPath());
|
||||||
|
}
|
||||||
})).map(POST, "/user/playlists/delete", AsyncServlet.ofBlocking(executor, request -> {
|
})).map(POST, "/user/playlists/delete", AsyncServlet.ofBlocking(executor, request -> {
|
||||||
try {
|
try {
|
||||||
var json = Constants.mapper.readTree(request.loadBody().getResult().asArray());
|
var json = Constants.mapper.readTree(request.loadBody().getResult().asArray());
|
||||||
|
|
|
@ -1260,6 +1260,38 @@ public class ResponseHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static byte[] renamePlaylistResponse(String session, String playlistId, String newName) throws IOException {
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(playlistId))
|
||||||
|
return mapper.writeValueAsBytes(new InvalidRequestResponse());
|
||||||
|
|
||||||
|
User user = DatabaseHelper.getUserFromSession(session);
|
||||||
|
|
||||||
|
if (user == null)
|
||||||
|
return mapper.writeValueAsBytes(new AuthenticationFailureResponse());
|
||||||
|
|
||||||
|
try (Session s = DatabaseSessionFactory.createSession()) {
|
||||||
|
var playlist = DatabaseHelper.getPlaylistFromId(s, playlistId);
|
||||||
|
|
||||||
|
if (playlist == null)
|
||||||
|
return mapper.writeValueAsBytes(mapper.createObjectNode()
|
||||||
|
.put("error", "Playlist not found"));
|
||||||
|
|
||||||
|
if (playlist.getOwner().getId() != user.getId())
|
||||||
|
return mapper.writeValueAsBytes(mapper.createObjectNode()
|
||||||
|
.put("error", "You do not own this playlist"));
|
||||||
|
|
||||||
|
playlist.setName(newName);
|
||||||
|
|
||||||
|
var tr = s.beginTransaction();
|
||||||
|
s.merge(playlist);
|
||||||
|
tr.commit();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return mapper.writeValueAsBytes(new AcceptedResponse());
|
||||||
|
}
|
||||||
|
|
||||||
public static byte[] deletePlaylistResponse(String session, String playlistId) throws IOException {
|
public static byte[] deletePlaylistResponse(String session, String playlistId) throws IOException {
|
||||||
|
|
||||||
if (StringUtils.isBlank(playlistId))
|
if (StringUtils.isBlank(playlistId))
|
||||||
|
|
|
@ -99,6 +99,7 @@ sleep 2
|
||||||
curl ${CURLOPTS[@]} $HOST/feed -G --data-urlencode "authToken=$AUTH_TOKEN" || exit 1
|
curl ${CURLOPTS[@]} $HOST/feed -G --data-urlencode "authToken=$AUTH_TOKEN" || exit 1
|
||||||
|
|
||||||
PLAYLIST_NAME=$(openssl rand -hex 6)
|
PLAYLIST_NAME=$(openssl rand -hex 6)
|
||||||
|
RENAMED_PLAYLIST_NAME=$(openssl rand --hex 6)
|
||||||
|
|
||||||
# Create a Playlist
|
# Create a Playlist
|
||||||
curl ${CURLOPTS[@]} $HOST/user/playlists/create -X POST -H "Content-Type: application/json" -H "Authorization: $AUTH_TOKEN" -d $(jq -n --compact-output --arg name "$PLAYLIST_NAME" '{"name": $name}') || exit 1
|
curl ${CURLOPTS[@]} $HOST/user/playlists/create -X POST -H "Content-Type: application/json" -H "Authorization: $AUTH_TOKEN" -d $(jq -n --compact-output --arg name "$PLAYLIST_NAME" '{"name": $name}') || exit 1
|
||||||
|
@ -118,6 +119,9 @@ curl ${CURLOPTS[@]} $HOST/user/playlists/add -X POST -H "Content-Type: applicati
|
||||||
# Remove from Playlist Test
|
# Remove from Playlist Test
|
||||||
curl ${CURLOPTS[@]} $HOST/user/playlists/remove -X POST -H "Content-Type: application/json" -H "Authorization: $AUTH_TOKEN" -d $(jq -n --compact-output --arg index "0" --arg playlistId $PLAYLIST_ID '{"index": $index, "playlistId": $playlistId}') || exit 1
|
curl ${CURLOPTS[@]} $HOST/user/playlists/remove -X POST -H "Content-Type: application/json" -H "Authorization: $AUTH_TOKEN" -d $(jq -n --compact-output --arg index "0" --arg playlistId $PLAYLIST_ID '{"index": $index, "playlistId": $playlistId}') || exit 1
|
||||||
|
|
||||||
|
# Rename Playlist Test
|
||||||
|
curl ${CURLOPTS[@]} $HOST/user/playlists/delete -X POST -H "Content-Type: application/json" -H "Authorization: $AUTH_TOKEN" -d $(jq -n --compact-output --arg playlistId $PLAYLIST_ID --arg newName $RENAMED_PLAYLIST_NAME '{"playlistId": $playlistId, "newName": $newName}') || exit 1
|
||||||
|
|
||||||
# Delete Playlist Test
|
# Delete Playlist Test
|
||||||
curl ${CURLOPTS[@]} $HOST/user/playlists/delete -X POST -H "Content-Type: application/json" -H "Authorization: $AUTH_TOKEN" -d $(jq -n --compact-output --arg playlistId $PLAYLIST_ID '{"playlistId": $playlistId}') || exit 1
|
curl ${CURLOPTS[@]} $HOST/user/playlists/delete -X POST -H "Content-Type: application/json" -H "Authorization: $AUTH_TOKEN" -d $(jq -n --compact-output --arg playlistId $PLAYLIST_ID '{"playlistId": $playlistId}') || exit 1
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue