]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - 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
1
2 /**
3 *
4 * Class to build video attributes/join names we want to fetch from the database
5 *
6 */
7 export class VideoTableAttributes {
8
9 constructor (private readonly mode: 'get' | 'list') {
10
11 }
12
13 getChannelAttributesForUser () {
14 return [ 'id', 'accountId' ]
15 }
16
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
36 getUserAccountAttributes () {
37 return [ 'id', 'userId' ]
38 }
39
40 getAccountAttributes () {
41 let attributeKeys = [ 'id', 'name', 'actorId' ]
42
43 if (this.mode === 'get') {
44 attributeKeys = attributeKeys.concat([
45 'description',
46 'userId',
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',
90 'videoId',
91 'storage'
92 ]
93 }
94
95 getStreamingPlaylistAttributes () {
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 ]
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
140 getBlocklistAttributes () {
141 return [ 'id' ]
142 }
143
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',
161 'latencyMode',
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',
190 'serverId'
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',
215 'width',
216 'filename',
217 'type',
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',
266 'updatedAt',
267 'moveJobsRunning'
268 ]
269 }
270 }