]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/models/video/sql/video/shared/video-table-attributes.ts
Fix lint
[github/Chocobozzz/PeerTube.git] / server / models / video / sql / video / shared / video-table-attributes.ts
CommitLineData
1d43c3a6
C
1
2/**
3 *
17bb4538 4 * Class to build video attributes/join names we want to fetch from the database
1d43c3a6
C
5 *
6 */
7e7d8e48 7export class VideoTableAttributes {
d9bf974f 8
156c44c8 9 constructor (private readonly mode: 'get' | 'list') {
d9bf974f
C
10
11 }
12
71d4af1e
C
13 getChannelAttributesForUser () {
14 return [ 'id', 'accountId' ]
15 }
16
d9bf974f
C
17 getChannelAttributes () {
18 let attributeKeys = [
19 'id',
20 'name',
21 'description',
22 'actorId'
23 ]
24
25 if (this.mode === 'get') {
26 attributeKeys = attributeKeys.concat([
27 'support',
28 'createdAt',
29 'updatedAt'
30 ])
31 }
32
33 return attributeKeys
34 }
35
71d4af1e
C
36 getUserAccountAttributes () {
37 return [ 'id', 'userId' ]
38 }
39
d9bf974f
C
40 getAccountAttributes () {
41 let attributeKeys = [ 'id', 'name', 'actorId' ]
42
43 if (this.mode === 'get') {
44 attributeKeys = attributeKeys.concat([
45 'description',
b8afe6f0 46 'userId',
d9bf974f
C
47 'createdAt',
48 'updatedAt'
49 ])
50 }
51
52 return attributeKeys
53 }
54
55 getThumbnailAttributes () {
56 let attributeKeys = [ 'id', 'type', 'filename' ]
57
58 if (this.mode === 'get') {
59 attributeKeys = attributeKeys.concat([
60 'height',
61 'width',
62 'fileUrl',
63 'automaticallyGenerated',
64 'videoId',
65 'videoPlaylistId',
66 'createdAt',
67 'updatedAt'
68 ])
69 }
70
71 return attributeKeys
72 }
73
74 getFileAttributes () {
75 return [
76 'id',
77 'createdAt',
78 'updatedAt',
79 'resolution',
80 'size',
81 'extname',
82 'filename',
83 'fileUrl',
84 'torrentFilename',
85 'torrentUrl',
86 'infoHash',
87 'fps',
88 'metadataUrl',
89 'videoStreamingPlaylistId',
0305db28
JB
90 'videoId',
91 'storage'
d9bf974f
C
92 ]
93 }
94
95 getStreamingPlaylistAttributes () {
7e7d8e48
C
96 return [
97 'id',
98 'playlistUrl',
99 'playlistFilename',
100 'type',
101 'p2pMediaLoaderInfohashes',
102 'p2pMediaLoaderPeerVersion',
103 'segmentsSha256Filename',
104 'segmentsSha256Url',
105 'videoId',
106 'createdAt',
107 'updatedAt',
108 'storage'
109 ]
d9bf974f
C
110 }
111
112 getUserHistoryAttributes () {
113 return [ 'id', 'currentTime' ]
114 }
115
116 getPlaylistAttributes () {
117 return [
118 'createdAt',
119 'updatedAt',
120 'url',
121 'position',
122 'startTimestamp',
123 'stopTimestamp',
124 'videoPlaylistId'
125 ]
126 }
127
128 getTagAttributes () {
129 return [ 'id', 'name' ]
130 }
131
132 getVideoTagAttributes () {
133 return [ 'videoId', 'tagId', 'createdAt', 'updatedAt' ]
134 }
135
136 getBlacklistedAttributes () {
137 return [ 'id', 'reason', 'unfederated' ]
138 }
139
2760b454
C
140 getBlocklistAttributes () {
141 return [ 'id' ]
142 }
143
d9bf974f
C
144 getScheduleUpdateAttributes () {
145 return [
146 'id',
147 'updateAt',
148 'privacy',
149 'videoId',
150 'createdAt',
151 'updatedAt'
152 ]
153 }
154
155 getLiveAttributes () {
156 return [
157 'id',
158 'streamKey',
159 'saveReplay',
160 'permanentLive',
f443a746 161 'latencyMode',
d9bf974f
C
162 'videoId',
163 'createdAt',
164 'updatedAt'
165 ]
166 }
167
168 getTrackerAttributes () {
169 return [ 'id', 'url' ]
170 }
171
172 getVideoTrackerAttributes () {
173 return [
174 'videoId',
175 'trackerId',
176 'createdAt',
177 'updatedAt'
178 ]
179 }
180
181 getRedundancyAttributes () {
182 return [ 'id', 'fileUrl' ]
183 }
184
185 getActorAttributes () {
186 let attributeKeys = [
187 'id',
188 'preferredUsername',
189 'url',
d0800f76 190 'serverId'
d9bf974f
C
191 ]
192
193 if (this.mode === 'get') {
194 attributeKeys = attributeKeys.concat([
195 'type',
196 'followersCount',
197 'followingCount',
198 'inboxUrl',
199 'outboxUrl',
200 'sharedInboxUrl',
201 'followersUrl',
202 'followingUrl',
203 'remoteCreatedAt',
204 'createdAt',
205 'updatedAt'
206 ])
207 }
208
209 return attributeKeys
210 }
211
212 getAvatarAttributes () {
213 let attributeKeys = [
214 'id',
d0800f76 215 'width',
d9bf974f 216 'filename',
17bb4538 217 'type',
d9bf974f
C
218 'fileUrl',
219 'onDisk',
220 'createdAt',
221 'updatedAt'
222 ]
223
224 if (this.mode === 'get') {
225 attributeKeys = attributeKeys.concat([
226 'height',
227 'width',
228 'type'
229 ])
230 }
231
232 return attributeKeys
233 }
234
235 getServerAttributes () {
236 return [ 'id', 'host' ]
237 }
238
239 getVideoAttributes () {
240 return [
241 'id',
242 'uuid',
243 'name',
244 'category',
245 'licence',
246 'language',
247 'privacy',
248 'nsfw',
249 'description',
250 'support',
251 'duration',
252 'views',
253 'likes',
254 'dislikes',
255 'remote',
256 'isLive',
257 'url',
258 'commentsEnabled',
259 'downloadEnabled',
260 'waitTranscoding',
261 'state',
262 'publishedAt',
263 'originallyPublishedAt',
264 'channelId',
265 'createdAt',
0305db28
JB
266 'updatedAt',
267 'moveJobsRunning'
d9bf974f
C
268 ]
269 }
270}