From 00e32dc992441550354d634bf6f8191d3370f919 Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Wed, 6 Apr 2022 13:07:50 +0100 Subject: [PATCH] Add route to add video to playlist. --- .../java/me/kavin/piped/ServerLauncher.java | 9 +++ .../me/kavin/piped/utils/DatabaseHelper.java | 24 ++++--- .../me/kavin/piped/utils/ResponseHelper.java | 72 ++++++++++++++++++- .../piped/utils/obj/db/PlaylistVideo.java | 17 ++--- testing/api-test.sh | 3 + 5 files changed, 103 insertions(+), 22 deletions(-) diff --git a/src/main/java/me/kavin/piped/ServerLauncher.java b/src/main/java/me/kavin/piped/ServerLauncher.java index a1750ef..4572eda 100644 --- a/src/main/java/me/kavin/piped/ServerLauncher.java +++ b/src/main/java/me/kavin/piped/ServerLauncher.java @@ -291,6 +291,15 @@ public class ServerLauncher extends MultithreadedHttpServerLauncher { } catch (Exception e) { return getErrorResponse(e, request.getPath()); } + })).map(POST, "/user/playlists/add", AsyncServlet.ofBlocking(executor, request -> { + try { + var json = Constants.mapper.readTree(request.loadBody().getResult().asArray()); + var playlistId = json.get("playlistId").asText(); + var videoId = json.get("videoId").asText(); + return getJsonResponse(ResponseHelper.addToPlaylistResponse(request.getHeader(AUTHORIZATION), playlistId, videoId), "private"); + } catch (Exception e) { + return getErrorResponse(e, request.getPath()); + } })).map(GET, "/registered/badge", AsyncServlet.ofBlocking(executor, request -> { try { return HttpResponse.ofCode(302).withHeader(LOCATION, ResponseHelper.registeredBadgeRedirect()) diff --git a/src/main/java/me/kavin/piped/utils/DatabaseHelper.java b/src/main/java/me/kavin/piped/utils/DatabaseHelper.java index ce1fbae..75aed1b 100644 --- a/src/main/java/me/kavin/piped/utils/DatabaseHelper.java +++ b/src/main/java/me/kavin/piped/utils/DatabaseHelper.java @@ -1,9 +1,6 @@ package me.kavin.piped.utils; -import me.kavin.piped.utils.obj.db.Channel; -import me.kavin.piped.utils.obj.db.PubSub; -import me.kavin.piped.utils.obj.db.User; -import me.kavin.piped.utils.obj.db.Video; +import me.kavin.piped.utils.obj.db.*; import org.hibernate.Session; import javax.persistence.criteria.CriteriaBuilder; @@ -13,7 +10,7 @@ import javax.persistence.criteria.Root; public class DatabaseHelper { - public static final User getUserFromSession(String session) { + public static User getUserFromSession(String session) { try (Session s = DatabaseSessionFactory.createSession()) { CriteriaBuilder cb = s.getCriteriaBuilder(); CriteriaQuery cr = cb.createQuery(User.class); @@ -24,7 +21,7 @@ public class DatabaseHelper { } } - public static final User getUserFromSessionWithSubscribed(String session) { + public static User getUserFromSessionWithSubscribed(String session) { try (Session s = DatabaseSessionFactory.createSession()) { CriteriaBuilder cb = s.getCriteriaBuilder(); CriteriaQuery cr = cb.createQuery(User.class); @@ -36,7 +33,7 @@ public class DatabaseHelper { } } - public static final Channel getChannelFromId(Session s, String id) { + public static Channel getChannelFromId(Session s, String id) { CriteriaBuilder cb = s.getCriteriaBuilder(); CriteriaQuery cr = cb.createQuery(Channel.class); Root root = cr.from(Channel.class); @@ -45,7 +42,7 @@ public class DatabaseHelper { return s.createQuery(cr).uniqueResult(); } - public static final Video getVideoFromId(Session s, String id) { + public static Video getVideoFromId(Session s, String id) { CriteriaBuilder cb = s.getCriteriaBuilder(); CriteriaQuery