From 80239b6b63197519691153839f56e86fe99e18cb Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sat, 29 Apr 2023 20:34:18 -0700 Subject: Updated code to use enums for certain constants --- .../com/pinapelz/query/ChannelQueryBuilder.java | 36 +++++++++++++++ .../pinapelz/query/CommentSearchQueryBuilder.java | 47 +++++++++++++++++-- .../pinapelz/query/VideoByVideoIdQueryBuilder.java | 20 ++++++++ .../java/com/pinapelz/query/VideoQueryBuilder.java | 54 ++++++++++++++++++++++ .../pinapelz/query/VideoSearchQueryBuilder.java | 42 +++++++++++++++-- .../query/VideosByChannelIDQueryBuilder.java | 40 ++++++++++++++++ 6 files changed, 231 insertions(+), 8 deletions(-) (limited to 'src/main/java/com/pinapelz/query') diff --git a/src/main/java/com/pinapelz/query/ChannelQueryBuilder.java b/src/main/java/com/pinapelz/query/ChannelQueryBuilder.java index 24d3c91..329427c 100644 --- a/src/main/java/com/pinapelz/query/ChannelQueryBuilder.java +++ b/src/main/java/com/pinapelz/query/ChannelQueryBuilder.java @@ -1,5 +1,12 @@ package com.pinapelz.query; +import com.pinapelz.vtuber.Language; +import com.pinapelz.vtuber.Order; +import com.pinapelz.vtuber.Organization; +import com.pinapelz.vtuber.Sort; + +import java.util.List; + /** * Query builder for getting a list of Channels matching the given parameters */ @@ -48,6 +55,20 @@ public class ChannelQueryBuilder { return this; } + public ChannelQueryBuilder setLang(Language lang) { + this.lang = lang.toString(); + return this; + } + + public ChannelQueryBuilder setLang(List language) { + String[] languages = new String[language.size()]; + for (int i = 0; i < language.size(); i++) { + languages[i] = language.get(i).toString(); + } + this.lang = String.join(",", languages); + return this; + } + public String getOrder() { return order; } @@ -57,6 +78,11 @@ public class ChannelQueryBuilder { return this; } + public ChannelQueryBuilder setOrder(Order order){ + this.order = order.toString(); + return this; + } + public String getOrg() { return org; } @@ -66,6 +92,11 @@ public class ChannelQueryBuilder { return this; } + public ChannelQueryBuilder setOrg(Organization org) { + this.org = org.toString(); + return this; + } + public String getSort() { return sort; } @@ -75,5 +106,10 @@ public class ChannelQueryBuilder { return this; } + public ChannelQueryBuilder setSort(Sort sort){ + this.sort = sort.toString(); + return this; + } + } diff --git a/src/main/java/com/pinapelz/query/CommentSearchQueryBuilder.java b/src/main/java/com/pinapelz/query/CommentSearchQueryBuilder.java index eeb83d5..4e0020b 100644 --- a/src/main/java/com/pinapelz/query/CommentSearchQueryBuilder.java +++ b/src/main/java/com/pinapelz/query/CommentSearchQueryBuilder.java @@ -1,5 +1,9 @@ package com.pinapelz.query; +import com.pinapelz.vtuber.Language; +import com.pinapelz.vtuber.Sort; +import com.pinapelz.vtuber.Type; + import java.util.ArrayList; import java.util.List; @@ -9,7 +13,6 @@ import java.util.List; */ public class CommentSearchQueryBuilder { private String sort; - private List lang; private List target; private List conditions; private List topic; @@ -19,6 +22,7 @@ public class CommentSearchQueryBuilder { private boolean paginated; private int offset; private int limit; + private List lang; public CommentSearchQueryBuilder(){ this.sort = "newest"; @@ -42,11 +46,30 @@ public class CommentSearchQueryBuilder { return this; } + public CommentSearchQueryBuilder setSort(Sort sort) { + this.sort = sort.toString(); + return this; + } + public List getLang() { return lang; } - public CommentSearchQueryBuilder setLang(List lang) { + public CommentSearchQueryBuilder setLang(String lang) { + this.lang = List.of(lang); + return this; + } + + public CommentSearchQueryBuilder setLang(Language lang) { + this.lang = List.of(lang.toString()); + return this; + } + + public CommentSearchQueryBuilder setLang(Language[] language) { + List lang = new ArrayList(); + for (Language l : language) { + lang.add(l.toString()); + } this.lang = lang; return this; } @@ -55,11 +78,27 @@ public class CommentSearchQueryBuilder { return target; } - public CommentSearchQueryBuilder setTarget(List target) { - this.target = target; + public CommentSearchQueryBuilder setTarget(String target) { + this.target = List.of(target); + return this; + } + + public CommentSearchQueryBuilder setTarget(Type target) { + this.target = List.of(target.toString()); return this; } + public CommentSearchQueryBuilder setTarget(List target) { + List targets = new ArrayList(); + for (Type t : target) { + targets.add(t.toString()); + } + this.target = targets; + return this; + } + + + public List getConditions() { return conditions; } diff --git a/src/main/java/com/pinapelz/query/VideoByVideoIdQueryBuilder.java b/src/main/java/com/pinapelz/query/VideoByVideoIdQueryBuilder.java index 7348683..6729916 100644 --- a/src/main/java/com/pinapelz/query/VideoByVideoIdQueryBuilder.java +++ b/src/main/java/com/pinapelz/query/VideoByVideoIdQueryBuilder.java @@ -1,5 +1,10 @@ package com.pinapelz.query; +import com.pinapelz.datatypes.Video; +import com.pinapelz.vtuber.Language; + +import java.util.List; + /** * Query builder for getting a video by video id */ @@ -21,11 +26,26 @@ public class VideoByVideoIdQueryBuilder { return lang; } + public VideoByVideoIdQueryBuilder setLang(String lang) { this.lang = lang; return this; } + public VideoByVideoIdQueryBuilder setLang(Language lang) { + this.lang = lang.toString(); + return this; + } + + public VideoByVideoIdQueryBuilder setLang(List language) { + String[] languages = new String[language.size()]; + for (int i = 0; i < language.size(); i++) { + languages[i] = language.get(i).toString(); + } + this.lang = String.join(",", languages); + return this; + } + public String getC() { return c; } diff --git a/src/main/java/com/pinapelz/query/VideoQueryBuilder.java b/src/main/java/com/pinapelz/query/VideoQueryBuilder.java index b7072fc..c8db237 100644 --- a/src/main/java/com/pinapelz/query/VideoQueryBuilder.java +++ b/src/main/java/com/pinapelz/query/VideoQueryBuilder.java @@ -1,5 +1,10 @@ package com.pinapelz.query; +import com.pinapelz.datatypes.Video; +import com.pinapelz.vtuber.*; + +import java.util.List; + /** * Query builder for getting a set of videos matching the given parameters */ @@ -35,11 +40,40 @@ public class VideoQueryBuilder { return this; } + public VideoQueryBuilder setInclude(ExtraData include) { + this.include = include.toString(); + return this; + } + + public VideoQueryBuilder setInclude(List include){ + String[] includeStrings = new String[include.size()]; + for (int i = 0; i < include.size(); i++) { + includeStrings[i] = include.get(i).toString(); + } + this.include = String.join(",", includeStrings); + return this; + } + public VideoQueryBuilder setLang(String lang) { this.lang = lang; return this; } + public VideoQueryBuilder setLang(Language lang) { + this.lang = lang.toString(); + return this; + } + + public VideoQueryBuilder setLang(List lang) { + String[] langStrings = new String[lang.size()]; + for (int i = 0; i < lang.size(); i++) { + langStrings[i] = lang.get(i).toString(); + } + this.lang = String.join(",", langStrings); + return this; + } + + public VideoQueryBuilder setLimit(Integer limit) { this.limit = limit; return this; @@ -65,11 +99,21 @@ public class VideoQueryBuilder { return this; } + public VideoQueryBuilder setOrder(Order order) { + this.order = order.toString(); + return this; + } + public VideoQueryBuilder setOrg(String org) { this.org = org; return this; } + public VideoQueryBuilder setOrg(Organization org) { + this.org = org.toString(); + return this; + } + public VideoQueryBuilder setPaginated(String paginated) { this.paginated = paginated; return this; @@ -80,11 +124,21 @@ public class VideoQueryBuilder { return this; } + public VideoQueryBuilder setSort(Sort sort) { + this.sort = sort.toString(); + return this; + } + public VideoQueryBuilder setStatus(String status) { this.status = status; return this; } + public VideoQueryBuilder setStatus(Status status) { + this.status = status.toString(); + return this; + } + public VideoQueryBuilder setTopic(String topic) { this.topic = topic; return this; diff --git a/src/main/java/com/pinapelz/query/VideoSearchQueryBuilder.java b/src/main/java/com/pinapelz/query/VideoSearchQueryBuilder.java index 5147d97..e982ac7 100644 --- a/src/main/java/com/pinapelz/query/VideoSearchQueryBuilder.java +++ b/src/main/java/com/pinapelz/query/VideoSearchQueryBuilder.java @@ -1,5 +1,9 @@ package com.pinapelz.query; +import com.pinapelz.vtuber.Language; +import com.pinapelz.vtuber.Sort; +import com.pinapelz.vtuber.Type; + import java.util.ArrayList; import java.util.List; @@ -42,12 +46,27 @@ public class VideoSearchQueryBuilder { return this; } + public VideoSearchQueryBuilder setSort(Sort sort) { + this.sort = sort.toString(); + return this; + } + public List getLang() { return lang; } - public VideoSearchQueryBuilder setLang(List lang) { - this.lang = lang; + public VideoSearchQueryBuilder setLang(String lang) { + this.lang = List.of(lang); + return this; + } + + public VideoSearchQueryBuilder setLang(Language lang) { + this.lang = List.of(lang.toString()); + return this; + } + + public VideoSearchQueryBuilder setLang(List language) { + this.lang = language; return this; } @@ -55,11 +74,26 @@ public class VideoSearchQueryBuilder { return target; } - public VideoSearchQueryBuilder setTarget(List target) { - this.target = target; + public VideoSearchQueryBuilder setTarget(String target) { + this.target = List.of(target); + return this; + } + + public VideoSearchQueryBuilder setTarget(Type target) { + this.target = List.of(target.toString()); return this; } + public VideoSearchQueryBuilder setTarget(List target) { + List targets = new ArrayList(); + for (Type t : target) { + targets.add(t.toString()); + } + this.target = targets; + return this; + } + + public List getConditions() { return conditions; } diff --git a/src/main/java/com/pinapelz/query/VideosByChannelIDQueryBuilder.java b/src/main/java/com/pinapelz/query/VideosByChannelIDQueryBuilder.java index 821df24..9047f1a 100644 --- a/src/main/java/com/pinapelz/query/VideosByChannelIDQueryBuilder.java +++ b/src/main/java/com/pinapelz/query/VideosByChannelIDQueryBuilder.java @@ -1,5 +1,10 @@ package com.pinapelz.query; +import com.pinapelz.vtuber.ExtraData; +import com.pinapelz.vtuber.Language; + +import java.util.List; + /** * Query builder for getting videos by a given channel id */ @@ -27,11 +32,46 @@ public class VideosByChannelIDQueryBuilder { return this; } + public VideosByChannelIDQueryBuilder setInclude(String[] include) { + this.include = String.join(",", include); + return this; + } + + public VideosByChannelIDQueryBuilder setInclude(ExtraData[] include) { + String[] includeStrings = new String[include.length]; + for (int i = 0; i < include.length; i++) { + includeStrings[i] = include[i].toString(); + } + this.include = String.join(",", includeStrings); + return this; + } + + public VideosByChannelIDQueryBuilder setInclude(ExtraData include) { + this.include = include.toString(); + return this; + } + + + public VideosByChannelIDQueryBuilder setLang(String lang) { this.lang = lang; return this; } + public VideosByChannelIDQueryBuilder setLang(Language lang) { + this.lang = lang.toString(); + return this; + } + + public VideosByChannelIDQueryBuilder setLang(List lang){ + String[] langStrings = new String[lang.size()]; + for (int i = 0; i < lang.size(); i++) { + langStrings[i] = lang.get(i).toString(); + } + this.lang = String.join(",", langStrings); + return this; + } + public VideosByChannelIDQueryBuilder setLimit(Integer limit) { this.limit = limit; return this; -- cgit v1.2.3