aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/com/pinapelz/query/VideoQueryBuilder.java
blob: c8db237e1200d98938ec30592f25a8b2570ff13e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
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
 */
public class VideoQueryBuilder {
    private String channelId;
    private String id;
    private String include;
    private String lang;
    private Integer limit;
    private Integer maxUpcomingHours;
    private String mentionedChannelId;
    private Integer offset;
    private String order;
    private String org;
    private String paginated;
    private String sort;
    private String status;
    private String topic;
    private String type;

    public VideoQueryBuilder setChannelId(String channelId) {
        this.channelId = channelId;
        return this;
    }

    public VideoQueryBuilder setId(String id) {
        this.id = id;
        return this;
    }

    public VideoQueryBuilder setInclude(String include) {
        this.include = include;
        return this;
    }

    public VideoQueryBuilder setInclude(ExtraData include) {
        this.include = include.toString();
        return this;
    }

    public VideoQueryBuilder setInclude(List<ExtraData> 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<Language> 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;
    }

    public VideoQueryBuilder setMaxUpcomingHours(Integer maxUpcomingHours) {
        this.maxUpcomingHours = maxUpcomingHours;
        return this;
    }

    public VideoQueryBuilder setMentionedChannelId(String mentionedChannelId) {
        this.mentionedChannelId = mentionedChannelId;
        return this;
    }

    public VideoQueryBuilder setOffset(Integer offset) {
        this.offset = offset;
        return this;
    }

    public VideoQueryBuilder setOrder(String order) {
        this.order = order;
        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;
    }

    public VideoQueryBuilder setSort(String sort) {
        this.sort = sort;
        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;
    }

    public VideoQueryBuilder setType(String type) {
        this.type = type;
        return this;
    }

    public String getChannelId() {
        return channelId;
    }

    public String getId() {
        return id;
    }

    public String getInclude() {
        return include;
    }

    public String getLang() {
        return lang;
    }

    public Integer getLimit() {
        return limit;
    }

    public Integer getMaxUpcomingHours() {
        return maxUpcomingHours;
    }

    public String getMentionedChannelId() {
        return mentionedChannelId;
    }

    public Integer getOffset() {
        return offset;
    }

    public String getOrder() {
        return order;
    }

    public String getOrg() {
        return org;
    }

    public String getPaginated() {
        return paginated;
    }

    public String getSort() {
        return sort;
    }

    public String getStatus() {
        return status;
    }

    public String getTopic() {
        return topic;
    }

    public String getType() {
        return type;
    }
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage