diff --git a/src/main/java/me/kavin/piped/ServerLauncher.java b/src/main/java/me/kavin/piped/ServerLauncher.java index 8f96933..4e81dfc 100644 --- a/src/main/java/me/kavin/piped/ServerLauncher.java +++ b/src/main/java/me/kavin/piped/ServerLauncher.java @@ -260,6 +260,13 @@ public class ServerLauncher extends MultithreadedHttpServerLauncher { } catch (Exception e) { return getErrorResponse(e); } + })).map(GET, "/subscriptions", AsyncServlet.ofBlocking(executor, request -> { + try { + return getJsonResponse(ResponseHelper.subscriptionsResponse(request.getHeader(AUTHORIZATION)), + "private"); + } catch (Exception e) { + return getErrorResponse(e); + } })); return new CustomServletDecorator(router); diff --git a/src/main/java/me/kavin/piped/utils/DatabaseHelper.java b/src/main/java/me/kavin/piped/utils/DatabaseHelper.java index 7fb1ce7..f09047a 100644 --- a/src/main/java/me/kavin/piped/utils/DatabaseHelper.java +++ b/src/main/java/me/kavin/piped/utils/DatabaseHelper.java @@ -46,6 +46,15 @@ public class DatabaseHelper { return s.createQuery(cr).uniqueResult(); } + public static final List getChannelFromIds(Session s, List id) { + CriteriaBuilder cb = s.getCriteriaBuilder(); + CriteriaQuery cr = cb.createQuery(Channel.class); + Root root = cr.from(Channel.class); + cr.select(root).where(root.get("uploader_id").in(id)); + + return s.createQuery(cr).getResultList(); + } + public static final List