zou 0.20.82__py3-none-any.whl → 0.20.84__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zou/__init__.py +1 -1
- zou/app/blueprints/assets/resources.py +1060 -153
- zou/app/blueprints/auth/resources.py +368 -238
- zou/app/blueprints/breakdown/resources.py +584 -94
- zou/app/blueprints/chats/resources.py +176 -37
- zou/app/blueprints/comments/resources.py +409 -150
- zou/app/blueprints/concepts/resources.py +443 -63
- zou/app/blueprints/crud/asset_instance.py +272 -0
- zou/app/blueprints/crud/attachment_file.py +263 -0
- zou/app/blueprints/crud/base.py +176 -69
- zou/app/blueprints/crud/budget.py +278 -0
- zou/app/blueprints/crud/budget_entry.py +269 -0
- zou/app/blueprints/crud/chat.py +282 -0
- zou/app/blueprints/crud/chat_message.py +286 -0
- zou/app/blueprints/crud/comments.py +312 -1
- zou/app/blueprints/crud/custom_action.py +268 -0
- zou/app/blueprints/crud/day_off.py +298 -0
- zou/app/blueprints/crud/department.py +268 -0
- zou/app/blueprints/crud/entity.py +297 -3
- zou/app/blueprints/crud/entity_link.py +303 -0
- zou/app/blueprints/crud/entity_type.py +269 -0
- zou/app/blueprints/crud/event.py +197 -0
- zou/app/blueprints/crud/file_status.py +268 -0
- zou/app/blueprints/crud/hardware_item.py +268 -0
- zou/app/blueprints/crud/metadata_descriptor.py +312 -0
- zou/app/blueprints/crud/milestone.py +302 -1
- zou/app/blueprints/crud/news.py +285 -0
- zou/app/blueprints/crud/notification.py +287 -0
- zou/app/blueprints/crud/organisation.py +269 -0
- zou/app/blueprints/crud/output_file.py +34 -10
- zou/app/blueprints/crud/output_type.py +30 -10
- zou/app/blueprints/crud/person.py +407 -2
- zou/app/blueprints/crud/playlist.py +322 -4
- zou/app/blueprints/crud/plugin.py +269 -0
- zou/app/blueprints/crud/preview_background_file.py +272 -0
- zou/app/blueprints/crud/preview_file.py +280 -9
- zou/app/blueprints/crud/production_schedule_version.py +569 -0
- zou/app/blueprints/crud/project.py +440 -0
- zou/app/blueprints/crud/project_status.py +268 -0
- zou/app/blueprints/crud/salary_scale.py +185 -5
- zou/app/blueprints/crud/schedule_item.py +305 -0
- zou/app/blueprints/crud/search_filter.py +302 -0
- zou/app/blueprints/crud/search_filter_group.py +270 -0
- zou/app/blueprints/crud/software.py +30 -10
- zou/app/blueprints/crud/status_automation.py +296 -2
- zou/app/blueprints/crud/studio.py +268 -0
- zou/app/blueprints/crud/subscription.py +279 -0
- zou/app/blueprints/crud/task.py +325 -5
- zou/app/blueprints/crud/task_status.py +301 -0
- zou/app/blueprints/crud/task_type.py +283 -0
- zou/app/blueprints/crud/time_spent.py +327 -0
- zou/app/blueprints/crud/working_file.py +273 -10
- zou/app/blueprints/departments/resources.py +302 -68
- zou/app/blueprints/edits/resources.py +651 -81
- zou/app/blueprints/entities/resources.py +104 -39
- zou/app/blueprints/events/resources.py +96 -8
- zou/app/blueprints/export/csv/assets.py +15 -5
- zou/app/blueprints/export/csv/base.py +12 -3
- zou/app/blueprints/export/csv/casting.py +32 -5
- zou/app/blueprints/export/csv/edits.py +15 -5
- zou/app/blueprints/export/csv/persons.py +24 -0
- zou/app/blueprints/export/csv/playlists.py +16 -5
- zou/app/blueprints/export/csv/projects.py +23 -0
- zou/app/blueprints/export/csv/shots.py +15 -5
- zou/app/blueprints/export/csv/task_types.py +23 -0
- zou/app/blueprints/export/csv/tasks.py +24 -0
- zou/app/blueprints/export/csv/time_spents.py +24 -0
- zou/app/blueprints/files/resources.py +928 -377
- zou/app/blueprints/index/resources.py +49 -42
- zou/app/blueprints/news/resources.py +47 -27
- zou/app/blueprints/persons/resources.py +644 -271
- zou/app/blueprints/playlists/resources.py +154 -72
- zou/app/blueprints/previews/resources.py +473 -228
- zou/app/blueprints/projects/__init__.py +5 -0
- zou/app/blueprints/projects/resources.py +987 -420
- zou/app/blueprints/search/resources.py +44 -32
- zou/app/blueprints/shots/resources.py +1338 -88
- zou/app/blueprints/source/csv/assets.py +44 -6
- zou/app/blueprints/source/csv/casting.py +43 -6
- zou/app/blueprints/source/csv/edits.py +47 -9
- zou/app/blueprints/source/csv/persons.py +43 -4
- zou/app/blueprints/source/csv/shots.py +47 -6
- zou/app/blueprints/source/csv/task_type_estimations.py +95 -35
- zou/app/blueprints/source/kitsu.py +433 -11
- zou/app/blueprints/source/otio.py +215 -20
- zou/app/blueprints/source/shotgun/assets.py +146 -0
- zou/app/blueprints/source/shotgun/base.py +85 -14
- zou/app/blueprints/source/shotgun/episode.py +124 -0
- zou/app/blueprints/source/shotgun/import_errors.py +105 -14
- zou/app/blueprints/source/shotgun/notes.py +132 -0
- zou/app/blueprints/source/shotgun/person.py +163 -0
- zou/app/blueprints/source/shotgun/project.py +120 -0
- zou/app/blueprints/source/shotgun/scene.py +120 -0
- zou/app/blueprints/source/shotgun/sequence.py +134 -0
- zou/app/blueprints/source/shotgun/shot.py +166 -0
- zou/app/blueprints/source/shotgun/status.py +129 -0
- zou/app/blueprints/source/shotgun/steps.py +138 -0
- zou/app/blueprints/source/shotgun/tasks.py +199 -0
- zou/app/blueprints/source/shotgun/team.py +132 -0
- zou/app/blueprints/source/shotgun/versions.py +155 -0
- zou/app/blueprints/tasks/resources.py +1197 -308
- zou/app/blueprints/user/resources.py +1808 -215
- zou/app/models/metadata_descriptor.py +1 -0
- zou/app/services/persons_service.py +1 -1
- zou/app/services/projects_service.py +45 -1
- zou/app/services/time_spents_service.py +1 -1
- zou/app/swagger.py +100 -27
- zou/migrations/versions/a1b2c3d4e5f6_add_position_to_metadata_descriptor.py +32 -0
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/METADATA +18 -18
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/RECORD +114 -113
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/WHEEL +0 -0
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/entry_points.txt +0 -0
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/licenses/LICENSE +0 -0
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/top_level.txt +0 -0
|
@@ -27,12 +27,12 @@ class ProjectPlaylistsResource(Resource, ArgsMixin):
|
|
|
27
27
|
@jwt_required()
|
|
28
28
|
def get(self, project_id):
|
|
29
29
|
"""
|
|
30
|
-
|
|
31
|
-
Result is paginated and can be sorted.
|
|
30
|
+
Get project playlists
|
|
32
31
|
---
|
|
32
|
+
description: Retrieve all playlists related to given project. Result is
|
|
33
|
+
paginated and can be sorted.
|
|
33
34
|
tags:
|
|
34
35
|
- Playlists
|
|
35
|
-
description: Result is paginated and can be sorted.
|
|
36
36
|
parameters:
|
|
37
37
|
- in: path
|
|
38
38
|
name: project_id
|
|
@@ -40,18 +40,21 @@ class ProjectPlaylistsResource(Resource, ArgsMixin):
|
|
|
40
40
|
schema:
|
|
41
41
|
type: string
|
|
42
42
|
format: uuid
|
|
43
|
+
description: Project unique identifier
|
|
43
44
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
44
45
|
- in: query
|
|
45
46
|
name: page
|
|
46
47
|
required: false
|
|
47
48
|
schema:
|
|
48
49
|
type: integer
|
|
50
|
+
description: Page number for pagination
|
|
49
51
|
example: 1
|
|
50
52
|
- in: query
|
|
51
53
|
name: sort_by
|
|
52
54
|
required: false
|
|
53
55
|
schema:
|
|
54
56
|
type: string
|
|
57
|
+
description: Field to sort by
|
|
55
58
|
example: updated_at
|
|
56
59
|
- in: query
|
|
57
60
|
name: task_type_id
|
|
@@ -59,9 +62,10 @@ class ProjectPlaylistsResource(Resource, ArgsMixin):
|
|
|
59
62
|
schema:
|
|
60
63
|
type: string
|
|
61
64
|
format: uuid
|
|
62
|
-
|
|
65
|
+
description: Task type unique identifier to filter by
|
|
66
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
63
67
|
responses:
|
|
64
|
-
|
|
68
|
+
200:
|
|
65
69
|
description: All playlists related to given project
|
|
66
70
|
content:
|
|
67
71
|
application/json:
|
|
@@ -73,11 +77,17 @@ class ProjectPlaylistsResource(Resource, ArgsMixin):
|
|
|
73
77
|
id:
|
|
74
78
|
type: string
|
|
75
79
|
format: uuid
|
|
80
|
+
description: Playlist unique identifier
|
|
81
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
76
82
|
name:
|
|
77
83
|
type: string
|
|
84
|
+
description: Playlist name
|
|
85
|
+
example: "Review Playlist"
|
|
78
86
|
project_id:
|
|
79
87
|
type: string
|
|
80
88
|
format: uuid
|
|
89
|
+
description: Project unique identifier
|
|
90
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
81
91
|
"""
|
|
82
92
|
user_service.block_access_to_vendor()
|
|
83
93
|
user_service.check_project_access(project_id)
|
|
@@ -98,12 +108,13 @@ class EpisodePlaylistsResource(Resource, ArgsMixin):
|
|
|
98
108
|
@jwt_required()
|
|
99
109
|
def get(self, project_id, episode_id):
|
|
100
110
|
"""
|
|
101
|
-
|
|
102
|
-
The full list is returned because the number of playlists in an episode is not that big.
|
|
111
|
+
Get episode playlists
|
|
103
112
|
---
|
|
113
|
+
description: Retrieve all playlists related to given episode. The full
|
|
114
|
+
list is returned because the number of playlists in an episode is not
|
|
115
|
+
that big.
|
|
104
116
|
tags:
|
|
105
117
|
- Playlists
|
|
106
|
-
description: The full list is returned because the number of playlists in an episode is not that big.
|
|
107
118
|
parameters:
|
|
108
119
|
- in: path
|
|
109
120
|
name: project_id
|
|
@@ -111,6 +122,7 @@ class EpisodePlaylistsResource(Resource, ArgsMixin):
|
|
|
111
122
|
schema:
|
|
112
123
|
type: string
|
|
113
124
|
format: uuid
|
|
125
|
+
description: Project unique identifier
|
|
114
126
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
115
127
|
- in: path
|
|
116
128
|
name: episode_id
|
|
@@ -118,9 +130,10 @@ class EpisodePlaylistsResource(Resource, ArgsMixin):
|
|
|
118
130
|
schema:
|
|
119
131
|
type: string
|
|
120
132
|
format: uuid
|
|
133
|
+
description: Episode unique identifier or special value (main, all)
|
|
121
134
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
122
135
|
responses:
|
|
123
|
-
|
|
136
|
+
200:
|
|
124
137
|
description: All playlists related to given episode
|
|
125
138
|
content:
|
|
126
139
|
application/json:
|
|
@@ -132,11 +145,17 @@ class EpisodePlaylistsResource(Resource, ArgsMixin):
|
|
|
132
145
|
id:
|
|
133
146
|
type: string
|
|
134
147
|
format: uuid
|
|
148
|
+
description: Playlist unique identifier
|
|
149
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
135
150
|
name:
|
|
136
151
|
type: string
|
|
152
|
+
description: Playlist name
|
|
153
|
+
example: "Review Playlist"
|
|
137
154
|
episode_id:
|
|
138
155
|
type: string
|
|
139
156
|
format: uuid
|
|
157
|
+
description: Episode unique identifier
|
|
158
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
140
159
|
"""
|
|
141
160
|
user_service.block_access_to_vendor()
|
|
142
161
|
user_service.check_project_access(project_id)
|
|
@@ -160,8 +179,10 @@ class ProjectPlaylistResource(Resource):
|
|
|
160
179
|
@jwt_required()
|
|
161
180
|
def get(self, project_id, playlist_id):
|
|
162
181
|
"""
|
|
163
|
-
|
|
182
|
+
Get playlist
|
|
164
183
|
---
|
|
184
|
+
description: Retrieve a specific playlist by ID with preview file
|
|
185
|
+
revisions.
|
|
165
186
|
tags:
|
|
166
187
|
- Playlists
|
|
167
188
|
parameters:
|
|
@@ -171,6 +192,7 @@ class ProjectPlaylistResource(Resource):
|
|
|
171
192
|
schema:
|
|
172
193
|
type: string
|
|
173
194
|
format: uuid
|
|
195
|
+
description: Project unique identifier
|
|
174
196
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
175
197
|
- in: path
|
|
176
198
|
name: playlist_id
|
|
@@ -178,9 +200,10 @@ class ProjectPlaylistResource(Resource):
|
|
|
178
200
|
schema:
|
|
179
201
|
type: string
|
|
180
202
|
format: uuid
|
|
181
|
-
|
|
203
|
+
description: Playlist unique identifier
|
|
204
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
182
205
|
responses:
|
|
183
|
-
|
|
206
|
+
200:
|
|
184
207
|
description: Playlist details with preview file revisions
|
|
185
208
|
content:
|
|
186
209
|
application/json:
|
|
@@ -190,17 +213,23 @@ class ProjectPlaylistResource(Resource):
|
|
|
190
213
|
id:
|
|
191
214
|
type: string
|
|
192
215
|
format: uuid
|
|
216
|
+
description: Playlist unique identifier
|
|
217
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
193
218
|
name:
|
|
194
219
|
type: string
|
|
220
|
+
description: Playlist name
|
|
221
|
+
example: "Review Playlist"
|
|
195
222
|
project_id:
|
|
196
223
|
type: string
|
|
197
224
|
format: uuid
|
|
225
|
+
description: Project unique identifier
|
|
226
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
198
227
|
shots:
|
|
199
228
|
type: array
|
|
229
|
+
description: List of shots with preview file revisions
|
|
200
230
|
items:
|
|
201
231
|
type: object
|
|
202
|
-
|
|
203
|
-
description: Playlist not found
|
|
232
|
+
example: [{"id": "uuid", "preview_file_id": "uuid"}]
|
|
204
233
|
"""
|
|
205
234
|
user_service.block_access_to_vendor()
|
|
206
235
|
user_service.check_project_access(project_id)
|
|
@@ -214,11 +243,13 @@ class EntityPreviewsResource(Resource):
|
|
|
214
243
|
@jwt_required()
|
|
215
244
|
def get(self, entity_id):
|
|
216
245
|
"""
|
|
217
|
-
|
|
246
|
+
Get entity previews
|
|
218
247
|
---
|
|
248
|
+
description: Retrieve all previews related to a given entity. It sends
|
|
249
|
+
them as a dict. Keys are related task type ids and values are arrays
|
|
250
|
+
of preview for this task type.
|
|
219
251
|
tags:
|
|
220
252
|
- Playlists
|
|
221
|
-
description: It sends them as a dict. Keys are related task type ids and values are arrays of preview for this task type.
|
|
222
253
|
parameters:
|
|
223
254
|
- in: path
|
|
224
255
|
name: entity_id
|
|
@@ -226,10 +257,11 @@ class EntityPreviewsResource(Resource):
|
|
|
226
257
|
schema:
|
|
227
258
|
type: string
|
|
228
259
|
format: uuid
|
|
260
|
+
description: Entity unique identifier
|
|
229
261
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
230
262
|
responses:
|
|
231
|
-
|
|
232
|
-
description: All previews related to given entity
|
|
263
|
+
200:
|
|
264
|
+
description: All previews related to given entity grouped by task type
|
|
233
265
|
content:
|
|
234
266
|
application/json:
|
|
235
267
|
schema:
|
|
@@ -242,10 +274,12 @@ class EntityPreviewsResource(Resource):
|
|
|
242
274
|
id:
|
|
243
275
|
type: string
|
|
244
276
|
format: uuid
|
|
277
|
+
description: Preview file unique identifier
|
|
278
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
245
279
|
name:
|
|
246
280
|
type: string
|
|
247
|
-
|
|
248
|
-
|
|
281
|
+
description: Preview file name
|
|
282
|
+
example: "preview_v001.png"
|
|
249
283
|
"""
|
|
250
284
|
entity = entities_service.get_entity(entity_id)
|
|
251
285
|
user_service.check_project_access(entity["project_id"])
|
|
@@ -257,8 +291,9 @@ class PlaylistDownloadResource(Resource):
|
|
|
257
291
|
@jwt_required()
|
|
258
292
|
def get(self, playlist_id, build_job_id):
|
|
259
293
|
"""
|
|
260
|
-
Download
|
|
294
|
+
Download playlist build
|
|
261
295
|
---
|
|
296
|
+
description: Download given playlist build as MP4 file.
|
|
262
297
|
tags:
|
|
263
298
|
- Playlists
|
|
264
299
|
parameters:
|
|
@@ -268,6 +303,7 @@ class PlaylistDownloadResource(Resource):
|
|
|
268
303
|
schema:
|
|
269
304
|
type: string
|
|
270
305
|
format: uuid
|
|
306
|
+
description: Playlist unique identifier
|
|
271
307
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
272
308
|
- in: path
|
|
273
309
|
name: build_job_id
|
|
@@ -275,16 +311,17 @@ class PlaylistDownloadResource(Resource):
|
|
|
275
311
|
schema:
|
|
276
312
|
type: string
|
|
277
313
|
format: uuid
|
|
278
|
-
|
|
314
|
+
description: Build job unique identifier
|
|
315
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
279
316
|
responses:
|
|
280
|
-
|
|
281
|
-
description:
|
|
317
|
+
200:
|
|
318
|
+
description: Playlist build downloaded as MP4 file
|
|
282
319
|
content:
|
|
283
320
|
video/mp4:
|
|
284
321
|
schema:
|
|
285
322
|
type: string
|
|
286
323
|
format: binary
|
|
287
|
-
|
|
324
|
+
400:
|
|
288
325
|
description: Build not finished, need to retry later
|
|
289
326
|
content:
|
|
290
327
|
application/json:
|
|
@@ -293,10 +330,12 @@ class PlaylistDownloadResource(Resource):
|
|
|
293
330
|
properties:
|
|
294
331
|
error:
|
|
295
332
|
type: boolean
|
|
333
|
+
description: Error flag
|
|
334
|
+
example: true
|
|
296
335
|
message:
|
|
297
336
|
type: string
|
|
298
|
-
|
|
299
|
-
|
|
337
|
+
description: Error message
|
|
338
|
+
example: "Build is not finished"
|
|
300
339
|
"""
|
|
301
340
|
user_service.block_access_to_vendor()
|
|
302
341
|
playlist = playlists_service.get_playlist(playlist_id)
|
|
@@ -349,8 +388,10 @@ class BuildPlaylistMovieResource(Resource, ArgsMixin):
|
|
|
349
388
|
@jwt_required()
|
|
350
389
|
def get(self, playlist_id):
|
|
351
390
|
"""
|
|
352
|
-
Build
|
|
391
|
+
Build playlist movie
|
|
353
392
|
---
|
|
393
|
+
description: Build given playlist as MP4 movie. Starts a build job that
|
|
394
|
+
processes the playlist shots into a video file.
|
|
354
395
|
tags:
|
|
355
396
|
- Playlists
|
|
356
397
|
parameters:
|
|
@@ -360,16 +401,18 @@ class BuildPlaylistMovieResource(Resource, ArgsMixin):
|
|
|
360
401
|
schema:
|
|
361
402
|
type: string
|
|
362
403
|
format: uuid
|
|
404
|
+
description: Playlist unique identifier
|
|
363
405
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
364
406
|
- in: query
|
|
365
407
|
name: full
|
|
366
408
|
required: false
|
|
367
409
|
schema:
|
|
368
410
|
type: boolean
|
|
411
|
+
description: Whether to build full quality movie
|
|
369
412
|
example: true
|
|
370
413
|
responses:
|
|
371
|
-
|
|
372
|
-
description:
|
|
414
|
+
200:
|
|
415
|
+
description: Build job created for playlist movie
|
|
373
416
|
content:
|
|
374
417
|
application/json:
|
|
375
418
|
schema:
|
|
@@ -378,13 +421,17 @@ class BuildPlaylistMovieResource(Resource, ArgsMixin):
|
|
|
378
421
|
id:
|
|
379
422
|
type: string
|
|
380
423
|
format: uuid
|
|
424
|
+
description: Build job unique identifier
|
|
425
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
381
426
|
status:
|
|
382
427
|
type: string
|
|
428
|
+
description: Build job status
|
|
429
|
+
example: "pending"
|
|
383
430
|
created_at:
|
|
384
431
|
type: string
|
|
385
432
|
format: date-time
|
|
386
|
-
|
|
387
|
-
|
|
433
|
+
description: Build job creation timestamp
|
|
434
|
+
example: "2022-07-12T10:30:00Z"
|
|
388
435
|
"""
|
|
389
436
|
playlist = playlists_service.get_playlist(playlist_id)
|
|
390
437
|
user_service.check_manager_project_access(playlist["project_id"])
|
|
@@ -435,8 +482,10 @@ class PlaylistZipDownloadResource(Resource):
|
|
|
435
482
|
@jwt_required()
|
|
436
483
|
def get(self, playlist_id):
|
|
437
484
|
"""
|
|
438
|
-
Download
|
|
485
|
+
Download playlist zip
|
|
439
486
|
---
|
|
487
|
+
description: Download given playlist as ZIP file containing all preview
|
|
488
|
+
files.
|
|
440
489
|
tags:
|
|
441
490
|
- Playlists
|
|
442
491
|
parameters:
|
|
@@ -446,17 +495,16 @@ class PlaylistZipDownloadResource(Resource):
|
|
|
446
495
|
schema:
|
|
447
496
|
type: string
|
|
448
497
|
format: uuid
|
|
498
|
+
description: Playlist unique identifier
|
|
449
499
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
450
500
|
responses:
|
|
451
|
-
|
|
452
|
-
description:
|
|
501
|
+
200:
|
|
502
|
+
description: Playlist downloaded as ZIP file
|
|
453
503
|
content:
|
|
454
504
|
application/zip:
|
|
455
505
|
schema:
|
|
456
506
|
type: string
|
|
457
507
|
format: binary
|
|
458
|
-
'404':
|
|
459
|
-
description: Playlist not found
|
|
460
508
|
"""
|
|
461
509
|
user_service.block_access_to_vendor()
|
|
462
510
|
playlist = playlists_service.get_playlist(playlist_id)
|
|
@@ -496,8 +544,9 @@ class BuildJobResource(Resource):
|
|
|
496
544
|
@jwt_required()
|
|
497
545
|
def get(self, playlist_id, build_job_id):
|
|
498
546
|
"""
|
|
499
|
-
|
|
547
|
+
Get build job
|
|
500
548
|
---
|
|
549
|
+
description: Retrieve build job related to given playlist.
|
|
501
550
|
tags:
|
|
502
551
|
- Playlists
|
|
503
552
|
parameters:
|
|
@@ -507,6 +556,7 @@ class BuildJobResource(Resource):
|
|
|
507
556
|
schema:
|
|
508
557
|
type: string
|
|
509
558
|
format: uuid
|
|
559
|
+
description: Playlist unique identifier
|
|
510
560
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
511
561
|
- in: path
|
|
512
562
|
name: build_job_id
|
|
@@ -514,9 +564,10 @@ class BuildJobResource(Resource):
|
|
|
514
564
|
schema:
|
|
515
565
|
type: string
|
|
516
566
|
format: uuid
|
|
517
|
-
|
|
567
|
+
description: Build job unique identifier
|
|
568
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
518
569
|
responses:
|
|
519
|
-
|
|
570
|
+
200:
|
|
520
571
|
description: Build job related to given playlist
|
|
521
572
|
content:
|
|
522
573
|
application/json:
|
|
@@ -526,13 +577,17 @@ class BuildJobResource(Resource):
|
|
|
526
577
|
id:
|
|
527
578
|
type: string
|
|
528
579
|
format: uuid
|
|
580
|
+
description: Build job unique identifier
|
|
581
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
529
582
|
status:
|
|
530
583
|
type: string
|
|
584
|
+
description: Build job status
|
|
585
|
+
example: "succeeded"
|
|
531
586
|
created_at:
|
|
532
587
|
type: string
|
|
533
588
|
format: date-time
|
|
534
|
-
|
|
535
|
-
|
|
589
|
+
description: Build job creation timestamp
|
|
590
|
+
example: "2022-07-12T10:30:00Z"
|
|
536
591
|
"""
|
|
537
592
|
user_service.block_access_to_vendor()
|
|
538
593
|
playlist = playlists_service.get_playlist(playlist_id)
|
|
@@ -542,8 +597,9 @@ class BuildJobResource(Resource):
|
|
|
542
597
|
@jwt_required()
|
|
543
598
|
def delete(self, playlist_id, build_job_id):
|
|
544
599
|
"""
|
|
545
|
-
|
|
600
|
+
Delete build job
|
|
546
601
|
---
|
|
602
|
+
description: Remove given build job related to given playlist.
|
|
547
603
|
tags:
|
|
548
604
|
- Playlists
|
|
549
605
|
parameters:
|
|
@@ -553,6 +609,7 @@ class BuildJobResource(Resource):
|
|
|
553
609
|
schema:
|
|
554
610
|
type: string
|
|
555
611
|
format: uuid
|
|
612
|
+
description: Playlist unique identifier
|
|
556
613
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
557
614
|
- in: path
|
|
558
615
|
name: build_job_id
|
|
@@ -560,12 +617,11 @@ class BuildJobResource(Resource):
|
|
|
560
617
|
schema:
|
|
561
618
|
type: string
|
|
562
619
|
format: uuid
|
|
563
|
-
|
|
620
|
+
description: Build job unique identifier
|
|
621
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
564
622
|
responses:
|
|
565
|
-
|
|
566
|
-
description:
|
|
567
|
-
'404':
|
|
568
|
-
description: Playlist or build job not found
|
|
623
|
+
204:
|
|
624
|
+
description: Build job removed successfully
|
|
569
625
|
"""
|
|
570
626
|
user_service.block_access_to_vendor()
|
|
571
627
|
playlist = playlists_service.get_playlist(playlist_id)
|
|
@@ -579,12 +635,12 @@ class ProjectBuildJobsResource(Resource):
|
|
|
579
635
|
@jwt_required()
|
|
580
636
|
def get(self, project_id):
|
|
581
637
|
"""
|
|
582
|
-
|
|
583
|
-
It's mainly used for synchronisation purpose.
|
|
638
|
+
Get project build jobs
|
|
584
639
|
---
|
|
640
|
+
description: Retrieve all build jobs related to given project. It's
|
|
641
|
+
mainly used for synchronisation purpose.
|
|
585
642
|
tags:
|
|
586
643
|
- Playlists
|
|
587
|
-
description: It's mainly used for synchronisation purpose.
|
|
588
644
|
parameters:
|
|
589
645
|
- in: path
|
|
590
646
|
name: project_id
|
|
@@ -592,9 +648,10 @@ class ProjectBuildJobsResource(Resource):
|
|
|
592
648
|
schema:
|
|
593
649
|
type: string
|
|
594
650
|
format: uuid
|
|
651
|
+
description: Project unique identifier
|
|
595
652
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
596
653
|
responses:
|
|
597
|
-
|
|
654
|
+
200:
|
|
598
655
|
description: All build jobs related to given project
|
|
599
656
|
content:
|
|
600
657
|
application/json:
|
|
@@ -606,13 +663,17 @@ class ProjectBuildJobsResource(Resource):
|
|
|
606
663
|
id:
|
|
607
664
|
type: string
|
|
608
665
|
format: uuid
|
|
666
|
+
description: Build job unique identifier
|
|
667
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
609
668
|
status:
|
|
610
669
|
type: string
|
|
670
|
+
description: Build job status
|
|
671
|
+
example: "succeeded"
|
|
611
672
|
created_at:
|
|
612
673
|
type: string
|
|
613
674
|
format: date-time
|
|
614
|
-
|
|
615
|
-
|
|
675
|
+
description: Build job creation timestamp
|
|
676
|
+
example: "2022-07-12T10:30:00Z"
|
|
616
677
|
"""
|
|
617
678
|
permissions.check_admin_permissions()
|
|
618
679
|
projects_service.get_project(project_id)
|
|
@@ -624,11 +685,12 @@ class ProjectAllPlaylistsResource(Resource, ArgsMixin):
|
|
|
624
685
|
@jwt_required()
|
|
625
686
|
def get(self, project_id):
|
|
626
687
|
"""
|
|
627
|
-
|
|
688
|
+
Get all project playlists
|
|
628
689
|
---
|
|
690
|
+
description: Retrieve all playlists related to given project. It's
|
|
691
|
+
mainly used for synchronisation purpose.
|
|
629
692
|
tags:
|
|
630
693
|
- Playlists
|
|
631
|
-
description: It's mainly used for synchronisation purpose.
|
|
632
694
|
parameters:
|
|
633
695
|
- in: path
|
|
634
696
|
name: project_id
|
|
@@ -636,9 +698,10 @@ class ProjectAllPlaylistsResource(Resource, ArgsMixin):
|
|
|
636
698
|
schema:
|
|
637
699
|
type: string
|
|
638
700
|
format: uuid
|
|
701
|
+
description: Project unique identifier
|
|
639
702
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
640
703
|
responses:
|
|
641
|
-
|
|
704
|
+
200:
|
|
642
705
|
description: All playlists related to given project
|
|
643
706
|
content:
|
|
644
707
|
application/json:
|
|
@@ -650,13 +713,17 @@ class ProjectAllPlaylistsResource(Resource, ArgsMixin):
|
|
|
650
713
|
id:
|
|
651
714
|
type: string
|
|
652
715
|
format: uuid
|
|
716
|
+
description: Playlist unique identifier
|
|
717
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
653
718
|
name:
|
|
654
719
|
type: string
|
|
720
|
+
description: Playlist name
|
|
721
|
+
example: "Review Playlist"
|
|
655
722
|
project_id:
|
|
656
723
|
type: string
|
|
657
724
|
format: uuid
|
|
658
|
-
|
|
659
|
-
|
|
725
|
+
description: Project unique identifier
|
|
726
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
660
727
|
"""
|
|
661
728
|
permissions.check_admin_permissions()
|
|
662
729
|
projects_service.get_project(project_id)
|
|
@@ -669,11 +736,12 @@ class TempPlaylistResource(Resource, ArgsMixin):
|
|
|
669
736
|
@jwt_required()
|
|
670
737
|
def post(self, project_id):
|
|
671
738
|
"""
|
|
672
|
-
Generate
|
|
739
|
+
Generate temp playlist
|
|
673
740
|
---
|
|
741
|
+
description: Generate a temporary playlist from task IDs. It's mainly
|
|
742
|
+
used for synchronisation purpose.
|
|
674
743
|
tags:
|
|
675
744
|
- Playlists
|
|
676
|
-
description: It's mainly used for synchronisation purpose.
|
|
677
745
|
parameters:
|
|
678
746
|
- in: path
|
|
679
747
|
name: project_id
|
|
@@ -681,7 +749,15 @@ class TempPlaylistResource(Resource, ArgsMixin):
|
|
|
681
749
|
schema:
|
|
682
750
|
type: string
|
|
683
751
|
format: uuid
|
|
752
|
+
description: Project unique identifier
|
|
684
753
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
754
|
+
- in: query
|
|
755
|
+
name: sort
|
|
756
|
+
required: false
|
|
757
|
+
schema:
|
|
758
|
+
type: boolean
|
|
759
|
+
description: Whether to sort the playlist
|
|
760
|
+
example: true
|
|
685
761
|
requestBody:
|
|
686
762
|
required: true
|
|
687
763
|
content:
|
|
@@ -696,9 +772,10 @@ class TempPlaylistResource(Resource, ArgsMixin):
|
|
|
696
772
|
items:
|
|
697
773
|
type: string
|
|
698
774
|
format: uuid
|
|
775
|
+
description: List of task unique identifiers
|
|
699
776
|
example: ["a24a6ea4-ce75-4665-a070-57453082c25"]
|
|
700
777
|
responses:
|
|
701
|
-
|
|
778
|
+
200:
|
|
702
779
|
description: Temporary playlist generated
|
|
703
780
|
content:
|
|
704
781
|
application/json:
|
|
@@ -710,12 +787,14 @@ class TempPlaylistResource(Resource, ArgsMixin):
|
|
|
710
787
|
id:
|
|
711
788
|
type: string
|
|
712
789
|
format: uuid
|
|
790
|
+
description: Preview file unique identifier
|
|
791
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
713
792
|
name:
|
|
714
793
|
type: string
|
|
715
|
-
|
|
794
|
+
description: Preview file name
|
|
795
|
+
example: "preview_v001.png"
|
|
796
|
+
400:
|
|
716
797
|
description: Invalid task IDs
|
|
717
|
-
'404':
|
|
718
|
-
description: Project not found
|
|
719
798
|
"""
|
|
720
799
|
user_service.check_project_access(project_id)
|
|
721
800
|
task_ids = request.json.get("task_ids", [])
|
|
@@ -730,9 +809,9 @@ class NotifyClientsResource(Resource, ArgsMixin):
|
|
|
730
809
|
@jwt_required()
|
|
731
810
|
def post(self, playlist_id):
|
|
732
811
|
"""
|
|
733
|
-
Notify clients
|
|
734
|
-
|
|
812
|
+
Notify clients playlist ready
|
|
735
813
|
---
|
|
814
|
+
description: Notify clients that given playlist is ready for review.
|
|
736
815
|
tags:
|
|
737
816
|
- Playlists
|
|
738
817
|
parameters:
|
|
@@ -742,9 +821,10 @@ class NotifyClientsResource(Resource, ArgsMixin):
|
|
|
742
821
|
schema:
|
|
743
822
|
type: string
|
|
744
823
|
format: uuid
|
|
824
|
+
description: Playlist unique identifier
|
|
745
825
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
746
826
|
requestBody:
|
|
747
|
-
required:
|
|
827
|
+
required: false
|
|
748
828
|
content:
|
|
749
829
|
application/json:
|
|
750
830
|
schema:
|
|
@@ -753,10 +833,11 @@ class NotifyClientsResource(Resource, ArgsMixin):
|
|
|
753
833
|
studio_id:
|
|
754
834
|
type: string
|
|
755
835
|
format: uuid
|
|
756
|
-
|
|
836
|
+
description: Studio unique identifier to notify
|
|
837
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
757
838
|
responses:
|
|
758
|
-
|
|
759
|
-
description: Clients notified
|
|
839
|
+
200:
|
|
840
|
+
description: Clients notified successfully
|
|
760
841
|
content:
|
|
761
842
|
application/json:
|
|
762
843
|
schema:
|
|
@@ -764,7 +845,8 @@ class NotifyClientsResource(Resource, ArgsMixin):
|
|
|
764
845
|
properties:
|
|
765
846
|
status:
|
|
766
847
|
type: string
|
|
767
|
-
|
|
848
|
+
description: Notification status
|
|
849
|
+
example: "success"
|
|
768
850
|
"""
|
|
769
851
|
studio_id = request.json.get("studio_id", None)
|
|
770
852
|
playlist = playlists_service.get_playlist(playlist_id)
|