From 643250ad2a67f677c43e24bfe764ac0483086bb6 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sat, 15 Apr 2023 02:07:12 -0700 Subject: General cleanup of POST features --- src/main/java/com/pina/Holodex.java | 19 ++++++++++++++++++- .../java/com/pina/datatypes/CommentSearchResult.java | 3 +++ src/main/java/com/pina/datatypes/Paginated.java | 3 +++ .../java/com/pina/datatypes/SimpleCommentVideo.java | 5 +++++ .../java/com/pina/datatypes/VideoSearchResult.java | 3 +++ .../com/pina/query/CommentSearchQueryBuilder.java | 4 ++++ .../java/com/pina/query/VideoSearchQueryBuilder.java | 4 ++++ 7 files changed, 40 insertions(+), 1 deletion(-) (limited to 'src/main/java/com/pina') diff --git a/src/main/java/com/pina/Holodex.java b/src/main/java/com/pina/Holodex.java index 2b211e0..eca6147 100644 --- a/src/main/java/com/pina/Holodex.java +++ b/src/main/java/com/pina/Holodex.java @@ -188,6 +188,15 @@ public class Holodex { return executeCall(call); } + /** + * Sends a POST request to search for videos matching the VideoSearchQueryBuilder attributes + * If the query is paginated, the response will be a VideoSearchResult object + * If the query is not paginated, the response will be a list of SimpleVideo objects + * @param query + * @return + * @throws HolodexException + */ + public Object searchVideo(VideoSearchQueryBuilder query) throws HolodexException { Map payload = toMap(query); RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), @@ -201,6 +210,14 @@ public class Holodex { } + /** + * Sends a POST request to search for comments matching the CommentSearchQueryBuilder attributes + * If the query is paginated, the response will be a CommentSearchResult object + * If the query is not paginated, the response will be a list of SimpleCommentVideo objects + * @param query + * @return + * @throws HolodexException + */ public Object searchComment(CommentSearchQueryBuilder query) throws HolodexException{ Map payload = toMap(query); RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), @@ -213,7 +230,7 @@ public class Holodex { return executeCall(call); } - public static Map toMap(Object obj) throws HolodexException { + private static Map toMap(Object obj) throws HolodexException { Map map = new HashMap<>(); Field[] fields = obj.getClass().getDeclaredFields(); for (Field field : fields) { diff --git a/src/main/java/com/pina/datatypes/CommentSearchResult.java b/src/main/java/com/pina/datatypes/CommentSearchResult.java index a68b162..b85d3b3 100644 --- a/src/main/java/com/pina/datatypes/CommentSearchResult.java +++ b/src/main/java/com/pina/datatypes/CommentSearchResult.java @@ -2,6 +2,9 @@ package com.pina.datatypes; import java.util.List; +/** + * Result object for a paginated comment search + */ public class CommentSearchResult { public int total; public List items; diff --git a/src/main/java/com/pina/datatypes/Paginated.java b/src/main/java/com/pina/datatypes/Paginated.java index 8095daf..428cf52 100644 --- a/src/main/java/com/pina/datatypes/Paginated.java +++ b/src/main/java/com/pina/datatypes/Paginated.java @@ -5,6 +5,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +/** + * Annotation for paginated queries + */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Paginated { diff --git a/src/main/java/com/pina/datatypes/SimpleCommentVideo.java b/src/main/java/com/pina/datatypes/SimpleCommentVideo.java index 7a7c9d4..715eed8 100644 --- a/src/main/java/com/pina/datatypes/SimpleCommentVideo.java +++ b/src/main/java/com/pina/datatypes/SimpleCommentVideo.java @@ -2,6 +2,11 @@ package com.pina.datatypes; import java.util.List; +/** + * The same as SimpleVideo, but with comments + * @see SimpleVideo + * + */ public class SimpleCommentVideo { public String id; public String title; diff --git a/src/main/java/com/pina/datatypes/VideoSearchResult.java b/src/main/java/com/pina/datatypes/VideoSearchResult.java index 4a9996f..4525bc9 100644 --- a/src/main/java/com/pina/datatypes/VideoSearchResult.java +++ b/src/main/java/com/pina/datatypes/VideoSearchResult.java @@ -2,6 +2,9 @@ package com.pina.datatypes; import java.util.List; +/** + * Result object for a paginated video search + */ public class VideoSearchResult { public int total; public List items; diff --git a/src/main/java/com/pina/query/CommentSearchQueryBuilder.java b/src/main/java/com/pina/query/CommentSearchQueryBuilder.java index a251a54..7e0f3f8 100644 --- a/src/main/java/com/pina/query/CommentSearchQueryBuilder.java +++ b/src/main/java/com/pina/query/CommentSearchQueryBuilder.java @@ -3,6 +3,10 @@ package com.pina.query; import java.util.ArrayList; import java.util.List; +/** + * Builder for a comment search query + * Default values set in constructor + */ public class CommentSearchQueryBuilder { private String sort; private List lang; diff --git a/src/main/java/com/pina/query/VideoSearchQueryBuilder.java b/src/main/java/com/pina/query/VideoSearchQueryBuilder.java index c4a82be..476994e 100644 --- a/src/main/java/com/pina/query/VideoSearchQueryBuilder.java +++ b/src/main/java/com/pina/query/VideoSearchQueryBuilder.java @@ -3,6 +3,10 @@ package com.pina.query; import java.util.ArrayList; import java.util.List; +/** + * Builder for a video search query + * Default values set in constructor + */ public class VideoSearchQueryBuilder { private String sort; private List lang; -- cgit v1.2.3