]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/models/video/sql/shared/video-tables.ts
Add ability to view my followers
[github/Chocobozzz/PeerTube.git] / server / models / video / sql / shared / video-tables.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 */
17bb4538 7export class VideoTables {
d9bf974f
C
8
9 constructor (readonly mode: 'get' | 'list') {
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 () {
764b1a14 96 let playlistKeys = [ 'id', 'playlistUrl', 'playlistFilename', 'type' ]
d9bf974f
C
97
98 if (this.mode === 'get') {
99 playlistKeys = playlistKeys.concat([
100 'p2pMediaLoaderInfohashes',
101 'p2pMediaLoaderPeerVersion',
764b1a14 102 'segmentsSha256Filename',
d9bf974f
C
103 'segmentsSha256Url',
104 'videoId',
105 'createdAt',
0305db28
JB
106 'updatedAt',
107 'storage'
d9bf974f
C
108 ])
109 }
110
111 return playlistKeys
112 }
113
114 getUserHistoryAttributes () {
115 return [ 'id', 'currentTime' ]
116 }
117
118 getPlaylistAttributes () {
119 return [
120 'createdAt',
121 'updatedAt',
122 'url',
123 'position',
124 'startTimestamp',
125 'stopTimestamp',
126 'videoPlaylistId'
127 ]
128 }
129
130 getTagAttributes () {
131 return [ 'id', 'name' ]
132 }
133
134 getVideoTagAttributes () {
135 return [ 'videoId', 'tagId', 'createdAt', 'updatedAt' ]
136 }
137
138 getBlacklistedAttributes () {
139 return [ 'id', 'reason', 'unfederated' ]
140 }
141
142 getScheduleUpdateAttributes () {
143 return [
144 'id',
145 'updateAt',
146 'privacy',
147 'videoId',
148 'createdAt',
149 'updatedAt'
150 ]
151 }
152
153 getLiveAttributes () {
154 return [
155 'id',
156 'streamKey',
157 'saveReplay',
158 'permanentLive',
159 'videoId',
160 'createdAt',
161 'updatedAt'
162 ]
163 }
164
165 getTrackerAttributes () {
166 return [ 'id', 'url' ]
167 }
168
169 getVideoTrackerAttributes () {
170 return [
171 'videoId',
172 'trackerId',
173 'createdAt',
174 'updatedAt'
175 ]
176 }
177
178 getRedundancyAttributes () {
179 return [ 'id', 'fileUrl' ]
180 }
181
182 getActorAttributes () {
183 let attributeKeys = [
184 'id',
185 'preferredUsername',
186 'url',
187 'serverId',
188 'avatarId'
189 ]
190
191 if (this.mode === 'get') {
192 attributeKeys = attributeKeys.concat([
193 'type',
194 'followersCount',
195 'followingCount',
196 'inboxUrl',
197 'outboxUrl',
198 'sharedInboxUrl',
199 'followersUrl',
200 'followingUrl',
201 'remoteCreatedAt',
202 'createdAt',
203 'updatedAt'
204 ])
205 }
206
207 return attributeKeys
208 }
209
210 getAvatarAttributes () {
211 let attributeKeys = [
212 'id',
213 'filename',
17bb4538 214 'type',
d9bf974f
C
215 'fileUrl',
216 'onDisk',
217 'createdAt',
218 'updatedAt'
219 ]
220
221 if (this.mode === 'get') {
222 attributeKeys = attributeKeys.concat([
223 'height',
224 'width',
225 'type'
226 ])
227 }
228
229 return attributeKeys
230 }
231
232 getServerAttributes () {
233 return [ 'id', 'host' ]
234 }
235
236 getVideoAttributes () {
237 return [
238 'id',
239 'uuid',
240 'name',
241 'category',
242 'licence',
243 'language',
244 'privacy',
245 'nsfw',
246 'description',
247 'support',
248 'duration',
249 'views',
250 'likes',
251 'dislikes',
252 'remote',
253 'isLive',
254 'url',
255 'commentsEnabled',
256 'downloadEnabled',
257 'waitTranscoding',
258 'state',
259 'publishedAt',
260 'originallyPublishedAt',
261 'channelId',
262 'createdAt',
0305db28
JB
263 'updatedAt',
264 'moveJobsRunning'
d9bf974f
C
265 ]
266 }
267}