zou 0.20.82__py3-none-any.whl → 0.20.83__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 +387 -125
- zou/app/blueprints/concepts/resources.py +428 -63
- 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/index/resources.py +49 -42
- zou/app/blueprints/news/resources.py +45 -27
- zou/app/blueprints/user/resources.py +1808 -215
- zou/app/swagger.py +100 -27
- {zou-0.20.82.dist-info → zou-0.20.83.dist-info}/METADATA +1 -1
- {zou-0.20.82.dist-info → zou-0.20.83.dist-info}/RECORD +21 -21
- {zou-0.20.82.dist-info → zou-0.20.83.dist-info}/WHEEL +0 -0
- {zou-0.20.82.dist-info → zou-0.20.83.dist-info}/entry_points.txt +0 -0
- {zou-0.20.82.dist-info → zou-0.20.83.dist-info}/licenses/LICENSE +0 -0
- {zou-0.20.82.dist-info → zou-0.20.83.dist-info}/top_level.txt +0 -0
|
@@ -19,20 +19,60 @@ class EditResource(Resource, ArgsMixin):
|
|
|
19
19
|
@jwt_required()
|
|
20
20
|
def get(self, edit_id):
|
|
21
21
|
"""
|
|
22
|
-
|
|
22
|
+
Get edit
|
|
23
23
|
---
|
|
24
|
+
description: Retrieve detailed information about a specific edit.
|
|
24
25
|
tags:
|
|
25
26
|
- Edits
|
|
26
27
|
parameters:
|
|
27
28
|
- in: path
|
|
28
29
|
name: edit_id
|
|
29
|
-
required:
|
|
30
|
+
required: true
|
|
30
31
|
type: string
|
|
31
32
|
format: uuid
|
|
32
33
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
34
|
+
description: Unique identifier of the edit
|
|
33
35
|
responses:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
200:
|
|
37
|
+
description: Edit information successfully retrieved
|
|
38
|
+
content:
|
|
39
|
+
application/json:
|
|
40
|
+
schema:
|
|
41
|
+
type: object
|
|
42
|
+
properties:
|
|
43
|
+
id:
|
|
44
|
+
type: string
|
|
45
|
+
format: uuid
|
|
46
|
+
description: Edit unique identifier
|
|
47
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
48
|
+
name:
|
|
49
|
+
type: string
|
|
50
|
+
description: Edit name
|
|
51
|
+
example: "Opening Sequence"
|
|
52
|
+
description:
|
|
53
|
+
type: string
|
|
54
|
+
description: Edit description
|
|
55
|
+
example: "Main opening sequence edit"
|
|
56
|
+
project_id:
|
|
57
|
+
type: string
|
|
58
|
+
format: uuid
|
|
59
|
+
description: Project identifier
|
|
60
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
61
|
+
episode_id:
|
|
62
|
+
type: string
|
|
63
|
+
format: uuid
|
|
64
|
+
description: Episode identifier
|
|
65
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
66
|
+
created_at:
|
|
67
|
+
type: string
|
|
68
|
+
format: date-time
|
|
69
|
+
description: Creation timestamp
|
|
70
|
+
example: "2023-01-01T12:00:00Z"
|
|
71
|
+
updated_at:
|
|
72
|
+
type: string
|
|
73
|
+
format: date-time
|
|
74
|
+
description: Last update timestamp
|
|
75
|
+
example: "2023-01-01T12:30:00Z"
|
|
36
76
|
"""
|
|
37
77
|
edit = edits_service.get_full_edit(edit_id)
|
|
38
78
|
if edit is None:
|
|
@@ -45,20 +85,28 @@ class EditResource(Resource, ArgsMixin):
|
|
|
45
85
|
@jwt_required()
|
|
46
86
|
def delete(self, edit_id):
|
|
47
87
|
"""
|
|
48
|
-
Delete
|
|
88
|
+
Delete edit
|
|
49
89
|
---
|
|
90
|
+
description: Permanently remove an edit from the system. Only edit creators or project managers can delete edits.
|
|
50
91
|
tags:
|
|
51
92
|
- Edits
|
|
52
93
|
parameters:
|
|
53
94
|
- in: path
|
|
54
95
|
name: edit_id
|
|
55
|
-
required:
|
|
96
|
+
required: true
|
|
56
97
|
type: string
|
|
57
98
|
format: uuid
|
|
58
99
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
100
|
+
description: Unique identifier of the edit to delete
|
|
101
|
+
- in: query
|
|
102
|
+
name: force
|
|
103
|
+
type: boolean
|
|
104
|
+
required: false
|
|
105
|
+
description: Force deletion bypassing validation checks
|
|
106
|
+
example: false
|
|
59
107
|
responses:
|
|
60
|
-
|
|
61
|
-
|
|
108
|
+
204:
|
|
109
|
+
description: Edit successfully deleted
|
|
62
110
|
"""
|
|
63
111
|
force = self.get_force()
|
|
64
112
|
edit = edits_service.get_edit(edit_id)
|
|
@@ -74,31 +122,75 @@ class EditsResource(Resource):
|
|
|
74
122
|
@jwt_required()
|
|
75
123
|
def get(self):
|
|
76
124
|
"""
|
|
77
|
-
|
|
125
|
+
Get edits
|
|
78
126
|
---
|
|
127
|
+
description: Retrieve all edit entries with filtering support. Filters can be specified in the query string.
|
|
79
128
|
tags:
|
|
80
129
|
- Edits
|
|
81
|
-
description: Filters can be specified in the query string.
|
|
82
130
|
parameters:
|
|
83
131
|
- in: query
|
|
84
132
|
name: project_id
|
|
85
|
-
required:
|
|
133
|
+
required: false
|
|
86
134
|
type: string
|
|
87
135
|
format: uuid
|
|
88
136
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
137
|
+
description: Filter edits by specific project
|
|
89
138
|
- in: query
|
|
90
139
|
name: name
|
|
91
|
-
required:
|
|
140
|
+
required: false
|
|
92
141
|
type: string
|
|
93
|
-
example:
|
|
142
|
+
example: "Opening Sequence"
|
|
143
|
+
description: Filter edits by name
|
|
94
144
|
- in: query
|
|
95
145
|
name: force
|
|
96
|
-
required:
|
|
146
|
+
required: false
|
|
97
147
|
type: boolean
|
|
98
|
-
default:
|
|
148
|
+
default: false
|
|
149
|
+
description: Force parameter for additional filtering
|
|
150
|
+
example: false
|
|
99
151
|
responses:
|
|
100
|
-
|
|
101
|
-
|
|
152
|
+
200:
|
|
153
|
+
description: List of edits successfully retrieved
|
|
154
|
+
content:
|
|
155
|
+
application/json:
|
|
156
|
+
schema:
|
|
157
|
+
type: array
|
|
158
|
+
items:
|
|
159
|
+
type: object
|
|
160
|
+
properties:
|
|
161
|
+
id:
|
|
162
|
+
type: string
|
|
163
|
+
format: uuid
|
|
164
|
+
description: Edit unique identifier
|
|
165
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
166
|
+
name:
|
|
167
|
+
type: string
|
|
168
|
+
description: Edit name
|
|
169
|
+
example: "Opening Sequence"
|
|
170
|
+
description:
|
|
171
|
+
type: string
|
|
172
|
+
description: Edit description
|
|
173
|
+
example: "Main opening sequence edit"
|
|
174
|
+
project_id:
|
|
175
|
+
type: string
|
|
176
|
+
format: uuid
|
|
177
|
+
description: Project identifier
|
|
178
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
179
|
+
episode_id:
|
|
180
|
+
type: string
|
|
181
|
+
format: uuid
|
|
182
|
+
description: Episode identifier
|
|
183
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
184
|
+
created_at:
|
|
185
|
+
type: string
|
|
186
|
+
format: date-time
|
|
187
|
+
description: Creation timestamp
|
|
188
|
+
example: "2023-01-01T12:00:00Z"
|
|
189
|
+
updated_at:
|
|
190
|
+
type: string
|
|
191
|
+
format: date-time
|
|
192
|
+
description: Last update timestamp
|
|
193
|
+
example: "2023-01-01T12:30:00Z"
|
|
102
194
|
"""
|
|
103
195
|
criterions = query.get_query_criterions_from_request(request)
|
|
104
196
|
user_service.check_project_access(criterions.get("project_id", None))
|
|
@@ -113,31 +205,75 @@ class AllEditsResource(Resource):
|
|
|
113
205
|
@jwt_required()
|
|
114
206
|
def get(self):
|
|
115
207
|
"""
|
|
116
|
-
|
|
208
|
+
Get all edits
|
|
117
209
|
---
|
|
210
|
+
description: Retrieve all edit entries with filtering support. Filters can be specified in the query string.
|
|
118
211
|
tags:
|
|
119
212
|
- Edits
|
|
120
|
-
description: Filters can be specified in the query string.
|
|
121
213
|
parameters:
|
|
122
214
|
- in: query
|
|
123
215
|
name: project_id
|
|
124
|
-
required:
|
|
216
|
+
required: false
|
|
125
217
|
type: string
|
|
126
218
|
format: uuid
|
|
127
219
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
220
|
+
description: Filter edits by specific project
|
|
128
221
|
- in: query
|
|
129
222
|
name: name
|
|
130
|
-
required:
|
|
223
|
+
required: false
|
|
131
224
|
type: string
|
|
132
|
-
example:
|
|
225
|
+
example: "Opening Sequence"
|
|
226
|
+
description: Filter edits by name
|
|
133
227
|
- in: query
|
|
134
228
|
name: force
|
|
135
|
-
required:
|
|
229
|
+
required: false
|
|
136
230
|
type: boolean
|
|
137
|
-
default:
|
|
231
|
+
default: false
|
|
232
|
+
description: Force parameter for additional filtering
|
|
233
|
+
example: false
|
|
138
234
|
responses:
|
|
139
|
-
|
|
140
|
-
|
|
235
|
+
200:
|
|
236
|
+
description: List of all edits successfully retrieved
|
|
237
|
+
content:
|
|
238
|
+
application/json:
|
|
239
|
+
schema:
|
|
240
|
+
type: array
|
|
241
|
+
items:
|
|
242
|
+
type: object
|
|
243
|
+
properties:
|
|
244
|
+
id:
|
|
245
|
+
type: string
|
|
246
|
+
format: uuid
|
|
247
|
+
description: Edit unique identifier
|
|
248
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
249
|
+
name:
|
|
250
|
+
type: string
|
|
251
|
+
description: Edit name
|
|
252
|
+
example: "Opening Sequence"
|
|
253
|
+
description:
|
|
254
|
+
type: string
|
|
255
|
+
description: Edit description
|
|
256
|
+
example: "Main opening sequence edit"
|
|
257
|
+
project_id:
|
|
258
|
+
type: string
|
|
259
|
+
format: uuid
|
|
260
|
+
description: Project identifier
|
|
261
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
262
|
+
episode_id:
|
|
263
|
+
type: string
|
|
264
|
+
format: uuid
|
|
265
|
+
description: Episode identifier
|
|
266
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
267
|
+
created_at:
|
|
268
|
+
type: string
|
|
269
|
+
format: date-time
|
|
270
|
+
description: Creation timestamp
|
|
271
|
+
example: "2023-01-01T12:00:00Z"
|
|
272
|
+
updated_at:
|
|
273
|
+
type: string
|
|
274
|
+
format: date-time
|
|
275
|
+
description: Last update timestamp
|
|
276
|
+
example: "2023-01-01T12:30:00Z"
|
|
141
277
|
"""
|
|
142
278
|
criterions = query.get_query_criterions_from_request(request)
|
|
143
279
|
if permissions.has_vendor_permissions():
|
|
@@ -152,20 +288,50 @@ class EditTaskTypesResource(Resource):
|
|
|
152
288
|
@jwt_required()
|
|
153
289
|
def get(self, edit_id):
|
|
154
290
|
"""
|
|
155
|
-
|
|
291
|
+
Get edit task types
|
|
156
292
|
---
|
|
293
|
+
description: Retrieve all task types that are related to a specific edit.
|
|
157
294
|
tags:
|
|
158
295
|
- Edits
|
|
159
296
|
parameters:
|
|
160
297
|
- in: path
|
|
161
298
|
name: edit_id
|
|
162
|
-
required:
|
|
299
|
+
required: true
|
|
163
300
|
type: string
|
|
164
301
|
format: uuid
|
|
165
302
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
303
|
+
description: Unique identifier of the edit
|
|
166
304
|
responses:
|
|
167
|
-
|
|
168
|
-
|
|
305
|
+
200:
|
|
306
|
+
description: List of edit task types successfully retrieved
|
|
307
|
+
content:
|
|
308
|
+
application/json:
|
|
309
|
+
schema:
|
|
310
|
+
type: array
|
|
311
|
+
items:
|
|
312
|
+
type: object
|
|
313
|
+
properties:
|
|
314
|
+
id:
|
|
315
|
+
type: string
|
|
316
|
+
format: uuid
|
|
317
|
+
description: Task type unique identifier
|
|
318
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
319
|
+
name:
|
|
320
|
+
type: string
|
|
321
|
+
description: Task type name
|
|
322
|
+
example: "Edit"
|
|
323
|
+
short_name:
|
|
324
|
+
type: string
|
|
325
|
+
description: Task type short name
|
|
326
|
+
example: "EDT"
|
|
327
|
+
color:
|
|
328
|
+
type: string
|
|
329
|
+
description: Task type color code
|
|
330
|
+
example: "#FF5733"
|
|
331
|
+
for_entity:
|
|
332
|
+
type: string
|
|
333
|
+
description: Entity type this task type is for
|
|
334
|
+
example: "Edit"
|
|
169
335
|
"""
|
|
170
336
|
edit = edits_service.get_edit(edit_id)
|
|
171
337
|
user_service.check_project_access(edit["project_id"])
|
|
@@ -177,20 +343,74 @@ class EditTasksResource(Resource, ArgsMixin):
|
|
|
177
343
|
@jwt_required()
|
|
178
344
|
def get(self, edit_id):
|
|
179
345
|
"""
|
|
180
|
-
|
|
346
|
+
Get edit tasks
|
|
181
347
|
---
|
|
348
|
+
description: Retrieve all tasks that are related to a specific edit.
|
|
182
349
|
tags:
|
|
183
350
|
- Edits
|
|
184
351
|
parameters:
|
|
185
352
|
- in: path
|
|
186
353
|
name: edit_id
|
|
187
|
-
required:
|
|
354
|
+
required: true
|
|
188
355
|
type: string
|
|
189
356
|
format: uuid
|
|
190
357
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
358
|
+
description: Unique identifier of the edit
|
|
359
|
+
- in: query
|
|
360
|
+
name: relations
|
|
361
|
+
type: boolean
|
|
362
|
+
required: false
|
|
363
|
+
description: Include related entity information
|
|
364
|
+
example: true
|
|
191
365
|
responses:
|
|
192
|
-
|
|
193
|
-
|
|
366
|
+
200:
|
|
367
|
+
description: List of edit tasks successfully retrieved
|
|
368
|
+
content:
|
|
369
|
+
application/json:
|
|
370
|
+
schema:
|
|
371
|
+
type: array
|
|
372
|
+
items:
|
|
373
|
+
type: object
|
|
374
|
+
properties:
|
|
375
|
+
id:
|
|
376
|
+
type: string
|
|
377
|
+
format: uuid
|
|
378
|
+
description: Task unique identifier
|
|
379
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
380
|
+
name:
|
|
381
|
+
type: string
|
|
382
|
+
description: Task name
|
|
383
|
+
example: "Edit Task"
|
|
384
|
+
task_type_id:
|
|
385
|
+
type: string
|
|
386
|
+
format: uuid
|
|
387
|
+
description: Task type identifier
|
|
388
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
389
|
+
task_status_id:
|
|
390
|
+
type: string
|
|
391
|
+
format: uuid
|
|
392
|
+
description: Task status identifier
|
|
393
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
394
|
+
entity_id:
|
|
395
|
+
type: string
|
|
396
|
+
format: uuid
|
|
397
|
+
description: Entity identifier
|
|
398
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
399
|
+
assigned_to:
|
|
400
|
+
type: string
|
|
401
|
+
format: uuid
|
|
402
|
+
description: Assigned person identifier
|
|
403
|
+
example: f79f1jf9-hj20-9010-f625-02998537h80
|
|
404
|
+
created_at:
|
|
405
|
+
type: string
|
|
406
|
+
format: date-time
|
|
407
|
+
description: Creation timestamp
|
|
408
|
+
example: "2023-01-01T12:00:00Z"
|
|
409
|
+
updated_at:
|
|
410
|
+
type: string
|
|
411
|
+
format: date-time
|
|
412
|
+
description: Last update timestamp
|
|
413
|
+
example: "2023-01-01T12:30:00Z"
|
|
194
414
|
"""
|
|
195
415
|
edit = edits_service.get_edit(edit_id)
|
|
196
416
|
user_service.check_project_access(edit["project_id"])
|
|
@@ -203,20 +423,74 @@ class EpisodeEditTasksResource(Resource, ArgsMixin):
|
|
|
203
423
|
@jwt_required()
|
|
204
424
|
def get(self, episode_id):
|
|
205
425
|
"""
|
|
206
|
-
|
|
426
|
+
Get episode edit tasks
|
|
207
427
|
---
|
|
428
|
+
description: Retrieve all tasks that are related to a specific episode.
|
|
208
429
|
tags:
|
|
209
430
|
- Edits
|
|
210
431
|
parameters:
|
|
211
432
|
- in: path
|
|
212
433
|
name: episode_id
|
|
213
|
-
required:
|
|
434
|
+
required: true
|
|
214
435
|
type: string
|
|
215
436
|
format: uuid
|
|
216
437
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
438
|
+
description: Unique identifier of the episode
|
|
439
|
+
- in: query
|
|
440
|
+
name: relations
|
|
441
|
+
type: boolean
|
|
442
|
+
required: false
|
|
443
|
+
description: Include related entity information
|
|
444
|
+
example: true
|
|
217
445
|
responses:
|
|
218
|
-
|
|
219
|
-
|
|
446
|
+
200:
|
|
447
|
+
description: List of episode edit tasks successfully retrieved
|
|
448
|
+
content:
|
|
449
|
+
application/json:
|
|
450
|
+
schema:
|
|
451
|
+
type: array
|
|
452
|
+
items:
|
|
453
|
+
type: object
|
|
454
|
+
properties:
|
|
455
|
+
id:
|
|
456
|
+
type: string
|
|
457
|
+
format: uuid
|
|
458
|
+
description: Task unique identifier
|
|
459
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
460
|
+
name:
|
|
461
|
+
type: string
|
|
462
|
+
description: Task name
|
|
463
|
+
example: "Episode Edit Task"
|
|
464
|
+
task_type_id:
|
|
465
|
+
type: string
|
|
466
|
+
format: uuid
|
|
467
|
+
description: Task type identifier
|
|
468
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
469
|
+
task_status_id:
|
|
470
|
+
type: string
|
|
471
|
+
format: uuid
|
|
472
|
+
description: Task status identifier
|
|
473
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
474
|
+
entity_id:
|
|
475
|
+
type: string
|
|
476
|
+
format: uuid
|
|
477
|
+
description: Entity identifier
|
|
478
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
479
|
+
assigned_to:
|
|
480
|
+
type: string
|
|
481
|
+
format: uuid
|
|
482
|
+
description: Assigned person identifier
|
|
483
|
+
example: f79f1jf9-hj20-9010-f625-02998537h80
|
|
484
|
+
created_at:
|
|
485
|
+
type: string
|
|
486
|
+
format: date-time
|
|
487
|
+
description: Creation timestamp
|
|
488
|
+
example: "2023-01-01T12:00:00Z"
|
|
489
|
+
updated_at:
|
|
490
|
+
type: string
|
|
491
|
+
format: date-time
|
|
492
|
+
description: Last update timestamp
|
|
493
|
+
example: "2023-01-01T12:30:00Z"
|
|
220
494
|
"""
|
|
221
495
|
episode = edits_service.get_episode(episode_id)
|
|
222
496
|
user_service.check_project_access(episode["project_id"])
|
|
@@ -233,20 +507,68 @@ class EpisodeEditsResource(Resource, ArgsMixin):
|
|
|
233
507
|
@jwt_required()
|
|
234
508
|
def get(self, episode_id):
|
|
235
509
|
"""
|
|
236
|
-
|
|
510
|
+
Get episode edits
|
|
237
511
|
---
|
|
512
|
+
description: Retrieve all edits that are related to a specific episode.
|
|
238
513
|
tags:
|
|
239
514
|
- Edits
|
|
240
515
|
parameters:
|
|
241
516
|
- in: path
|
|
242
517
|
name: episode_id
|
|
243
|
-
required:
|
|
518
|
+
required: true
|
|
244
519
|
type: string
|
|
245
520
|
format: uuid
|
|
246
521
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
522
|
+
description: Unique identifier of the episode
|
|
523
|
+
- in: query
|
|
524
|
+
name: relations
|
|
525
|
+
type: boolean
|
|
526
|
+
required: false
|
|
527
|
+
description: Include related entity information
|
|
528
|
+
example: true
|
|
247
529
|
responses:
|
|
248
|
-
|
|
249
|
-
|
|
530
|
+
200:
|
|
531
|
+
description: List of episode edits successfully retrieved
|
|
532
|
+
content:
|
|
533
|
+
application/json:
|
|
534
|
+
schema:
|
|
535
|
+
type: array
|
|
536
|
+
items:
|
|
537
|
+
type: object
|
|
538
|
+
properties:
|
|
539
|
+
id:
|
|
540
|
+
type: string
|
|
541
|
+
format: uuid
|
|
542
|
+
description: Edit unique identifier
|
|
543
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
544
|
+
name:
|
|
545
|
+
type: string
|
|
546
|
+
description: Edit name
|
|
547
|
+
example: "Episode Edit"
|
|
548
|
+
description:
|
|
549
|
+
type: string
|
|
550
|
+
description: Edit description
|
|
551
|
+
example: "Main episode edit"
|
|
552
|
+
project_id:
|
|
553
|
+
type: string
|
|
554
|
+
format: uuid
|
|
555
|
+
description: Project identifier
|
|
556
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
557
|
+
episode_id:
|
|
558
|
+
type: string
|
|
559
|
+
format: uuid
|
|
560
|
+
description: Episode identifier
|
|
561
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
562
|
+
created_at:
|
|
563
|
+
type: string
|
|
564
|
+
format: date-time
|
|
565
|
+
description: Creation timestamp
|
|
566
|
+
example: "2023-01-01T12:00:00Z"
|
|
567
|
+
updated_at:
|
|
568
|
+
type: string
|
|
569
|
+
format: date-time
|
|
570
|
+
description: Last update timestamp
|
|
571
|
+
example: "2023-01-01T12:30:00Z"
|
|
250
572
|
"""
|
|
251
573
|
episode = edits_service.get_episode(episode_id)
|
|
252
574
|
user_service.check_project_access(episode["project_id"])
|
|
@@ -261,21 +583,60 @@ class EditPreviewsResource(Resource):
|
|
|
261
583
|
@jwt_required()
|
|
262
584
|
def get(self, edit_id):
|
|
263
585
|
"""
|
|
264
|
-
|
|
586
|
+
Get edit previews
|
|
265
587
|
---
|
|
588
|
+
description: Retrieve all preview files related to a specific edit.
|
|
589
|
+
Returns them as a dictionary where keys are related task type IDs and
|
|
590
|
+
values are arrays of previews for that task type.
|
|
266
591
|
tags:
|
|
267
592
|
- Edits
|
|
268
|
-
description: It sends them as a dict. Keys are related task type ids and values are arrays of preview for this task type.
|
|
269
593
|
parameters:
|
|
270
594
|
- in: path
|
|
271
595
|
name: edit_id
|
|
272
|
-
required:
|
|
596
|
+
required: true
|
|
273
597
|
type: string
|
|
274
598
|
format: uuid
|
|
275
599
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
600
|
+
description: Unique identifier of the edit
|
|
276
601
|
responses:
|
|
277
|
-
|
|
278
|
-
|
|
602
|
+
200:
|
|
603
|
+
description: Edit previews successfully retrieved
|
|
604
|
+
content:
|
|
605
|
+
application/json:
|
|
606
|
+
schema:
|
|
607
|
+
type: object
|
|
608
|
+
additionalProperties:
|
|
609
|
+
type: array
|
|
610
|
+
items:
|
|
611
|
+
type: object
|
|
612
|
+
properties:
|
|
613
|
+
id:
|
|
614
|
+
type: string
|
|
615
|
+
format: uuid
|
|
616
|
+
description: Preview unique identifier
|
|
617
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
618
|
+
name:
|
|
619
|
+
type: string
|
|
620
|
+
description: Preview name
|
|
621
|
+
example: "edit_preview_01"
|
|
622
|
+
original_name:
|
|
623
|
+
type: string
|
|
624
|
+
description: Original file name
|
|
625
|
+
example: "edit_sequence.mov"
|
|
626
|
+
file_path:
|
|
627
|
+
type: string
|
|
628
|
+
description: File path
|
|
629
|
+
example: "/previews/edit/edit_preview_01.mov"
|
|
630
|
+
task_type_id:
|
|
631
|
+
type: string
|
|
632
|
+
format: uuid
|
|
633
|
+
description: Task type identifier
|
|
634
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
635
|
+
created_at:
|
|
636
|
+
type: string
|
|
637
|
+
format: date-time
|
|
638
|
+
description: Creation timestamp
|
|
639
|
+
example: "2023-01-01T12:00:00Z"
|
|
279
640
|
"""
|
|
280
641
|
edit = edits_service.get_edit(edit_id)
|
|
281
642
|
user_service.check_project_access(edit["project_id"])
|
|
@@ -287,30 +648,98 @@ class EditsAndTasksResource(Resource):
|
|
|
287
648
|
@jwt_required()
|
|
288
649
|
def get(self):
|
|
289
650
|
"""
|
|
290
|
-
|
|
651
|
+
Get edits and tasks
|
|
291
652
|
---
|
|
653
|
+
description: Retrieve all edits with project name and all related tasks.
|
|
292
654
|
tags:
|
|
293
655
|
- Edits
|
|
294
656
|
parameters:
|
|
295
657
|
- in: query
|
|
296
658
|
name: project_id
|
|
297
|
-
required:
|
|
659
|
+
required: false
|
|
298
660
|
type: string
|
|
299
661
|
format: uuid
|
|
300
662
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
663
|
+
description: Filter edits by specific project
|
|
301
664
|
- in: query
|
|
302
665
|
name: name
|
|
303
|
-
required:
|
|
666
|
+
required: false
|
|
304
667
|
type: string
|
|
305
|
-
example:
|
|
668
|
+
example: "Opening Sequence"
|
|
669
|
+
description: Filter edits by name
|
|
306
670
|
- in: query
|
|
307
671
|
name: force
|
|
308
|
-
required:
|
|
672
|
+
required: false
|
|
309
673
|
type: boolean
|
|
310
|
-
default:
|
|
674
|
+
default: false
|
|
675
|
+
description: Force parameter for additional filtering
|
|
676
|
+
example: false
|
|
311
677
|
responses:
|
|
312
|
-
|
|
313
|
-
|
|
678
|
+
200:
|
|
679
|
+
description: Edits with tasks successfully retrieved
|
|
680
|
+
content:
|
|
681
|
+
application/json:
|
|
682
|
+
schema:
|
|
683
|
+
type: array
|
|
684
|
+
items:
|
|
685
|
+
type: object
|
|
686
|
+
properties:
|
|
687
|
+
id:
|
|
688
|
+
type: string
|
|
689
|
+
format: uuid
|
|
690
|
+
description: Edit unique identifier
|
|
691
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
692
|
+
name:
|
|
693
|
+
type: string
|
|
694
|
+
description: Edit name
|
|
695
|
+
example: "Opening Sequence"
|
|
696
|
+
description:
|
|
697
|
+
type: string
|
|
698
|
+
description: Edit description
|
|
699
|
+
example: "Main opening sequence edit"
|
|
700
|
+
project_id:
|
|
701
|
+
type: string
|
|
702
|
+
format: uuid
|
|
703
|
+
description: Project identifier
|
|
704
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
705
|
+
project_name:
|
|
706
|
+
type: string
|
|
707
|
+
description: Project name
|
|
708
|
+
example: "My Animation Project"
|
|
709
|
+
episode_id:
|
|
710
|
+
type: string
|
|
711
|
+
format: uuid
|
|
712
|
+
description: Episode identifier
|
|
713
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
714
|
+
tasks:
|
|
715
|
+
type: array
|
|
716
|
+
items:
|
|
717
|
+
type: object
|
|
718
|
+
properties:
|
|
719
|
+
id:
|
|
720
|
+
type: string
|
|
721
|
+
format: uuid
|
|
722
|
+
description: Task unique identifier
|
|
723
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
724
|
+
name:
|
|
725
|
+
type: string
|
|
726
|
+
description: Task name
|
|
727
|
+
example: "Edit Task"
|
|
728
|
+
task_type_id:
|
|
729
|
+
type: string
|
|
730
|
+
format: uuid
|
|
731
|
+
description: Task type identifier
|
|
732
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
733
|
+
created_at:
|
|
734
|
+
type: string
|
|
735
|
+
format: date-time
|
|
736
|
+
description: Creation timestamp
|
|
737
|
+
example: "2023-01-01T12:00:00Z"
|
|
738
|
+
updated_at:
|
|
739
|
+
type: string
|
|
740
|
+
format: date-time
|
|
741
|
+
description: Last update timestamp
|
|
742
|
+
example: "2023-01-01T12:30:00Z"
|
|
314
743
|
"""
|
|
315
744
|
criterions = query.get_query_criterions_from_request(request)
|
|
316
745
|
user_service.check_project_access(criterions.get("project_id", None))
|
|
@@ -329,20 +758,62 @@ class ProjectEditsResource(Resource, ArgsMixin):
|
|
|
329
758
|
@jwt_required()
|
|
330
759
|
def get(self, project_id):
|
|
331
760
|
"""
|
|
332
|
-
|
|
761
|
+
Get project edits
|
|
333
762
|
---
|
|
763
|
+
description: Retrieve all edits that are related to a specific project.
|
|
334
764
|
tags:
|
|
335
765
|
- Edits
|
|
336
766
|
parameters:
|
|
337
767
|
- in: path
|
|
338
768
|
name: project_id
|
|
339
|
-
required:
|
|
769
|
+
required: true
|
|
340
770
|
type: string
|
|
341
771
|
format: uuid
|
|
342
772
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
773
|
+
description: Unique identifier of the project
|
|
343
774
|
responses:
|
|
344
|
-
|
|
345
|
-
|
|
775
|
+
200:
|
|
776
|
+
description: List of project edits successfully retrieved
|
|
777
|
+
content:
|
|
778
|
+
application/json:
|
|
779
|
+
schema:
|
|
780
|
+
type: array
|
|
781
|
+
items:
|
|
782
|
+
type: object
|
|
783
|
+
properties:
|
|
784
|
+
id:
|
|
785
|
+
type: string
|
|
786
|
+
format: uuid
|
|
787
|
+
description: Edit unique identifier
|
|
788
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
789
|
+
name:
|
|
790
|
+
type: string
|
|
791
|
+
description: Edit name
|
|
792
|
+
example: "Opening Sequence"
|
|
793
|
+
description:
|
|
794
|
+
type: string
|
|
795
|
+
description: Edit description
|
|
796
|
+
example: "Main opening sequence edit"
|
|
797
|
+
project_id:
|
|
798
|
+
type: string
|
|
799
|
+
format: uuid
|
|
800
|
+
description: Project identifier
|
|
801
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
802
|
+
episode_id:
|
|
803
|
+
type: string
|
|
804
|
+
format: uuid
|
|
805
|
+
description: Episode identifier
|
|
806
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
807
|
+
created_at:
|
|
808
|
+
type: string
|
|
809
|
+
format: date-time
|
|
810
|
+
description: Creation timestamp
|
|
811
|
+
example: "2023-01-01T12:00:00Z"
|
|
812
|
+
updated_at:
|
|
813
|
+
type: string
|
|
814
|
+
format: date-time
|
|
815
|
+
description: Last update timestamp
|
|
816
|
+
example: "2023-01-01T12:30:00Z"
|
|
346
817
|
"""
|
|
347
818
|
projects_service.get_project(project_id)
|
|
348
819
|
user_service.check_project_access(project_id)
|
|
@@ -353,34 +824,95 @@ class ProjectEditsResource(Resource, ArgsMixin):
|
|
|
353
824
|
@jwt_required()
|
|
354
825
|
def post(self, project_id):
|
|
355
826
|
"""
|
|
356
|
-
Create
|
|
827
|
+
Create edit
|
|
357
828
|
---
|
|
829
|
+
description: Create a new edit for a specific project with name, description, and optional episode association.
|
|
358
830
|
tags:
|
|
359
831
|
- Edits
|
|
360
832
|
parameters:
|
|
361
833
|
- in: path
|
|
362
834
|
name: project_id
|
|
363
|
-
required:
|
|
364
|
-
type: string
|
|
365
|
-
format: uuid
|
|
366
|
-
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
367
|
-
- in: formData
|
|
368
|
-
name: name
|
|
369
|
-
required: True
|
|
370
|
-
type: string
|
|
371
|
-
example: Name of edit
|
|
372
|
-
- in: formData
|
|
373
|
-
name: description
|
|
374
|
-
type: string
|
|
375
|
-
example: Description of edit
|
|
376
|
-
- in: formData
|
|
377
|
-
name: episode_id
|
|
835
|
+
required: true
|
|
378
836
|
type: string
|
|
379
837
|
format: uuid
|
|
380
838
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
839
|
+
description: Unique identifier of the project
|
|
840
|
+
requestBody:
|
|
841
|
+
required: true
|
|
842
|
+
content:
|
|
843
|
+
application/json:
|
|
844
|
+
schema:
|
|
845
|
+
type: object
|
|
846
|
+
required:
|
|
847
|
+
- name
|
|
848
|
+
properties:
|
|
849
|
+
name:
|
|
850
|
+
type: string
|
|
851
|
+
description: Edit name
|
|
852
|
+
example: "Opening Sequence"
|
|
853
|
+
description:
|
|
854
|
+
type: string
|
|
855
|
+
description: Edit description
|
|
856
|
+
example: "Main opening sequence edit"
|
|
857
|
+
data:
|
|
858
|
+
type: object
|
|
859
|
+
description: Additional edit data
|
|
860
|
+
example: {"duration": 120, "fps": 24}
|
|
861
|
+
episode_id:
|
|
862
|
+
type: string
|
|
863
|
+
format: uuid
|
|
864
|
+
description: Episode identifier (optional)
|
|
865
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
381
866
|
responses:
|
|
382
|
-
|
|
383
|
-
|
|
867
|
+
201:
|
|
868
|
+
description: Edit successfully created
|
|
869
|
+
content:
|
|
870
|
+
application/json:
|
|
871
|
+
schema:
|
|
872
|
+
type: object
|
|
873
|
+
properties:
|
|
874
|
+
id:
|
|
875
|
+
type: string
|
|
876
|
+
format: uuid
|
|
877
|
+
description: Edit unique identifier
|
|
878
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
879
|
+
name:
|
|
880
|
+
type: string
|
|
881
|
+
description: Edit name
|
|
882
|
+
example: "Opening Sequence"
|
|
883
|
+
description:
|
|
884
|
+
type: string
|
|
885
|
+
description: Edit description
|
|
886
|
+
example: "Main opening sequence edit"
|
|
887
|
+
project_id:
|
|
888
|
+
type: string
|
|
889
|
+
format: uuid
|
|
890
|
+
description: Project identifier
|
|
891
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
892
|
+
episode_id:
|
|
893
|
+
type: string
|
|
894
|
+
format: uuid
|
|
895
|
+
description: Episode identifier
|
|
896
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
897
|
+
data:
|
|
898
|
+
type: object
|
|
899
|
+
description: Additional edit data
|
|
900
|
+
example: {"duration": 120, "fps": 24}
|
|
901
|
+
created_by:
|
|
902
|
+
type: string
|
|
903
|
+
format: uuid
|
|
904
|
+
description: Creator person identifier
|
|
905
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
906
|
+
created_at:
|
|
907
|
+
type: string
|
|
908
|
+
format: date-time
|
|
909
|
+
description: Creation timestamp
|
|
910
|
+
example: "2023-01-01T12:00:00Z"
|
|
911
|
+
updated_at:
|
|
912
|
+
type: string
|
|
913
|
+
format: date-time
|
|
914
|
+
description: Last update timestamp
|
|
915
|
+
example: "2023-01-01T12:00:00Z"
|
|
384
916
|
"""
|
|
385
917
|
(name, description, data, parent_id) = self.get_arguments()
|
|
386
918
|
projects_service.get_project(project_id)
|
|
@@ -426,20 +958,58 @@ class EditVersionsResource(Resource):
|
|
|
426
958
|
@jwt_required()
|
|
427
959
|
def get(self, edit_id):
|
|
428
960
|
"""
|
|
429
|
-
|
|
961
|
+
Get edit versions
|
|
430
962
|
---
|
|
963
|
+
description: Retrieve all data versions of a specific edit. This
|
|
964
|
+
includes historical versions and metadata about changes over time.
|
|
431
965
|
tags:
|
|
432
966
|
- Edits
|
|
433
967
|
parameters:
|
|
434
968
|
- in: path
|
|
435
969
|
name: edit_id
|
|
436
|
-
required:
|
|
970
|
+
required: true
|
|
437
971
|
type: string
|
|
438
972
|
format: uuid
|
|
439
973
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
974
|
+
description: Unique identifier of the edit
|
|
440
975
|
responses:
|
|
441
|
-
|
|
442
|
-
|
|
976
|
+
200:
|
|
977
|
+
description: Edit versions successfully retrieved
|
|
978
|
+
content:
|
|
979
|
+
application/json:
|
|
980
|
+
schema:
|
|
981
|
+
type: array
|
|
982
|
+
items:
|
|
983
|
+
type: object
|
|
984
|
+
properties:
|
|
985
|
+
id:
|
|
986
|
+
type: string
|
|
987
|
+
format: uuid
|
|
988
|
+
description: Version unique identifier
|
|
989
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
990
|
+
edit_id:
|
|
991
|
+
type: string
|
|
992
|
+
format: uuid
|
|
993
|
+
description: Edit identifier
|
|
994
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
995
|
+
version_number:
|
|
996
|
+
type: integer
|
|
997
|
+
description: Version number
|
|
998
|
+
example: 1
|
|
999
|
+
data:
|
|
1000
|
+
type: object
|
|
1001
|
+
description: Version data content
|
|
1002
|
+
example: {"duration": 120, "fps": 24, "changes": "Added transitions"}
|
|
1003
|
+
created_at:
|
|
1004
|
+
type: string
|
|
1005
|
+
format: date-time
|
|
1006
|
+
description: Creation timestamp
|
|
1007
|
+
example: "2023-01-01T12:00:00Z"
|
|
1008
|
+
created_by:
|
|
1009
|
+
type: string
|
|
1010
|
+
format: uuid
|
|
1011
|
+
description: Creator person identifier
|
|
1012
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
443
1013
|
"""
|
|
444
1014
|
edit = edits_service.get_edit(edit_id)
|
|
445
1015
|
user_service.check_project_access(edit["project_id"])
|