]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - 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
1
2 /**
3 *
4 * Class to build video attributes/join names we want to fetch from the database
5 *
6 */
7 export class VideoTables {
8
9 constructor (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 let playlistKeys = [ 'id', 'playlistUrl', 'playlistFilename', 'type' ]
97
98 if (this.mode === 'get') {
99 playlistKeys = playlistKeys.concat([
100 'p2pMediaLoaderInfohashes',
101 'p2pMediaLoaderPeerVersion',
102 'segmentsSha256Filename',
103 'segmentsSha256Url',
104 'videoId',
105 'createdAt',
106 'updatedAt',
107 'storage'
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',
214 'type',
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',
263 'updatedAt',
264 'moveJobsRunning'
265 ]
266 }
267 }