zou 0.20.81__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 +374 -240
- 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/services/emails_service.py +2 -0
- zou/app/swagger.py +100 -27
- {zou-0.20.81.dist-info → zou-0.20.83.dist-info}/METADATA +1 -1
- {zou-0.20.81.dist-info → zou-0.20.83.dist-info}/RECORD +22 -22
- {zou-0.20.81.dist-info → zou-0.20.83.dist-info}/WHEEL +0 -0
- {zou-0.20.81.dist-info → zou-0.20.83.dist-info}/entry_points.txt +0 -0
- {zou-0.20.81.dist-info → zou-0.20.83.dist-info}/licenses/LICENSE +0 -0
- {zou-0.20.81.dist-info → zou-0.20.83.dist-info}/top_level.txt +0 -0
|
@@ -32,6 +32,7 @@ class AssetTasksResource(Resource):
|
|
|
32
32
|
schema:
|
|
33
33
|
type: string
|
|
34
34
|
format: uuid
|
|
35
|
+
description: Asset unique identifier
|
|
35
36
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
36
37
|
responses:
|
|
37
38
|
200:
|
|
@@ -42,8 +43,48 @@ class AssetTasksResource(Resource):
|
|
|
42
43
|
type: array
|
|
43
44
|
items:
|
|
44
45
|
type: object
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
properties:
|
|
47
|
+
id:
|
|
48
|
+
type: string
|
|
49
|
+
format: uuid
|
|
50
|
+
description: Task unique identifier
|
|
51
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
52
|
+
name:
|
|
53
|
+
type: string
|
|
54
|
+
description: Task name
|
|
55
|
+
example: "Modeling"
|
|
56
|
+
task_type_id:
|
|
57
|
+
type: string
|
|
58
|
+
format: uuid
|
|
59
|
+
description: Task type identifier
|
|
60
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
61
|
+
task_status_id:
|
|
62
|
+
type: string
|
|
63
|
+
format: uuid
|
|
64
|
+
description: Task status identifier
|
|
65
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
66
|
+
assigner_id:
|
|
67
|
+
type: string
|
|
68
|
+
format: uuid
|
|
69
|
+
description: Person who assigned the task
|
|
70
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
71
|
+
assignees:
|
|
72
|
+
type: array
|
|
73
|
+
items:
|
|
74
|
+
type: string
|
|
75
|
+
format: uuid
|
|
76
|
+
description: List of assigned person identifiers
|
|
77
|
+
example: ["f79f1jf9-hj20-9010-f625-a09008537h80"]
|
|
78
|
+
created_at:
|
|
79
|
+
type: string
|
|
80
|
+
format: date-time
|
|
81
|
+
description: Creation timestamp
|
|
82
|
+
example: "2023-01-01T12:00:00Z"
|
|
83
|
+
updated_at:
|
|
84
|
+
type: string
|
|
85
|
+
format: date-time
|
|
86
|
+
description: Last update timestamp
|
|
87
|
+
example: "2023-01-01T12:30:00Z"
|
|
47
88
|
"""
|
|
48
89
|
assets_service.get_asset(asset_id)
|
|
49
90
|
return user_service.get_tasks_for_entity(asset_id)
|
|
@@ -55,9 +96,10 @@ class AssetTaskTypesResource(Resource):
|
|
|
55
96
|
"""
|
|
56
97
|
Get asset task types
|
|
57
98
|
---
|
|
99
|
+
description: Retrieve task types related to a specific asset for the
|
|
100
|
+
current user. Returns all task types available for the given asset.
|
|
58
101
|
tags:
|
|
59
102
|
- User
|
|
60
|
-
description: Return task types related to given asset for current user.
|
|
61
103
|
parameters:
|
|
62
104
|
- in: path
|
|
63
105
|
name: asset_id
|
|
@@ -65,6 +107,7 @@ class AssetTaskTypesResource(Resource):
|
|
|
65
107
|
schema:
|
|
66
108
|
type: string
|
|
67
109
|
format: uuid
|
|
110
|
+
description: Asset unique identifier
|
|
68
111
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
69
112
|
responses:
|
|
70
113
|
200:
|
|
@@ -75,8 +118,42 @@ class AssetTaskTypesResource(Resource):
|
|
|
75
118
|
type: array
|
|
76
119
|
items:
|
|
77
120
|
type: object
|
|
78
|
-
|
|
79
|
-
|
|
121
|
+
properties:
|
|
122
|
+
id:
|
|
123
|
+
type: string
|
|
124
|
+
format: uuid
|
|
125
|
+
description: Task type unique identifier
|
|
126
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
127
|
+
name:
|
|
128
|
+
type: string
|
|
129
|
+
description: Task type name
|
|
130
|
+
example: "Modeling"
|
|
131
|
+
short_name:
|
|
132
|
+
type: string
|
|
133
|
+
description: Task type short name
|
|
134
|
+
example: "MOD"
|
|
135
|
+
color:
|
|
136
|
+
type: string
|
|
137
|
+
description: Task type color
|
|
138
|
+
example: "#FF0000"
|
|
139
|
+
priority:
|
|
140
|
+
type: integer
|
|
141
|
+
description: Task type priority
|
|
142
|
+
example: 1
|
|
143
|
+
for_entity:
|
|
144
|
+
type: string
|
|
145
|
+
description: Entity type this task type applies to
|
|
146
|
+
example: "Asset"
|
|
147
|
+
created_at:
|
|
148
|
+
type: string
|
|
149
|
+
format: date-time
|
|
150
|
+
description: Creation timestamp
|
|
151
|
+
example: "2023-01-01T12:00:00Z"
|
|
152
|
+
updated_at:
|
|
153
|
+
type: string
|
|
154
|
+
format: date-time
|
|
155
|
+
description: Last update timestamp
|
|
156
|
+
example: "2023-01-01T12:30:00Z"
|
|
80
157
|
"""
|
|
81
158
|
assets_service.get_asset(asset_id)
|
|
82
159
|
return user_service.get_task_types_for_entity(asset_id)
|
|
@@ -86,11 +163,12 @@ class ShotTaskTypesResource(Resource):
|
|
|
86
163
|
|
|
87
164
|
def get(self, shot_id):
|
|
88
165
|
"""
|
|
89
|
-
Get shot
|
|
166
|
+
Get shot task types
|
|
90
167
|
---
|
|
168
|
+
description: Retrieve task types related to a specific shot for the
|
|
169
|
+
current user. Returns all task types available for the given shot.
|
|
91
170
|
tags:
|
|
92
171
|
- User
|
|
93
|
-
description: Return tasks related to given shot for current user.
|
|
94
172
|
parameters:
|
|
95
173
|
- in: path
|
|
96
174
|
name: shot_id
|
|
@@ -98,18 +176,53 @@ class ShotTaskTypesResource(Resource):
|
|
|
98
176
|
schema:
|
|
99
177
|
type: string
|
|
100
178
|
format: uuid
|
|
179
|
+
description: Shot unique identifier
|
|
101
180
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
102
181
|
responses:
|
|
103
182
|
200:
|
|
104
|
-
description:
|
|
183
|
+
description: Task types related to given shot for current user
|
|
105
184
|
content:
|
|
106
185
|
application/json:
|
|
107
186
|
schema:
|
|
108
187
|
type: array
|
|
109
188
|
items:
|
|
110
189
|
type: object
|
|
111
|
-
|
|
112
|
-
|
|
190
|
+
properties:
|
|
191
|
+
id:
|
|
192
|
+
type: string
|
|
193
|
+
format: uuid
|
|
194
|
+
description: Task type unique identifier
|
|
195
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
196
|
+
name:
|
|
197
|
+
type: string
|
|
198
|
+
description: Task type name
|
|
199
|
+
example: "Animation"
|
|
200
|
+
short_name:
|
|
201
|
+
type: string
|
|
202
|
+
description: Task type short name
|
|
203
|
+
example: "ANIM"
|
|
204
|
+
color:
|
|
205
|
+
type: string
|
|
206
|
+
description: Task type color
|
|
207
|
+
example: "#00FF00"
|
|
208
|
+
priority:
|
|
209
|
+
type: integer
|
|
210
|
+
description: Task type priority
|
|
211
|
+
example: 2
|
|
212
|
+
for_entity:
|
|
213
|
+
type: string
|
|
214
|
+
description: Entity type this task type applies to
|
|
215
|
+
example: "Shot"
|
|
216
|
+
created_at:
|
|
217
|
+
type: string
|
|
218
|
+
format: date-time
|
|
219
|
+
description: Creation timestamp
|
|
220
|
+
example: "2023-01-01T12:00:00Z"
|
|
221
|
+
updated_at:
|
|
222
|
+
type: string
|
|
223
|
+
format: date-time
|
|
224
|
+
description: Last update timestamp
|
|
225
|
+
example: "2023-01-01T12:30:00Z"
|
|
113
226
|
"""
|
|
114
227
|
shots_service.get_shot(shot_id)
|
|
115
228
|
return user_service.get_task_types_for_entity(shot_id)
|
|
@@ -122,11 +235,12 @@ class SceneTaskTypesResource(Resource):
|
|
|
122
235
|
|
|
123
236
|
def get(self, scene_id):
|
|
124
237
|
"""
|
|
125
|
-
Get scene
|
|
238
|
+
Get scene task types
|
|
126
239
|
---
|
|
240
|
+
description: Retrieve task types related to a specific scene for the
|
|
241
|
+
current user.
|
|
127
242
|
tags:
|
|
128
243
|
- User
|
|
129
|
-
description: Return tasks related to given scene for current user.
|
|
130
244
|
parameters:
|
|
131
245
|
- in: path
|
|
132
246
|
name: scene_id
|
|
@@ -134,18 +248,53 @@ class SceneTaskTypesResource(Resource):
|
|
|
134
248
|
schema:
|
|
135
249
|
type: string
|
|
136
250
|
format: uuid
|
|
251
|
+
description: Scene unique identifier
|
|
137
252
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
138
253
|
responses:
|
|
139
254
|
200:
|
|
140
|
-
description:
|
|
255
|
+
description: Task types related to given scene for current user
|
|
141
256
|
content:
|
|
142
257
|
application/json:
|
|
143
258
|
schema:
|
|
144
259
|
type: array
|
|
145
260
|
items:
|
|
146
261
|
type: object
|
|
147
|
-
|
|
148
|
-
|
|
262
|
+
properties:
|
|
263
|
+
id:
|
|
264
|
+
type: string
|
|
265
|
+
format: uuid
|
|
266
|
+
description: Task type unique identifier
|
|
267
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
268
|
+
name:
|
|
269
|
+
type: string
|
|
270
|
+
description: Task type name
|
|
271
|
+
example: "Layout"
|
|
272
|
+
short_name:
|
|
273
|
+
type: string
|
|
274
|
+
description: Task type short name
|
|
275
|
+
example: "LAY"
|
|
276
|
+
color:
|
|
277
|
+
type: string
|
|
278
|
+
description: Task type color
|
|
279
|
+
example: "#0000FF"
|
|
280
|
+
priority:
|
|
281
|
+
type: integer
|
|
282
|
+
description: Task type priority
|
|
283
|
+
example: 3
|
|
284
|
+
for_entity:
|
|
285
|
+
type: string
|
|
286
|
+
description: Entity type this task type applies to
|
|
287
|
+
example: "Scene"
|
|
288
|
+
created_at:
|
|
289
|
+
type: string
|
|
290
|
+
format: date-time
|
|
291
|
+
description: Creation timestamp
|
|
292
|
+
example: "2023-01-01T12:00:00Z"
|
|
293
|
+
updated_at:
|
|
294
|
+
type: string
|
|
295
|
+
format: date-time
|
|
296
|
+
description: Last update timestamp
|
|
297
|
+
example: "2023-01-01T12:30:00Z"
|
|
149
298
|
"""
|
|
150
299
|
shots_service.get_scene(scene_id)
|
|
151
300
|
return user_service.get_task_types_for_entity(scene_id)
|
|
@@ -157,9 +306,10 @@ class SequenceTaskTypesResource(Resource):
|
|
|
157
306
|
"""
|
|
158
307
|
Get sequence task types
|
|
159
308
|
---
|
|
309
|
+
description: Retrieve task types related to a specific sequence for the
|
|
310
|
+
current user.
|
|
160
311
|
tags:
|
|
161
312
|
- User
|
|
162
|
-
description: Return task types related to given sequence for current user
|
|
163
313
|
parameters:
|
|
164
314
|
- in: path
|
|
165
315
|
name: sequence_id
|
|
@@ -167,18 +317,53 @@ class SequenceTaskTypesResource(Resource):
|
|
|
167
317
|
schema:
|
|
168
318
|
type: string
|
|
169
319
|
format: uuid
|
|
320
|
+
description: Sequence unique identifier
|
|
170
321
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
171
322
|
responses:
|
|
172
323
|
200:
|
|
173
|
-
description:
|
|
324
|
+
description: Task types related to given sequence for current user
|
|
174
325
|
content:
|
|
175
326
|
application/json:
|
|
176
327
|
schema:
|
|
177
328
|
type: array
|
|
178
329
|
items:
|
|
179
330
|
type: object
|
|
180
|
-
|
|
181
|
-
|
|
331
|
+
properties:
|
|
332
|
+
id:
|
|
333
|
+
type: string
|
|
334
|
+
format: uuid
|
|
335
|
+
description: Task type unique identifier
|
|
336
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
337
|
+
name:
|
|
338
|
+
type: string
|
|
339
|
+
description: Task type name
|
|
340
|
+
example: "Compositing"
|
|
341
|
+
short_name:
|
|
342
|
+
type: string
|
|
343
|
+
description: Task type short name
|
|
344
|
+
example: "COMP"
|
|
345
|
+
color:
|
|
346
|
+
type: string
|
|
347
|
+
description: Task type color
|
|
348
|
+
example: "#FFFF00"
|
|
349
|
+
priority:
|
|
350
|
+
type: integer
|
|
351
|
+
description: Task type priority
|
|
352
|
+
example: 4
|
|
353
|
+
for_entity:
|
|
354
|
+
type: string
|
|
355
|
+
description: Entity type this task type applies to
|
|
356
|
+
example: "Sequence"
|
|
357
|
+
created_at:
|
|
358
|
+
type: string
|
|
359
|
+
format: date-time
|
|
360
|
+
description: Creation timestamp
|
|
361
|
+
example: "2023-01-01T12:00:00Z"
|
|
362
|
+
updated_at:
|
|
363
|
+
type: string
|
|
364
|
+
format: date-time
|
|
365
|
+
description: Last update timestamp
|
|
366
|
+
example: "2023-01-01T12:30:00Z"
|
|
182
367
|
"""
|
|
183
368
|
shots_service.get_sequence(sequence_id)
|
|
184
369
|
return user_service.get_task_types_for_entity(sequence_id)
|
|
@@ -190,9 +375,10 @@ class AssetTypeAssetsResource(Resource):
|
|
|
190
375
|
"""
|
|
191
376
|
Get project assets
|
|
192
377
|
---
|
|
378
|
+
description: Retrieve assets of a specific type within a project
|
|
379
|
+
matching the asset type in the given project if the user has access.
|
|
193
380
|
tags:
|
|
194
381
|
- User
|
|
195
|
-
description: Return assets of which type is given asset type and are listed in given project if user has access to this project.
|
|
196
382
|
parameters:
|
|
197
383
|
- in: path
|
|
198
384
|
name: project_id
|
|
@@ -200,6 +386,7 @@ class AssetTypeAssetsResource(Resource):
|
|
|
200
386
|
schema:
|
|
201
387
|
type: string
|
|
202
388
|
format: uuid
|
|
389
|
+
description: Project unique identifier
|
|
203
390
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
204
391
|
- in: path
|
|
205
392
|
name: asset_type_id
|
|
@@ -207,18 +394,51 @@ class AssetTypeAssetsResource(Resource):
|
|
|
207
394
|
schema:
|
|
208
395
|
type: string
|
|
209
396
|
format: uuid
|
|
210
|
-
|
|
397
|
+
description: Asset type unique identifier
|
|
398
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
211
399
|
responses:
|
|
212
400
|
200:
|
|
213
|
-
description: Assets of
|
|
401
|
+
description: Assets of given type in the specified project
|
|
214
402
|
content:
|
|
215
403
|
application/json:
|
|
216
404
|
schema:
|
|
217
405
|
type: array
|
|
218
406
|
items:
|
|
219
407
|
type: object
|
|
220
|
-
|
|
221
|
-
|
|
408
|
+
properties:
|
|
409
|
+
id:
|
|
410
|
+
type: string
|
|
411
|
+
format: uuid
|
|
412
|
+
description: Asset unique identifier
|
|
413
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
414
|
+
name:
|
|
415
|
+
type: string
|
|
416
|
+
description: Asset name
|
|
417
|
+
example: "Main Character"
|
|
418
|
+
description:
|
|
419
|
+
type: string
|
|
420
|
+
description: Asset description
|
|
421
|
+
example: "Main character model for the project"
|
|
422
|
+
asset_type_id:
|
|
423
|
+
type: string
|
|
424
|
+
format: uuid
|
|
425
|
+
description: Asset type identifier
|
|
426
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
427
|
+
project_id:
|
|
428
|
+
type: string
|
|
429
|
+
format: uuid
|
|
430
|
+
description: Project identifier
|
|
431
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
432
|
+
created_at:
|
|
433
|
+
type: string
|
|
434
|
+
format: date-time
|
|
435
|
+
description: Creation timestamp
|
|
436
|
+
example: "2023-01-01T12:00:00Z"
|
|
437
|
+
updated_at:
|
|
438
|
+
type: string
|
|
439
|
+
format: date-time
|
|
440
|
+
description: Last update timestamp
|
|
441
|
+
example: "2023-01-01T12:30:00Z"
|
|
222
442
|
"""
|
|
223
443
|
projects_service.get_project(project_id)
|
|
224
444
|
assets_service.get_asset_type(asset_type_id)
|
|
@@ -233,9 +453,10 @@ class OpenProjectsResource(Resource, ArgsMixin):
|
|
|
233
453
|
"""
|
|
234
454
|
Get open projects
|
|
235
455
|
---
|
|
456
|
+
description: Retrieve open projects for which the current user has at
|
|
457
|
+
least one task assigned. Optionally filter by project name.
|
|
236
458
|
tags:
|
|
237
459
|
- User
|
|
238
|
-
description: Return open projects for which the user has at least one task assigned
|
|
239
460
|
parameters:
|
|
240
461
|
- in: query
|
|
241
462
|
name: name
|
|
@@ -243,15 +464,56 @@ class OpenProjectsResource(Resource, ArgsMixin):
|
|
|
243
464
|
schema:
|
|
244
465
|
type: string
|
|
245
466
|
description: Filter projects by name
|
|
467
|
+
example: "My Project"
|
|
246
468
|
responses:
|
|
247
469
|
200:
|
|
248
|
-
description: Open projects
|
|
470
|
+
description: Open projects with assigned tasks for current user
|
|
249
471
|
content:
|
|
250
472
|
application/json:
|
|
251
473
|
schema:
|
|
252
474
|
type: array
|
|
253
475
|
items:
|
|
254
476
|
type: object
|
|
477
|
+
properties:
|
|
478
|
+
id:
|
|
479
|
+
type: string
|
|
480
|
+
format: uuid
|
|
481
|
+
description: Project unique identifier
|
|
482
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
483
|
+
name:
|
|
484
|
+
type: string
|
|
485
|
+
description: Project name
|
|
486
|
+
example: "My Project"
|
|
487
|
+
description:
|
|
488
|
+
type: string
|
|
489
|
+
description: Project description
|
|
490
|
+
example: "A sample project"
|
|
491
|
+
status:
|
|
492
|
+
type: string
|
|
493
|
+
description: Project status
|
|
494
|
+
example: "Active"
|
|
495
|
+
fps:
|
|
496
|
+
type: number
|
|
497
|
+
description: Frames per second
|
|
498
|
+
example: 24.0
|
|
499
|
+
ratio:
|
|
500
|
+
type: string
|
|
501
|
+
description: Aspect ratio
|
|
502
|
+
example: "16:9"
|
|
503
|
+
resolution:
|
|
504
|
+
type: string
|
|
505
|
+
description: Project resolution
|
|
506
|
+
example: "1920x1080"
|
|
507
|
+
created_at:
|
|
508
|
+
type: string
|
|
509
|
+
format: date-time
|
|
510
|
+
description: Creation timestamp
|
|
511
|
+
example: "2023-01-01T12:00:00Z"
|
|
512
|
+
updated_at:
|
|
513
|
+
type: string
|
|
514
|
+
format: date-time
|
|
515
|
+
description: Last update timestamp
|
|
516
|
+
example: "2023-01-01T12:30:00Z"
|
|
255
517
|
"""
|
|
256
518
|
name = self.get_text_parameter("name")
|
|
257
519
|
return user_service.get_open_projects(name=name)
|
|
@@ -263,9 +525,11 @@ class ProjectSequencesResource(Resource):
|
|
|
263
525
|
"""
|
|
264
526
|
Get project sequences
|
|
265
527
|
---
|
|
528
|
+
description: Retrieve sequences related to a specific project for the
|
|
529
|
+
current user. Returns all sequences in the project if the user has
|
|
530
|
+
access.
|
|
266
531
|
tags:
|
|
267
532
|
- User
|
|
268
|
-
description: Return sequences related to given project if the current user has access to it
|
|
269
533
|
parameters:
|
|
270
534
|
- in: path
|
|
271
535
|
name: project_id
|
|
@@ -273,6 +537,7 @@ class ProjectSequencesResource(Resource):
|
|
|
273
537
|
schema:
|
|
274
538
|
type: string
|
|
275
539
|
format: uuid
|
|
540
|
+
description: Project unique identifier
|
|
276
541
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
277
542
|
responses:
|
|
278
543
|
200:
|
|
@@ -283,8 +548,39 @@ class ProjectSequencesResource(Resource):
|
|
|
283
548
|
type: array
|
|
284
549
|
items:
|
|
285
550
|
type: object
|
|
286
|
-
|
|
287
|
-
|
|
551
|
+
properties:
|
|
552
|
+
id:
|
|
553
|
+
type: string
|
|
554
|
+
format: uuid
|
|
555
|
+
description: Sequence unique identifier
|
|
556
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
557
|
+
name:
|
|
558
|
+
type: string
|
|
559
|
+
description: Sequence name
|
|
560
|
+
example: "SEQ001"
|
|
561
|
+
description:
|
|
562
|
+
type: string
|
|
563
|
+
description: Sequence description
|
|
564
|
+
example: "Main sequence"
|
|
565
|
+
project_id:
|
|
566
|
+
type: string
|
|
567
|
+
format: uuid
|
|
568
|
+
description: Project identifier
|
|
569
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
570
|
+
fps:
|
|
571
|
+
type: number
|
|
572
|
+
description: Frames per second
|
|
573
|
+
example: 24.0
|
|
574
|
+
created_at:
|
|
575
|
+
type: string
|
|
576
|
+
format: date-time
|
|
577
|
+
description: Creation timestamp
|
|
578
|
+
example: "2023-01-01T12:00:00Z"
|
|
579
|
+
updated_at:
|
|
580
|
+
type: string
|
|
581
|
+
format: date-time
|
|
582
|
+
description: Last update timestamp
|
|
583
|
+
example: "2023-01-01T12:30:00Z"
|
|
288
584
|
"""
|
|
289
585
|
projects_service.get_project(project_id)
|
|
290
586
|
return user_service.get_sequences_for_project(project_id)
|
|
@@ -296,9 +592,11 @@ class ProjectEpisodesResource(Resource):
|
|
|
296
592
|
"""
|
|
297
593
|
Get project episodes
|
|
298
594
|
---
|
|
595
|
+
description: Retrieve episodes related to a specific project for the
|
|
596
|
+
current user. Returns all episodes in the project if the user has
|
|
597
|
+
access.
|
|
299
598
|
tags:
|
|
300
599
|
- User
|
|
301
|
-
description: Return episodes related to given project if the current user has access to it.
|
|
302
600
|
parameters:
|
|
303
601
|
- in: path
|
|
304
602
|
name: project_id
|
|
@@ -306,6 +604,7 @@ class ProjectEpisodesResource(Resource):
|
|
|
306
604
|
schema:
|
|
307
605
|
type: string
|
|
308
606
|
format: uuid
|
|
607
|
+
description: Project unique identifier
|
|
309
608
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
310
609
|
responses:
|
|
311
610
|
200:
|
|
@@ -316,8 +615,35 @@ class ProjectEpisodesResource(Resource):
|
|
|
316
615
|
type: array
|
|
317
616
|
items:
|
|
318
617
|
type: object
|
|
319
|
-
|
|
320
|
-
|
|
618
|
+
properties:
|
|
619
|
+
id:
|
|
620
|
+
type: string
|
|
621
|
+
format: uuid
|
|
622
|
+
description: Episode unique identifier
|
|
623
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
624
|
+
name:
|
|
625
|
+
type: string
|
|
626
|
+
description: Episode name
|
|
627
|
+
example: "Episode 01"
|
|
628
|
+
description:
|
|
629
|
+
type: string
|
|
630
|
+
description: Episode description
|
|
631
|
+
example: "First episode"
|
|
632
|
+
project_id:
|
|
633
|
+
type: string
|
|
634
|
+
format: uuid
|
|
635
|
+
description: Project identifier
|
|
636
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
637
|
+
created_at:
|
|
638
|
+
type: string
|
|
639
|
+
format: date-time
|
|
640
|
+
description: Creation timestamp
|
|
641
|
+
example: "2023-01-01T12:00:00Z"
|
|
642
|
+
updated_at:
|
|
643
|
+
type: string
|
|
644
|
+
format: date-time
|
|
645
|
+
description: Last update timestamp
|
|
646
|
+
example: "2023-01-01T12:30:00Z"
|
|
321
647
|
"""
|
|
322
648
|
projects_service.get_project(project_id)
|
|
323
649
|
return user_service.get_project_episodes(project_id)
|
|
@@ -329,10 +655,10 @@ class ProjectAssetTypesResource(Resource):
|
|
|
329
655
|
"""
|
|
330
656
|
Get project asset types
|
|
331
657
|
---
|
|
658
|
+
description: Retrieve asset types related to a specific project for the
|
|
659
|
+
current user.
|
|
332
660
|
tags:
|
|
333
661
|
- User
|
|
334
|
-
description: Return asset types related to given project if the current
|
|
335
|
-
user has access to it.
|
|
336
662
|
parameters:
|
|
337
663
|
- in: path
|
|
338
664
|
name: project_id
|
|
@@ -340,6 +666,7 @@ class ProjectAssetTypesResource(Resource):
|
|
|
340
666
|
schema:
|
|
341
667
|
type: string
|
|
342
668
|
format: uuid
|
|
669
|
+
description: Project unique identifier
|
|
343
670
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
344
671
|
responses:
|
|
345
672
|
200:
|
|
@@ -350,8 +677,39 @@ class ProjectAssetTypesResource(Resource):
|
|
|
350
677
|
type: array
|
|
351
678
|
items:
|
|
352
679
|
type: object
|
|
353
|
-
|
|
354
|
-
|
|
680
|
+
properties:
|
|
681
|
+
id:
|
|
682
|
+
type: string
|
|
683
|
+
format: uuid
|
|
684
|
+
description: Asset type unique identifier
|
|
685
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
686
|
+
name:
|
|
687
|
+
type: string
|
|
688
|
+
description: Asset type name
|
|
689
|
+
example: "Character"
|
|
690
|
+
short_name:
|
|
691
|
+
type: string
|
|
692
|
+
description: Asset type short name
|
|
693
|
+
example: "CHAR"
|
|
694
|
+
color:
|
|
695
|
+
type: string
|
|
696
|
+
description: Asset type color
|
|
697
|
+
example: "#FF0000"
|
|
698
|
+
project_id:
|
|
699
|
+
type: string
|
|
700
|
+
format: uuid
|
|
701
|
+
description: Project identifier
|
|
702
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
703
|
+
created_at:
|
|
704
|
+
type: string
|
|
705
|
+
format: date-time
|
|
706
|
+
description: Creation timestamp
|
|
707
|
+
example: "2023-01-01T12:00:00Z"
|
|
708
|
+
updated_at:
|
|
709
|
+
type: string
|
|
710
|
+
format: date-time
|
|
711
|
+
description: Last update timestamp
|
|
712
|
+
example: "2023-01-01T12:30:00Z"
|
|
355
713
|
"""
|
|
356
714
|
projects_service.get_project(project_id)
|
|
357
715
|
return user_service.get_asset_types_for_project(project_id)
|
|
@@ -363,9 +721,10 @@ class SequenceShotsResource(Resource):
|
|
|
363
721
|
"""
|
|
364
722
|
Get sequence shots
|
|
365
723
|
---
|
|
724
|
+
description: Retrieve shots related to a specific sequence for the
|
|
725
|
+
current user.
|
|
366
726
|
tags:
|
|
367
727
|
- User
|
|
368
|
-
description: Return shots related to given sequence if the current user has access to it.
|
|
369
728
|
parameters:
|
|
370
729
|
- in: path
|
|
371
730
|
name: sequence_id
|
|
@@ -373,6 +732,7 @@ class SequenceShotsResource(Resource):
|
|
|
373
732
|
schema:
|
|
374
733
|
type: string
|
|
375
734
|
format: uuid
|
|
735
|
+
description: Sequence unique identifier
|
|
376
736
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
377
737
|
responses:
|
|
378
738
|
200:
|
|
@@ -383,8 +743,40 @@ class SequenceShotsResource(Resource):
|
|
|
383
743
|
type: array
|
|
384
744
|
items:
|
|
385
745
|
type: object
|
|
386
|
-
|
|
387
|
-
|
|
746
|
+
properties:
|
|
747
|
+
id:
|
|
748
|
+
type: string
|
|
749
|
+
format: uuid
|
|
750
|
+
description: Shot unique identifier
|
|
751
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
752
|
+
name:
|
|
753
|
+
type: string
|
|
754
|
+
description: Shot name
|
|
755
|
+
example: "SH001"
|
|
756
|
+
description:
|
|
757
|
+
type: string
|
|
758
|
+
description: Shot description
|
|
759
|
+
example: "Main shot"
|
|
760
|
+
sequence_id:
|
|
761
|
+
type: string
|
|
762
|
+
format: uuid
|
|
763
|
+
description: Sequence identifier
|
|
764
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
765
|
+
project_id:
|
|
766
|
+
type: string
|
|
767
|
+
format: uuid
|
|
768
|
+
description: Project identifier
|
|
769
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
770
|
+
created_at:
|
|
771
|
+
type: string
|
|
772
|
+
format: date-time
|
|
773
|
+
description: Creation timestamp
|
|
774
|
+
example: "2023-01-01T12:00:00Z"
|
|
775
|
+
updated_at:
|
|
776
|
+
type: string
|
|
777
|
+
format: date-time
|
|
778
|
+
description: Last update timestamp
|
|
779
|
+
example: "2023-01-01T12:30:00Z"
|
|
388
780
|
"""
|
|
389
781
|
shots_service.get_sequence(sequence_id)
|
|
390
782
|
return user_service.get_shots_for_sequence(sequence_id)
|
|
@@ -396,9 +788,10 @@ class SequenceScenesResource(Resource):
|
|
|
396
788
|
"""
|
|
397
789
|
Get sequence scenes
|
|
398
790
|
---
|
|
791
|
+
description: Retrieve scenes related to a specific sequence for the
|
|
792
|
+
current user.
|
|
399
793
|
tags:
|
|
400
794
|
- User
|
|
401
|
-
description: Return scenes related to given sequence if the current user has access to it.
|
|
402
795
|
parameters:
|
|
403
796
|
- in: path
|
|
404
797
|
name: sequence_id
|
|
@@ -406,6 +799,7 @@ class SequenceScenesResource(Resource):
|
|
|
406
799
|
schema:
|
|
407
800
|
type: string
|
|
408
801
|
format: uuid
|
|
802
|
+
description: Sequence unique identifier
|
|
409
803
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
410
804
|
responses:
|
|
411
805
|
200:
|
|
@@ -416,8 +810,40 @@ class SequenceScenesResource(Resource):
|
|
|
416
810
|
type: array
|
|
417
811
|
items:
|
|
418
812
|
type: object
|
|
419
|
-
|
|
420
|
-
|
|
813
|
+
properties:
|
|
814
|
+
id:
|
|
815
|
+
type: string
|
|
816
|
+
format: uuid
|
|
817
|
+
description: Scene unique identifier
|
|
818
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
819
|
+
name:
|
|
820
|
+
type: string
|
|
821
|
+
description: Scene name
|
|
822
|
+
example: "SC001"
|
|
823
|
+
description:
|
|
824
|
+
type: string
|
|
825
|
+
description: Scene description
|
|
826
|
+
example: "Main scene"
|
|
827
|
+
sequence_id:
|
|
828
|
+
type: string
|
|
829
|
+
format: uuid
|
|
830
|
+
description: Sequence identifier
|
|
831
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
832
|
+
project_id:
|
|
833
|
+
type: string
|
|
834
|
+
format: uuid
|
|
835
|
+
description: Project identifier
|
|
836
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
837
|
+
created_at:
|
|
838
|
+
type: string
|
|
839
|
+
format: date-time
|
|
840
|
+
description: Creation timestamp
|
|
841
|
+
example: "2023-01-01T12:00:00Z"
|
|
842
|
+
updated_at:
|
|
843
|
+
type: string
|
|
844
|
+
format: date-time
|
|
845
|
+
description: Last update timestamp
|
|
846
|
+
example: "2023-01-01T12:30:00Z"
|
|
421
847
|
"""
|
|
422
848
|
shots_service.get_sequence(sequence_id)
|
|
423
849
|
return user_service.get_scenes_for_sequence(sequence_id)
|
|
@@ -429,9 +855,10 @@ class ShotTasksResource(Resource):
|
|
|
429
855
|
"""
|
|
430
856
|
Get shot tasks
|
|
431
857
|
---
|
|
858
|
+
description: Retrieve tasks related to a specific shot for the current
|
|
859
|
+
user. Returns all tasks assigned to the user for the given shot.
|
|
432
860
|
tags:
|
|
433
861
|
- User
|
|
434
|
-
description: Return tasks related to given shot for current user.
|
|
435
862
|
parameters:
|
|
436
863
|
- in: path
|
|
437
864
|
name: shot_id
|
|
@@ -439,6 +866,7 @@ class ShotTasksResource(Resource):
|
|
|
439
866
|
schema:
|
|
440
867
|
type: string
|
|
441
868
|
format: uuid
|
|
869
|
+
description: Shot unique identifier
|
|
442
870
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
443
871
|
responses:
|
|
444
872
|
200:
|
|
@@ -449,8 +877,48 @@ class ShotTasksResource(Resource):
|
|
|
449
877
|
type: array
|
|
450
878
|
items:
|
|
451
879
|
type: object
|
|
452
|
-
|
|
453
|
-
|
|
880
|
+
properties:
|
|
881
|
+
id:
|
|
882
|
+
type: string
|
|
883
|
+
format: uuid
|
|
884
|
+
description: Task unique identifier
|
|
885
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
886
|
+
name:
|
|
887
|
+
type: string
|
|
888
|
+
description: Task name
|
|
889
|
+
example: "Animation"
|
|
890
|
+
task_type_id:
|
|
891
|
+
type: string
|
|
892
|
+
format: uuid
|
|
893
|
+
description: Task type identifier
|
|
894
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
895
|
+
task_status_id:
|
|
896
|
+
type: string
|
|
897
|
+
format: uuid
|
|
898
|
+
description: Task status identifier
|
|
899
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
900
|
+
assigner_id:
|
|
901
|
+
type: string
|
|
902
|
+
format: uuid
|
|
903
|
+
description: Person who assigned the task
|
|
904
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
905
|
+
assignees:
|
|
906
|
+
type: array
|
|
907
|
+
items:
|
|
908
|
+
type: string
|
|
909
|
+
format: uuid
|
|
910
|
+
description: List of assigned person identifiers
|
|
911
|
+
example: ["f79f1jf9-hj20-9010-f625-a09008537h80"]
|
|
912
|
+
created_at:
|
|
913
|
+
type: string
|
|
914
|
+
format: date-time
|
|
915
|
+
description: Creation timestamp
|
|
916
|
+
example: "2023-01-01T12:00:00Z"
|
|
917
|
+
updated_at:
|
|
918
|
+
type: string
|
|
919
|
+
format: date-time
|
|
920
|
+
description: Last update timestamp
|
|
921
|
+
example: "2023-01-01T12:30:00Z"
|
|
454
922
|
"""
|
|
455
923
|
shots_service.get_shot(shot_id)
|
|
456
924
|
return user_service.get_tasks_for_entity(shot_id)
|
|
@@ -462,9 +930,10 @@ class SceneTasksResource(Resource):
|
|
|
462
930
|
"""
|
|
463
931
|
Get scene tasks
|
|
464
932
|
---
|
|
933
|
+
description: Retrieve tasks related to a specific scene for the current
|
|
934
|
+
user.
|
|
465
935
|
tags:
|
|
466
936
|
- User
|
|
467
|
-
description: Return tasks related to given scene for current user.
|
|
468
937
|
parameters:
|
|
469
938
|
- in: path
|
|
470
939
|
name: scene_id
|
|
@@ -472,6 +941,7 @@ class SceneTasksResource(Resource):
|
|
|
472
941
|
schema:
|
|
473
942
|
type: string
|
|
474
943
|
format: uuid
|
|
944
|
+
description: Scene unique identifier
|
|
475
945
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
476
946
|
responses:
|
|
477
947
|
200:
|
|
@@ -482,8 +952,48 @@ class SceneTasksResource(Resource):
|
|
|
482
952
|
type: array
|
|
483
953
|
items:
|
|
484
954
|
type: object
|
|
485
|
-
|
|
486
|
-
|
|
955
|
+
properties:
|
|
956
|
+
id:
|
|
957
|
+
type: string
|
|
958
|
+
format: uuid
|
|
959
|
+
description: Task unique identifier
|
|
960
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
961
|
+
name:
|
|
962
|
+
type: string
|
|
963
|
+
description: Task name
|
|
964
|
+
example: "Layout"
|
|
965
|
+
task_type_id:
|
|
966
|
+
type: string
|
|
967
|
+
format: uuid
|
|
968
|
+
description: Task type identifier
|
|
969
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
970
|
+
task_status_id:
|
|
971
|
+
type: string
|
|
972
|
+
format: uuid
|
|
973
|
+
description: Task status identifier
|
|
974
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
975
|
+
assigner_id:
|
|
976
|
+
type: string
|
|
977
|
+
format: uuid
|
|
978
|
+
description: Person who assigned the task
|
|
979
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
980
|
+
assignees:
|
|
981
|
+
type: array
|
|
982
|
+
items:
|
|
983
|
+
type: string
|
|
984
|
+
format: uuid
|
|
985
|
+
description: List of assigned person identifiers
|
|
986
|
+
example: ["f79f1jf9-hj20-9010-f625-a09008537h80"]
|
|
987
|
+
created_at:
|
|
988
|
+
type: string
|
|
989
|
+
format: date-time
|
|
990
|
+
description: Creation timestamp
|
|
991
|
+
example: "2023-01-01T12:00:00Z"
|
|
992
|
+
updated_at:
|
|
993
|
+
type: string
|
|
994
|
+
format: date-time
|
|
995
|
+
description: Last update timestamp
|
|
996
|
+
example: "2023-01-01T12:30:00Z"
|
|
487
997
|
"""
|
|
488
998
|
shots_service.get_scene(scene_id)
|
|
489
999
|
return user_service.get_tasks_for_entity(scene_id)
|
|
@@ -495,9 +1005,11 @@ class SequenceTasksResource(Resource):
|
|
|
495
1005
|
"""
|
|
496
1006
|
Get sequence tasks
|
|
497
1007
|
---
|
|
1008
|
+
description: Retrieve tasks related to a specific sequence for the
|
|
1009
|
+
current user.
|
|
1010
|
+
sequence.
|
|
498
1011
|
tags:
|
|
499
1012
|
- User
|
|
500
|
-
description: Return tasks related to given sequence for current user.
|
|
501
1013
|
parameters:
|
|
502
1014
|
- in: path
|
|
503
1015
|
name: sequence_id
|
|
@@ -505,6 +1017,7 @@ class SequenceTasksResource(Resource):
|
|
|
505
1017
|
schema:
|
|
506
1018
|
type: string
|
|
507
1019
|
format: uuid
|
|
1020
|
+
description: Sequence unique identifier
|
|
508
1021
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
509
1022
|
responses:
|
|
510
1023
|
200:
|
|
@@ -515,26 +1028,63 @@ class SequenceTasksResource(Resource):
|
|
|
515
1028
|
type: array
|
|
516
1029
|
items:
|
|
517
1030
|
type: object
|
|
518
|
-
|
|
519
|
-
|
|
1031
|
+
properties:
|
|
1032
|
+
id:
|
|
1033
|
+
type: string
|
|
1034
|
+
format: uuid
|
|
1035
|
+
description: Task unique identifier
|
|
1036
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1037
|
+
name:
|
|
1038
|
+
type: string
|
|
1039
|
+
description: Task name
|
|
1040
|
+
example: "Compositing"
|
|
1041
|
+
task_type_id:
|
|
1042
|
+
type: string
|
|
1043
|
+
format: uuid
|
|
1044
|
+
description: Task type identifier
|
|
1045
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
1046
|
+
task_status_id:
|
|
1047
|
+
type: string
|
|
1048
|
+
format: uuid
|
|
1049
|
+
description: Task status identifier
|
|
1050
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
1051
|
+
assigner_id:
|
|
1052
|
+
type: string
|
|
1053
|
+
format: uuid
|
|
1054
|
+
description: Person who assigned the task
|
|
1055
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
1056
|
+
assignees:
|
|
1057
|
+
type: array
|
|
1058
|
+
items:
|
|
1059
|
+
type: string
|
|
1060
|
+
format: uuid
|
|
1061
|
+
description: List of assigned person identifiers
|
|
1062
|
+
example: ["f79f1jf9-hj20-9010-f625-a09008537h80"]
|
|
1063
|
+
created_at:
|
|
1064
|
+
type: string
|
|
1065
|
+
format: date-time
|
|
1066
|
+
description: Creation timestamp
|
|
1067
|
+
example: "2023-01-01T12:00:00Z"
|
|
1068
|
+
updated_at:
|
|
1069
|
+
type: string
|
|
1070
|
+
format: date-time
|
|
1071
|
+
description: Last update timestamp
|
|
1072
|
+
example: "2023-01-01T12:30:00Z"
|
|
520
1073
|
"""
|
|
521
1074
|
shots_service.get_sequence(sequence_id)
|
|
522
1075
|
return user_service.get_tasks_for_entity(sequence_id)
|
|
523
1076
|
|
|
524
1077
|
|
|
525
1078
|
class TodosResource(Resource):
|
|
526
|
-
"""
|
|
527
|
-
Return tasks currently assigned to current user and of which status
|
|
528
|
-
has is_done attribute set to false.
|
|
529
|
-
"""
|
|
530
1079
|
|
|
531
1080
|
def get(self):
|
|
532
1081
|
"""
|
|
533
1082
|
Get my tasks
|
|
534
1083
|
---
|
|
1084
|
+
description: Retrieve ttasks currently assigned to current user and of which status
|
|
1085
|
+
has is_done attribute set to false.
|
|
535
1086
|
tags:
|
|
536
1087
|
- User
|
|
537
|
-
description: Return tasks currently assigned to current user and of which status has is_done attribute set to false.
|
|
538
1088
|
responses:
|
|
539
1089
|
200:
|
|
540
1090
|
description: Unfinished tasks currently assigned to current user
|
|
@@ -544,6 +1094,48 @@ class TodosResource(Resource):
|
|
|
544
1094
|
type: array
|
|
545
1095
|
items:
|
|
546
1096
|
type: object
|
|
1097
|
+
properties:
|
|
1098
|
+
id:
|
|
1099
|
+
type: string
|
|
1100
|
+
format: uuid
|
|
1101
|
+
description: Task unique identifier
|
|
1102
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1103
|
+
name:
|
|
1104
|
+
type: string
|
|
1105
|
+
description: Task name
|
|
1106
|
+
example: "Modeling"
|
|
1107
|
+
task_type_id:
|
|
1108
|
+
type: string
|
|
1109
|
+
format: uuid
|
|
1110
|
+
description: Task type identifier
|
|
1111
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
1112
|
+
task_status_id:
|
|
1113
|
+
type: string
|
|
1114
|
+
format: uuid
|
|
1115
|
+
description: Task status identifier
|
|
1116
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
1117
|
+
assigner_id:
|
|
1118
|
+
type: string
|
|
1119
|
+
format: uuid
|
|
1120
|
+
description: Person who assigned the task
|
|
1121
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
1122
|
+
assignees:
|
|
1123
|
+
type: array
|
|
1124
|
+
items:
|
|
1125
|
+
type: string
|
|
1126
|
+
format: uuid
|
|
1127
|
+
description: List of assigned person identifiers
|
|
1128
|
+
example: ["f79f1jf9-hj20-9010-f625-a09008537h80"]
|
|
1129
|
+
created_at:
|
|
1130
|
+
type: string
|
|
1131
|
+
format: date-time
|
|
1132
|
+
description: Creation timestamp
|
|
1133
|
+
example: "2023-01-01T12:00:00Z"
|
|
1134
|
+
updated_at:
|
|
1135
|
+
type: string
|
|
1136
|
+
format: date-time
|
|
1137
|
+
description: Last update timestamp
|
|
1138
|
+
example: "2023-01-01T12:30:00Z"
|
|
547
1139
|
"""
|
|
548
1140
|
return user_service.get_todos()
|
|
549
1141
|
|
|
@@ -554,9 +1146,11 @@ class ToChecksResource(Resource):
|
|
|
554
1146
|
"""
|
|
555
1147
|
Get tasks requiring feedback
|
|
556
1148
|
---
|
|
1149
|
+
description: Retrieve tasks requiring feedback for departments where the
|
|
1150
|
+
current user is a supervisor. Returns empty list if user is not a
|
|
1151
|
+
supervisor.
|
|
557
1152
|
tags:
|
|
558
1153
|
- User
|
|
559
|
-
description: Return tasks requiring feedback for current user departments. If the user is not a supervisor, it returns an empty list
|
|
560
1154
|
responses:
|
|
561
1155
|
200:
|
|
562
1156
|
description: Tasks requiring feedback in current user departments
|
|
@@ -566,6 +1160,48 @@ class ToChecksResource(Resource):
|
|
|
566
1160
|
type: array
|
|
567
1161
|
items:
|
|
568
1162
|
type: object
|
|
1163
|
+
properties:
|
|
1164
|
+
id:
|
|
1165
|
+
type: string
|
|
1166
|
+
format: uuid
|
|
1167
|
+
description: Task unique identifier
|
|
1168
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1169
|
+
name:
|
|
1170
|
+
type: string
|
|
1171
|
+
description: Task name
|
|
1172
|
+
example: "Review"
|
|
1173
|
+
task_type_id:
|
|
1174
|
+
type: string
|
|
1175
|
+
format: uuid
|
|
1176
|
+
description: Task type identifier
|
|
1177
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
1178
|
+
task_status_id:
|
|
1179
|
+
type: string
|
|
1180
|
+
format: uuid
|
|
1181
|
+
description: Task status identifier
|
|
1182
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
1183
|
+
assigner_id:
|
|
1184
|
+
type: string
|
|
1185
|
+
format: uuid
|
|
1186
|
+
description: Person who assigned the task
|
|
1187
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
1188
|
+
assignees:
|
|
1189
|
+
type: array
|
|
1190
|
+
items:
|
|
1191
|
+
type: string
|
|
1192
|
+
format: uuid
|
|
1193
|
+
description: List of assigned person identifiers
|
|
1194
|
+
example: ["f79f1jf9-hj20-9010-f625-a09008537h80"]
|
|
1195
|
+
created_at:
|
|
1196
|
+
type: string
|
|
1197
|
+
format: date-time
|
|
1198
|
+
description: Creation timestamp
|
|
1199
|
+
example: "2023-01-01T12:00:00Z"
|
|
1200
|
+
updated_at:
|
|
1201
|
+
type: string
|
|
1202
|
+
format: date-time
|
|
1203
|
+
description: Last update timestamp
|
|
1204
|
+
example: "2023-01-01T12:30:00Z"
|
|
569
1205
|
"""
|
|
570
1206
|
return user_service.get_tasks_to_check()
|
|
571
1207
|
|
|
@@ -576,9 +1212,10 @@ class DoneResource(Resource):
|
|
|
576
1212
|
"""
|
|
577
1213
|
Get done tasks
|
|
578
1214
|
---
|
|
1215
|
+
description: Retrieve tasks currently assigned to the current user with
|
|
1216
|
+
status marked as done. Returns only tasks from open projects.
|
|
579
1217
|
tags:
|
|
580
1218
|
- User
|
|
581
|
-
description: Return tasks currently assigned to current user and of which status has is_done attribute set to true. It returns only tasks of open projects.
|
|
582
1219
|
responses:
|
|
583
1220
|
200:
|
|
584
1221
|
description: Finished tasks currently assigned to current user
|
|
@@ -588,6 +1225,48 @@ class DoneResource(Resource):
|
|
|
588
1225
|
type: array
|
|
589
1226
|
items:
|
|
590
1227
|
type: object
|
|
1228
|
+
properties:
|
|
1229
|
+
id:
|
|
1230
|
+
type: string
|
|
1231
|
+
format: uuid
|
|
1232
|
+
description: Task unique identifier
|
|
1233
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1234
|
+
name:
|
|
1235
|
+
type: string
|
|
1236
|
+
description: Task name
|
|
1237
|
+
example: "Completed Task"
|
|
1238
|
+
task_type_id:
|
|
1239
|
+
type: string
|
|
1240
|
+
format: uuid
|
|
1241
|
+
description: Task type identifier
|
|
1242
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
1243
|
+
task_status_id:
|
|
1244
|
+
type: string
|
|
1245
|
+
format: uuid
|
|
1246
|
+
description: Task status identifier
|
|
1247
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
1248
|
+
assigner_id:
|
|
1249
|
+
type: string
|
|
1250
|
+
format: uuid
|
|
1251
|
+
description: Person who assigned the task
|
|
1252
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
1253
|
+
assignees:
|
|
1254
|
+
type: array
|
|
1255
|
+
items:
|
|
1256
|
+
type: string
|
|
1257
|
+
format: uuid
|
|
1258
|
+
description: List of assigned person identifiers
|
|
1259
|
+
example: ["f79f1jf9-hj20-9010-f625-a09008537h80"]
|
|
1260
|
+
created_at:
|
|
1261
|
+
type: string
|
|
1262
|
+
format: date-time
|
|
1263
|
+
description: Creation timestamp
|
|
1264
|
+
example: "2023-01-01T12:00:00Z"
|
|
1265
|
+
updated_at:
|
|
1266
|
+
type: string
|
|
1267
|
+
format: date-time
|
|
1268
|
+
description: Last update timestamp
|
|
1269
|
+
example: "2023-01-01T12:30:00Z"
|
|
591
1270
|
"""
|
|
592
1271
|
return user_service.get_done_tasks()
|
|
593
1272
|
|
|
@@ -598,9 +1277,10 @@ class FiltersResource(Resource, ArgsMixin):
|
|
|
598
1277
|
"""
|
|
599
1278
|
Get filters
|
|
600
1279
|
---
|
|
1280
|
+
description: Retrieve filters for the current user limited to open
|
|
1281
|
+
projects only.
|
|
601
1282
|
tags:
|
|
602
1283
|
- User
|
|
603
|
-
description: Allow toretrieve filters for current user and only for open projects.
|
|
604
1284
|
responses:
|
|
605
1285
|
200:
|
|
606
1286
|
description: Filters for current user and only for open projects
|
|
@@ -610,16 +1290,58 @@ class FiltersResource(Resource, ArgsMixin):
|
|
|
610
1290
|
type: array
|
|
611
1291
|
items:
|
|
612
1292
|
type: object
|
|
1293
|
+
properties:
|
|
1294
|
+
id:
|
|
1295
|
+
type: string
|
|
1296
|
+
format: uuid
|
|
1297
|
+
description: Filter unique identifier
|
|
1298
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1299
|
+
name:
|
|
1300
|
+
type: string
|
|
1301
|
+
description: Filter name
|
|
1302
|
+
example: "My Filter"
|
|
1303
|
+
query:
|
|
1304
|
+
type: string
|
|
1305
|
+
description: Filter query JSON
|
|
1306
|
+
example: '{"project_id": "uuid"}'
|
|
1307
|
+
list_type:
|
|
1308
|
+
type: string
|
|
1309
|
+
description: List type
|
|
1310
|
+
example: "todo"
|
|
1311
|
+
entity_type:
|
|
1312
|
+
type: string
|
|
1313
|
+
description: Entity type
|
|
1314
|
+
example: "Asset"
|
|
1315
|
+
project_id:
|
|
1316
|
+
type: string
|
|
1317
|
+
format: uuid
|
|
1318
|
+
description: Project identifier
|
|
1319
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1320
|
+
is_shared:
|
|
1321
|
+
type: boolean
|
|
1322
|
+
description: Whether filter is shared
|
|
1323
|
+
example: false
|
|
1324
|
+
created_at:
|
|
1325
|
+
type: string
|
|
1326
|
+
format: date-time
|
|
1327
|
+
description: Creation timestamp
|
|
1328
|
+
example: "2023-01-01T12:00:00Z"
|
|
1329
|
+
updated_at:
|
|
1330
|
+
type: string
|
|
1331
|
+
format: date-time
|
|
1332
|
+
description: Last update timestamp
|
|
1333
|
+
example: "2023-01-01T12:30:00Z"
|
|
613
1334
|
"""
|
|
614
1335
|
return user_service.get_filters()
|
|
615
1336
|
|
|
616
1337
|
def post(self):
|
|
617
1338
|
"""
|
|
618
|
-
Create filter
|
|
1339
|
+
Create filter
|
|
619
1340
|
---
|
|
1341
|
+
description: Create a new filter for the current user limited to open
|
|
1342
|
+
projects only.
|
|
620
1343
|
tags:
|
|
621
1344
|
- User
|
|
622
|
-
description: Create filter for current user and only for open projects.
|
|
623
1345
|
requestBody:
|
|
624
1346
|
required: true
|
|
625
1347
|
content:
|
|
@@ -634,36 +1356,88 @@ class FiltersResource(Resource, ArgsMixin):
|
|
|
634
1356
|
properties:
|
|
635
1357
|
name:
|
|
636
1358
|
type: string
|
|
637
|
-
|
|
1359
|
+
description: Filter name
|
|
1360
|
+
example: "My Custom Filter"
|
|
638
1361
|
query:
|
|
639
1362
|
type: string
|
|
1363
|
+
description: Filter query as JSON string
|
|
640
1364
|
example: '{"project_id": "uuid"}'
|
|
641
1365
|
list_type:
|
|
642
1366
|
type: string
|
|
643
|
-
|
|
1367
|
+
description: Type of list this filter applies to
|
|
1368
|
+
example: "todo"
|
|
644
1369
|
entity_type:
|
|
645
1370
|
type: string
|
|
646
|
-
|
|
1371
|
+
description: Entity type this filter applies to
|
|
1372
|
+
example: "Asset"
|
|
647
1373
|
project_id:
|
|
648
1374
|
type: string
|
|
649
1375
|
format: uuid
|
|
1376
|
+
description: Project identifier
|
|
650
1377
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
651
1378
|
is_shared:
|
|
652
1379
|
type: boolean
|
|
1380
|
+
description: Whether to share this filter with others
|
|
653
1381
|
default: false
|
|
1382
|
+
example: false
|
|
654
1383
|
search_filter_group_id:
|
|
655
1384
|
type: string
|
|
656
1385
|
format: uuid
|
|
1386
|
+
description: Filter group identifier
|
|
1387
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
657
1388
|
department_id:
|
|
658
1389
|
type: string
|
|
659
1390
|
format: uuid
|
|
1391
|
+
description: Department identifier
|
|
1392
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
660
1393
|
responses:
|
|
661
1394
|
201:
|
|
662
|
-
description: Filter
|
|
1395
|
+
description: Filter created successfully
|
|
663
1396
|
content:
|
|
664
1397
|
application/json:
|
|
665
1398
|
schema:
|
|
666
1399
|
type: object
|
|
1400
|
+
properties:
|
|
1401
|
+
id:
|
|
1402
|
+
type: string
|
|
1403
|
+
format: uuid
|
|
1404
|
+
description: Filter unique identifier
|
|
1405
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
1406
|
+
name:
|
|
1407
|
+
type: string
|
|
1408
|
+
description: Filter name
|
|
1409
|
+
example: "My Custom Filter"
|
|
1410
|
+
query:
|
|
1411
|
+
type: string
|
|
1412
|
+
description: Filter query JSON
|
|
1413
|
+
example: '{"project_id": "uuid"}'
|
|
1414
|
+
list_type:
|
|
1415
|
+
type: string
|
|
1416
|
+
description: List type
|
|
1417
|
+
example: "todo"
|
|
1418
|
+
entity_type:
|
|
1419
|
+
type: string
|
|
1420
|
+
description: Entity type
|
|
1421
|
+
example: "Asset"
|
|
1422
|
+
project_id:
|
|
1423
|
+
type: string
|
|
1424
|
+
format: uuid
|
|
1425
|
+
description: Project identifier
|
|
1426
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
1427
|
+
is_shared:
|
|
1428
|
+
type: boolean
|
|
1429
|
+
description: Whether filter is shared
|
|
1430
|
+
example: false
|
|
1431
|
+
created_at:
|
|
1432
|
+
type: string
|
|
1433
|
+
format: date-time
|
|
1434
|
+
description: Creation timestamp
|
|
1435
|
+
example: "2023-01-01T12:00:00Z"
|
|
1436
|
+
updated_at:
|
|
1437
|
+
type: string
|
|
1438
|
+
format: date-time
|
|
1439
|
+
description: Last update timestamp
|
|
1440
|
+
example: "2023-01-01T12:30:00Z"
|
|
667
1441
|
400:
|
|
668
1442
|
description: Bad request
|
|
669
1443
|
"""
|
|
@@ -704,19 +1478,101 @@ class FilterResource(Resource, ArgsMixin):
|
|
|
704
1478
|
"""
|
|
705
1479
|
Update filter
|
|
706
1480
|
---
|
|
1481
|
+
description: Update an existing filter if it is owned by the current
|
|
1482
|
+
user.
|
|
707
1483
|
tags:
|
|
708
1484
|
- User
|
|
709
|
-
description: Update given filter if it's owned by current user
|
|
710
1485
|
parameters:
|
|
711
1486
|
- in: path
|
|
712
1487
|
name: filter_id
|
|
713
|
-
required:
|
|
714
|
-
|
|
715
|
-
|
|
1488
|
+
required: true
|
|
1489
|
+
schema:
|
|
1490
|
+
type: string
|
|
1491
|
+
format: uuid
|
|
1492
|
+
description: Filter unique identifier
|
|
716
1493
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1494
|
+
requestBody:
|
|
1495
|
+
required: true
|
|
1496
|
+
content:
|
|
1497
|
+
application/json:
|
|
1498
|
+
schema:
|
|
1499
|
+
type: object
|
|
1500
|
+
properties:
|
|
1501
|
+
name:
|
|
1502
|
+
type: string
|
|
1503
|
+
description: Filter name
|
|
1504
|
+
example: "Updated Filter Name"
|
|
1505
|
+
search_query:
|
|
1506
|
+
type: string
|
|
1507
|
+
description: Updated filter query
|
|
1508
|
+
example: '{"status": "active"}'
|
|
1509
|
+
search_filter_group_id:
|
|
1510
|
+
type: string
|
|
1511
|
+
format: uuid
|
|
1512
|
+
description: Filter group identifier
|
|
1513
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1514
|
+
is_shared:
|
|
1515
|
+
type: boolean
|
|
1516
|
+
description: Whether to share this filter
|
|
1517
|
+
example: true
|
|
1518
|
+
project_id:
|
|
1519
|
+
type: string
|
|
1520
|
+
format: uuid
|
|
1521
|
+
description: Project identifier
|
|
1522
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
1523
|
+
department_id:
|
|
1524
|
+
type: string
|
|
1525
|
+
format: uuid
|
|
1526
|
+
description: Department identifier
|
|
1527
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
717
1528
|
responses:
|
|
718
1529
|
200:
|
|
719
|
-
|
|
1530
|
+
description: Filter updated successfully
|
|
1531
|
+
content:
|
|
1532
|
+
application/json:
|
|
1533
|
+
schema:
|
|
1534
|
+
type: object
|
|
1535
|
+
properties:
|
|
1536
|
+
id:
|
|
1537
|
+
type: string
|
|
1538
|
+
format: uuid
|
|
1539
|
+
description: Filter unique identifier
|
|
1540
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
1541
|
+
name:
|
|
1542
|
+
type: string
|
|
1543
|
+
description: Filter name
|
|
1544
|
+
example: "Updated Filter Name"
|
|
1545
|
+
query:
|
|
1546
|
+
type: string
|
|
1547
|
+
description: Filter query JSON
|
|
1548
|
+
example: '{"status": "active"}'
|
|
1549
|
+
list_type:
|
|
1550
|
+
type: string
|
|
1551
|
+
description: List type
|
|
1552
|
+
example: "todo"
|
|
1553
|
+
entity_type:
|
|
1554
|
+
type: string
|
|
1555
|
+
description: Entity type
|
|
1556
|
+
example: "Asset"
|
|
1557
|
+
project_id:
|
|
1558
|
+
type: string
|
|
1559
|
+
format: uuid
|
|
1560
|
+
description: Project identifier
|
|
1561
|
+
example: f79f1jf9-hj20-9010-f625-a09008537h80
|
|
1562
|
+
is_shared:
|
|
1563
|
+
type: boolean
|
|
1564
|
+
description: Whether filter is shared
|
|
1565
|
+
example: true
|
|
1566
|
+
created_at:
|
|
1567
|
+
type: string
|
|
1568
|
+
format: date-time
|
|
1569
|
+
description: Creation timestamp
|
|
1570
|
+
example: "2023-01-01T12:00:00Z"
|
|
1571
|
+
updated_at:
|
|
1572
|
+
type: string
|
|
1573
|
+
format: date-time
|
|
1574
|
+
description: Last update timestamp
|
|
1575
|
+
example: "2023-01-01T12:30:00Z"
|
|
720
1576
|
"""
|
|
721
1577
|
data = self.get_args(
|
|
722
1578
|
[
|
|
@@ -736,11 +1592,12 @@ class FilterResource(Resource, ArgsMixin):
|
|
|
736
1592
|
|
|
737
1593
|
def delete(self, filter_id):
|
|
738
1594
|
"""
|
|
739
|
-
Delete filter
|
|
1595
|
+
Delete filter
|
|
740
1596
|
---
|
|
1597
|
+
description: Delete a specific filter if it is owned by the current
|
|
1598
|
+
user.
|
|
741
1599
|
tags:
|
|
742
1600
|
- User
|
|
743
|
-
description: Delete given filter if it's owned by current user
|
|
744
1601
|
parameters:
|
|
745
1602
|
- in: path
|
|
746
1603
|
name: filter_id
|
|
@@ -748,12 +1605,11 @@ class FilterResource(Resource, ArgsMixin):
|
|
|
748
1605
|
schema:
|
|
749
1606
|
type: string
|
|
750
1607
|
format: uuid
|
|
1608
|
+
description: Filter unique identifier
|
|
751
1609
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
752
1610
|
responses:
|
|
753
1611
|
204:
|
|
754
1612
|
description: Filter deleted successfully
|
|
755
|
-
404:
|
|
756
|
-
description: Filter not found
|
|
757
1613
|
"""
|
|
758
1614
|
user_service.remove_filter(filter_id)
|
|
759
1615
|
return "", 204
|
|
@@ -763,11 +1619,12 @@ class FilterGroupsResource(Resource, ArgsMixin):
|
|
|
763
1619
|
|
|
764
1620
|
def get(self):
|
|
765
1621
|
"""
|
|
766
|
-
Get filter groups
|
|
1622
|
+
Get filter groups
|
|
767
1623
|
---
|
|
1624
|
+
description: Retrieve filter groups for the current user limited to open
|
|
1625
|
+
projects only.
|
|
768
1626
|
tags:
|
|
769
1627
|
- User
|
|
770
|
-
description: Retrieve filter groups for current user and only for open projects
|
|
771
1628
|
responses:
|
|
772
1629
|
200:
|
|
773
1630
|
description: Filter groups for current user and only for open projects
|
|
@@ -777,6 +1634,47 @@ class FilterGroupsResource(Resource, ArgsMixin):
|
|
|
777
1634
|
type: array
|
|
778
1635
|
items:
|
|
779
1636
|
type: object
|
|
1637
|
+
properties:
|
|
1638
|
+
id:
|
|
1639
|
+
type: string
|
|
1640
|
+
format: uuid
|
|
1641
|
+
description: Filter group unique identifier
|
|
1642
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1643
|
+
name:
|
|
1644
|
+
type: string
|
|
1645
|
+
description: Filter group name
|
|
1646
|
+
example: "My Filter Group"
|
|
1647
|
+
color:
|
|
1648
|
+
type: string
|
|
1649
|
+
description: Filter group color
|
|
1650
|
+
example: "#FF0000"
|
|
1651
|
+
list_type:
|
|
1652
|
+
type: string
|
|
1653
|
+
description: List type
|
|
1654
|
+
example: "todo"
|
|
1655
|
+
entity_type:
|
|
1656
|
+
type: string
|
|
1657
|
+
description: Entity type
|
|
1658
|
+
example: "Asset"
|
|
1659
|
+
project_id:
|
|
1660
|
+
type: string
|
|
1661
|
+
format: uuid
|
|
1662
|
+
description: Project identifier
|
|
1663
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1664
|
+
is_shared:
|
|
1665
|
+
type: boolean
|
|
1666
|
+
description: Whether filter group is shared
|
|
1667
|
+
example: false
|
|
1668
|
+
created_at:
|
|
1669
|
+
type: string
|
|
1670
|
+
format: date-time
|
|
1671
|
+
description: Creation timestamp
|
|
1672
|
+
example: "2023-01-01T12:00:00Z"
|
|
1673
|
+
updated_at:
|
|
1674
|
+
type: string
|
|
1675
|
+
format: date-time
|
|
1676
|
+
description: Last update timestamp
|
|
1677
|
+
example: "2023-01-01T12:30:00Z"
|
|
780
1678
|
"""
|
|
781
1679
|
return user_service.get_filter_groups()
|
|
782
1680
|
|
|
@@ -784,9 +1682,10 @@ class FilterGroupsResource(Resource, ArgsMixin):
|
|
|
784
1682
|
"""
|
|
785
1683
|
Create filter group
|
|
786
1684
|
---
|
|
1685
|
+
description: Create a new filter group for the current user limited to
|
|
1686
|
+
open projects only. The filter group can be shared with other users.
|
|
787
1687
|
tags:
|
|
788
1688
|
- User
|
|
789
|
-
description: Create filter group for current user and only for open projects.
|
|
790
1689
|
requestBody:
|
|
791
1690
|
required: true
|
|
792
1691
|
content:
|
|
@@ -801,34 +1700,83 @@ class FilterGroupsResource(Resource, ArgsMixin):
|
|
|
801
1700
|
properties:
|
|
802
1701
|
name:
|
|
803
1702
|
type: string
|
|
804
|
-
|
|
1703
|
+
description: Filter group name
|
|
1704
|
+
example: "My Filter Group"
|
|
805
1705
|
color:
|
|
806
1706
|
type: string
|
|
807
|
-
|
|
1707
|
+
description: Filter group color in hex format
|
|
1708
|
+
example: "#FF0000"
|
|
808
1709
|
list_type:
|
|
809
1710
|
type: string
|
|
810
|
-
|
|
1711
|
+
description: Type of list this filter group applies to
|
|
1712
|
+
example: "todo"
|
|
811
1713
|
entity_type:
|
|
812
1714
|
type: string
|
|
813
|
-
|
|
1715
|
+
description: Entity type this filter group applies to
|
|
1716
|
+
example: "Asset"
|
|
814
1717
|
is_shared:
|
|
815
1718
|
type: boolean
|
|
1719
|
+
description: Whether to share this filter group with others
|
|
816
1720
|
default: false
|
|
1721
|
+
example: false
|
|
817
1722
|
project_id:
|
|
818
1723
|
type: string
|
|
819
1724
|
format: uuid
|
|
1725
|
+
description: Project identifier
|
|
820
1726
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
821
1727
|
department_id:
|
|
822
1728
|
type: string
|
|
823
1729
|
format: uuid
|
|
824
|
-
|
|
1730
|
+
description: Department identifier
|
|
1731
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
825
1732
|
responses:
|
|
826
1733
|
201:
|
|
827
|
-
description: Filter group
|
|
1734
|
+
description: Filter group created successfully
|
|
828
1735
|
content:
|
|
829
1736
|
application/json:
|
|
830
1737
|
schema:
|
|
831
1738
|
type: object
|
|
1739
|
+
properties:
|
|
1740
|
+
id:
|
|
1741
|
+
type: string
|
|
1742
|
+
format: uuid
|
|
1743
|
+
description: Filter group unique identifier
|
|
1744
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
1745
|
+
name:
|
|
1746
|
+
type: string
|
|
1747
|
+
description: Filter group name
|
|
1748
|
+
example: "My Filter Group"
|
|
1749
|
+
color:
|
|
1750
|
+
type: string
|
|
1751
|
+
description: Filter group color
|
|
1752
|
+
example: "#FF0000"
|
|
1753
|
+
list_type:
|
|
1754
|
+
type: string
|
|
1755
|
+
description: List type
|
|
1756
|
+
example: "todo"
|
|
1757
|
+
entity_type:
|
|
1758
|
+
type: string
|
|
1759
|
+
description: Entity type
|
|
1760
|
+
example: "Asset"
|
|
1761
|
+
project_id:
|
|
1762
|
+
type: string
|
|
1763
|
+
format: uuid
|
|
1764
|
+
description: Project identifier
|
|
1765
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
1766
|
+
is_shared:
|
|
1767
|
+
type: boolean
|
|
1768
|
+
description: Whether filter group is shared
|
|
1769
|
+
example: false
|
|
1770
|
+
created_at:
|
|
1771
|
+
type: string
|
|
1772
|
+
format: date-time
|
|
1773
|
+
description: Creation timestamp
|
|
1774
|
+
example: "2023-01-01T12:00:00Z"
|
|
1775
|
+
updated_at:
|
|
1776
|
+
type: string
|
|
1777
|
+
format: date-time
|
|
1778
|
+
description: Last update timestamp
|
|
1779
|
+
example: "2023-01-01T12:30:00Z"
|
|
832
1780
|
400:
|
|
833
1781
|
description: Bad request
|
|
834
1782
|
"""
|
|
@@ -866,13 +1814,67 @@ class FilterGroupResource(Resource, ArgsMixin):
|
|
|
866
1814
|
"""
|
|
867
1815
|
Get filter group
|
|
868
1816
|
---
|
|
1817
|
+
description: Retrieve a specific filter group for the current user.
|
|
1818
|
+
Returns detailed information about the filter group.
|
|
869
1819
|
tags:
|
|
870
1820
|
- User
|
|
871
|
-
|
|
1821
|
+
parameters:
|
|
1822
|
+
- in: path
|
|
1823
|
+
name: search_filter_group_id
|
|
1824
|
+
required: true
|
|
1825
|
+
schema:
|
|
1826
|
+
type: string
|
|
1827
|
+
format: uuid
|
|
1828
|
+
description: Filter group unique identifier
|
|
1829
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
872
1830
|
responses:
|
|
873
1831
|
200:
|
|
874
|
-
|
|
875
|
-
|
|
1832
|
+
description: Filter group details
|
|
1833
|
+
content:
|
|
1834
|
+
application/json:
|
|
1835
|
+
schema:
|
|
1836
|
+
type: object
|
|
1837
|
+
properties:
|
|
1838
|
+
id:
|
|
1839
|
+
type: string
|
|
1840
|
+
format: uuid
|
|
1841
|
+
description: Filter group unique identifier
|
|
1842
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1843
|
+
name:
|
|
1844
|
+
type: string
|
|
1845
|
+
description: Filter group name
|
|
1846
|
+
example: "My Filter Group"
|
|
1847
|
+
color:
|
|
1848
|
+
type: string
|
|
1849
|
+
description: Filter group color
|
|
1850
|
+
example: "#FF0000"
|
|
1851
|
+
list_type:
|
|
1852
|
+
type: string
|
|
1853
|
+
description: List type
|
|
1854
|
+
example: "todo"
|
|
1855
|
+
entity_type:
|
|
1856
|
+
type: string
|
|
1857
|
+
description: Entity type
|
|
1858
|
+
example: "Asset"
|
|
1859
|
+
project_id:
|
|
1860
|
+
type: string
|
|
1861
|
+
format: uuid
|
|
1862
|
+
description: Project identifier
|
|
1863
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
1864
|
+
is_shared:
|
|
1865
|
+
type: boolean
|
|
1866
|
+
description: Whether filter group is shared
|
|
1867
|
+
example: false
|
|
1868
|
+
created_at:
|
|
1869
|
+
type: string
|
|
1870
|
+
format: date-time
|
|
1871
|
+
description: Creation timestamp
|
|
1872
|
+
example: "2023-01-01T12:00:00Z"
|
|
1873
|
+
updated_at:
|
|
1874
|
+
type: string
|
|
1875
|
+
format: date-time
|
|
1876
|
+
description: Last update timestamp
|
|
1877
|
+
example: "2023-01-01T12:30:00Z"
|
|
876
1878
|
"""
|
|
877
1879
|
return user_service.get_filter_group(search_filter_group_id)
|
|
878
1880
|
|
|
@@ -880,41 +1882,96 @@ class FilterGroupResource(Resource, ArgsMixin):
|
|
|
880
1882
|
"""
|
|
881
1883
|
Update filter group
|
|
882
1884
|
---
|
|
1885
|
+
description: Update an existing filter group if it is owned by the
|
|
1886
|
+
current user. Allows modification of filter group properties.
|
|
883
1887
|
tags:
|
|
884
1888
|
- User
|
|
885
|
-
description: Update given filter group if it's owned by the current user.
|
|
886
1889
|
parameters:
|
|
887
1890
|
- in: path
|
|
888
|
-
name:
|
|
889
|
-
required:
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
name: name
|
|
895
|
-
type: string
|
|
896
|
-
example: Name of the filter group
|
|
897
|
-
- in: formData
|
|
898
|
-
name: color
|
|
899
|
-
type: string
|
|
900
|
-
example: Color of the filter group
|
|
901
|
-
- in: formData
|
|
902
|
-
name: is_shared
|
|
903
|
-
type: boolean
|
|
904
|
-
example: True
|
|
905
|
-
- in: formData
|
|
906
|
-
name: project_id
|
|
907
|
-
type: string
|
|
908
|
-
format: uuid
|
|
909
|
-
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
910
|
-
- in: formData
|
|
911
|
-
name: department_id
|
|
912
|
-
type: string
|
|
913
|
-
format: uuid
|
|
1891
|
+
name: filter_group_id
|
|
1892
|
+
required: true
|
|
1893
|
+
schema:
|
|
1894
|
+
type: string
|
|
1895
|
+
format: uuid
|
|
1896
|
+
description: Filter group unique identifier
|
|
914
1897
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1898
|
+
requestBody:
|
|
1899
|
+
required: true
|
|
1900
|
+
content:
|
|
1901
|
+
application/json:
|
|
1902
|
+
schema:
|
|
1903
|
+
type: object
|
|
1904
|
+
properties:
|
|
1905
|
+
name:
|
|
1906
|
+
type: string
|
|
1907
|
+
description: Filter group name
|
|
1908
|
+
example: "Updated Filter Group"
|
|
1909
|
+
color:
|
|
1910
|
+
type: string
|
|
1911
|
+
description: Filter group color
|
|
1912
|
+
example: "#00FF00"
|
|
1913
|
+
is_shared:
|
|
1914
|
+
type: boolean
|
|
1915
|
+
description: Whether to share this filter group
|
|
1916
|
+
example: true
|
|
1917
|
+
project_id:
|
|
1918
|
+
type: string
|
|
1919
|
+
format: uuid
|
|
1920
|
+
description: Project identifier
|
|
1921
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1922
|
+
department_id:
|
|
1923
|
+
type: string
|
|
1924
|
+
format: uuid
|
|
1925
|
+
description: Department identifier
|
|
1926
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
915
1927
|
responses:
|
|
916
1928
|
200:
|
|
917
|
-
|
|
1929
|
+
description: Filter group updated successfully
|
|
1930
|
+
content:
|
|
1931
|
+
application/json:
|
|
1932
|
+
schema:
|
|
1933
|
+
type: object
|
|
1934
|
+
properties:
|
|
1935
|
+
id:
|
|
1936
|
+
type: string
|
|
1937
|
+
format: uuid
|
|
1938
|
+
description: Filter group unique identifier
|
|
1939
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
1940
|
+
name:
|
|
1941
|
+
type: string
|
|
1942
|
+
description: Filter group name
|
|
1943
|
+
example: "Updated Filter Group"
|
|
1944
|
+
color:
|
|
1945
|
+
type: string
|
|
1946
|
+
description: Filter group color
|
|
1947
|
+
example: "#00FF00"
|
|
1948
|
+
list_type:
|
|
1949
|
+
type: string
|
|
1950
|
+
description: List type
|
|
1951
|
+
example: "todo"
|
|
1952
|
+
entity_type:
|
|
1953
|
+
type: string
|
|
1954
|
+
description: Entity type
|
|
1955
|
+
example: "Asset"
|
|
1956
|
+
project_id:
|
|
1957
|
+
type: string
|
|
1958
|
+
format: uuid
|
|
1959
|
+
description: Project identifier
|
|
1960
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
1961
|
+
is_shared:
|
|
1962
|
+
type: boolean
|
|
1963
|
+
description: Whether filter group is shared
|
|
1964
|
+
example: true
|
|
1965
|
+
created_at:
|
|
1966
|
+
type: string
|
|
1967
|
+
format: date-time
|
|
1968
|
+
description: Creation timestamp
|
|
1969
|
+
example: "2023-01-01T12:00:00Z"
|
|
1970
|
+
updated_at:
|
|
1971
|
+
type: string
|
|
1972
|
+
format: date-time
|
|
1973
|
+
description: Last update timestamp
|
|
1974
|
+
example: "2023-01-01T12:30:00Z"
|
|
918
1975
|
"""
|
|
919
1976
|
data = self.get_args(
|
|
920
1977
|
[
|
|
@@ -934,19 +1991,22 @@ class FilterGroupResource(Resource, ArgsMixin):
|
|
|
934
1991
|
"""
|
|
935
1992
|
Delete filter group
|
|
936
1993
|
---
|
|
1994
|
+
description: Delete a specific filter group if it is owned by the
|
|
1995
|
+
current user.
|
|
937
1996
|
tags:
|
|
938
1997
|
- User
|
|
939
|
-
description: Delete given filter group if it's owned by the current user.
|
|
940
1998
|
parameters:
|
|
941
1999
|
- in: path
|
|
942
|
-
name:
|
|
943
|
-
required:
|
|
944
|
-
|
|
945
|
-
|
|
2000
|
+
name: filter_group_id
|
|
2001
|
+
required: true
|
|
2002
|
+
schema:
|
|
2003
|
+
type: string
|
|
2004
|
+
format: uuid
|
|
2005
|
+
description: Filter group unique identifier
|
|
946
2006
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
947
2007
|
responses:
|
|
948
2008
|
204:
|
|
949
|
-
|
|
2009
|
+
description: Filter group deleted successfully
|
|
950
2010
|
"""
|
|
951
2011
|
user_service.remove_filter_group(filter_group_id)
|
|
952
2012
|
return "", 204
|
|
@@ -958,18 +2018,44 @@ class DesktopLoginLogsResource(Resource, ArgsMixin):
|
|
|
958
2018
|
"""
|
|
959
2019
|
Get desktop login logs
|
|
960
2020
|
---
|
|
2021
|
+
description: Retrieve desktop login logs for the current user.
|
|
961
2022
|
tags:
|
|
962
2023
|
- User
|
|
963
|
-
description: Retrieve desktop login logs.
|
|
964
2024
|
responses:
|
|
965
2025
|
200:
|
|
966
|
-
description: Desktop login logs
|
|
2026
|
+
description: Desktop login logs for current user
|
|
967
2027
|
content:
|
|
968
2028
|
application/json:
|
|
969
2029
|
schema:
|
|
970
2030
|
type: array
|
|
971
2031
|
items:
|
|
972
2032
|
type: object
|
|
2033
|
+
properties:
|
|
2034
|
+
id:
|
|
2035
|
+
type: string
|
|
2036
|
+
format: uuid
|
|
2037
|
+
description: Login log unique identifier
|
|
2038
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
2039
|
+
person_id:
|
|
2040
|
+
type: string
|
|
2041
|
+
format: uuid
|
|
2042
|
+
description: Person identifier
|
|
2043
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
2044
|
+
date:
|
|
2045
|
+
type: string
|
|
2046
|
+
format: date
|
|
2047
|
+
description: Login date
|
|
2048
|
+
example: "2023-01-01"
|
|
2049
|
+
created_at:
|
|
2050
|
+
type: string
|
|
2051
|
+
format: date-time
|
|
2052
|
+
description: Creation timestamp
|
|
2053
|
+
example: "2023-01-01T12:00:00Z"
|
|
2054
|
+
updated_at:
|
|
2055
|
+
type: string
|
|
2056
|
+
format: date-time
|
|
2057
|
+
description: Last update timestamp
|
|
2058
|
+
example: "2023-01-01T12:30:00Z"
|
|
973
2059
|
"""
|
|
974
2060
|
current_user = persons_service.get_current_user()
|
|
975
2061
|
return persons_service.get_desktop_login_logs(current_user["id"])
|
|
@@ -978,9 +2064,9 @@ class DesktopLoginLogsResource(Resource, ArgsMixin):
|
|
|
978
2064
|
"""
|
|
979
2065
|
Create desktop login log
|
|
980
2066
|
---
|
|
2067
|
+
description: Create a desktop login log entry for the current user.
|
|
981
2068
|
tags:
|
|
982
2069
|
- User
|
|
983
|
-
description: Create a desktop login log. The desktop login log can only be created by the current user.
|
|
984
2070
|
requestBody:
|
|
985
2071
|
required: true
|
|
986
2072
|
content:
|
|
@@ -991,14 +2077,41 @@ class DesktopLoginLogsResource(Resource, ArgsMixin):
|
|
|
991
2077
|
date:
|
|
992
2078
|
type: string
|
|
993
2079
|
format: date
|
|
994
|
-
|
|
2080
|
+
description: Login date
|
|
2081
|
+
example: "2023-01-01"
|
|
995
2082
|
responses:
|
|
996
2083
|
201:
|
|
997
|
-
description: Desktop login log created
|
|
2084
|
+
description: Desktop login log created successfully
|
|
998
2085
|
content:
|
|
999
2086
|
application/json:
|
|
1000
2087
|
schema:
|
|
1001
2088
|
type: object
|
|
2089
|
+
properties:
|
|
2090
|
+
id:
|
|
2091
|
+
type: string
|
|
2092
|
+
format: uuid
|
|
2093
|
+
description: Login log unique identifier
|
|
2094
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
2095
|
+
person_id:
|
|
2096
|
+
type: string
|
|
2097
|
+
format: uuid
|
|
2098
|
+
description: Person identifier
|
|
2099
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
2100
|
+
date:
|
|
2101
|
+
type: string
|
|
2102
|
+
format: date
|
|
2103
|
+
description: Login date
|
|
2104
|
+
example: "2023-01-01"
|
|
2105
|
+
created_at:
|
|
2106
|
+
type: string
|
|
2107
|
+
format: date-time
|
|
2108
|
+
description: Creation timestamp
|
|
2109
|
+
example: "2023-01-01T12:00:00Z"
|
|
2110
|
+
updated_at:
|
|
2111
|
+
type: string
|
|
2112
|
+
format: date-time
|
|
2113
|
+
description: Last update timestamp
|
|
2114
|
+
example: "2023-01-01T12:30:00Z"
|
|
1002
2115
|
400:
|
|
1003
2116
|
description: Bad request
|
|
1004
2117
|
"""
|
|
@@ -1018,9 +2131,11 @@ class NotificationsResource(Resource, ArgsMixin):
|
|
|
1018
2131
|
"""
|
|
1019
2132
|
Get notifications
|
|
1020
2133
|
---
|
|
2134
|
+
description: Retrieve the last 100 user notifications filtered by
|
|
2135
|
+
given parameters. Supports filtering by date range, task type, status,
|
|
2136
|
+
and other criteria.
|
|
1021
2137
|
tags:
|
|
1022
|
-
|
|
1023
|
-
description: Return last 100 user notifications filtered by given parameters.
|
|
2138
|
+
- User
|
|
1024
2139
|
parameters:
|
|
1025
2140
|
- in: query
|
|
1026
2141
|
name: after
|
|
@@ -1028,16 +2143,16 @@ class NotificationsResource(Resource, ArgsMixin):
|
|
|
1028
2143
|
schema:
|
|
1029
2144
|
type: string
|
|
1030
2145
|
format: date
|
|
1031
|
-
example: "2022-07-12"
|
|
1032
2146
|
description: Filter notifications after this date
|
|
2147
|
+
example: "2023-01-01"
|
|
1033
2148
|
- in: query
|
|
1034
2149
|
name: before
|
|
1035
2150
|
required: false
|
|
1036
2151
|
schema:
|
|
1037
2152
|
type: string
|
|
1038
2153
|
format: date
|
|
1039
|
-
example: "2022-07-12"
|
|
1040
2154
|
description: Filter notifications before this date
|
|
2155
|
+
example: "2023-12-31"
|
|
1041
2156
|
- in: query
|
|
1042
2157
|
name: task_type_id
|
|
1043
2158
|
required: false
|
|
@@ -1045,6 +2160,7 @@ class NotificationsResource(Resource, ArgsMixin):
|
|
|
1045
2160
|
type: string
|
|
1046
2161
|
format: uuid
|
|
1047
2162
|
description: Filter by task type ID
|
|
2163
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1048
2164
|
- in: query
|
|
1049
2165
|
name: task_status_id
|
|
1050
2166
|
required: false
|
|
@@ -1052,33 +2168,76 @@ class NotificationsResource(Resource, ArgsMixin):
|
|
|
1052
2168
|
type: string
|
|
1053
2169
|
format: uuid
|
|
1054
2170
|
description: Filter by task status ID
|
|
2171
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1055
2172
|
- in: query
|
|
1056
2173
|
name: type
|
|
1057
2174
|
required: false
|
|
1058
2175
|
schema:
|
|
1059
2176
|
type: string
|
|
1060
2177
|
description: Filter by notification type
|
|
2178
|
+
example: "comment"
|
|
1061
2179
|
- in: query
|
|
1062
2180
|
name: read
|
|
1063
2181
|
required: false
|
|
1064
2182
|
schema:
|
|
1065
2183
|
type: boolean
|
|
1066
2184
|
description: Filter by read status
|
|
2185
|
+
example: false
|
|
1067
2186
|
- in: query
|
|
1068
2187
|
name: watching
|
|
1069
2188
|
required: false
|
|
1070
2189
|
schema:
|
|
1071
2190
|
type: boolean
|
|
1072
2191
|
description: Filter by watching status
|
|
2192
|
+
example: true
|
|
1073
2193
|
responses:
|
|
1074
2194
|
200:
|
|
1075
|
-
description: 100
|
|
2195
|
+
description: Last 100 user notifications matching filters
|
|
1076
2196
|
content:
|
|
1077
2197
|
application/json:
|
|
1078
2198
|
schema:
|
|
1079
2199
|
type: array
|
|
1080
2200
|
items:
|
|
1081
2201
|
type: object
|
|
2202
|
+
properties:
|
|
2203
|
+
id:
|
|
2204
|
+
type: string
|
|
2205
|
+
format: uuid
|
|
2206
|
+
description: Notification unique identifier
|
|
2207
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
2208
|
+
type:
|
|
2209
|
+
type: string
|
|
2210
|
+
description: Notification type
|
|
2211
|
+
example: "comment"
|
|
2212
|
+
read:
|
|
2213
|
+
type: boolean
|
|
2214
|
+
description: Whether notification is read
|
|
2215
|
+
example: false
|
|
2216
|
+
author_id:
|
|
2217
|
+
type: string
|
|
2218
|
+
format: uuid
|
|
2219
|
+
description: Author person identifier
|
|
2220
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
2221
|
+
comment_id:
|
|
2222
|
+
type: string
|
|
2223
|
+
format: uuid
|
|
2224
|
+
description: Comment identifier
|
|
2225
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
2226
|
+
task_id:
|
|
2227
|
+
type: string
|
|
2228
|
+
format: uuid
|
|
2229
|
+
description: Task identifier
|
|
2230
|
+
example: f79f1jf9-hj20-9010-f625-a09008537h80
|
|
2231
|
+
created_at:
|
|
2232
|
+
type: string
|
|
2233
|
+
format: date-time
|
|
2234
|
+
description: Creation timestamp
|
|
2235
|
+
example: "2023-01-01T12:00:00Z"
|
|
2236
|
+
updated_at:
|
|
2237
|
+
type: string
|
|
2238
|
+
format: date-time
|
|
2239
|
+
description: Last update timestamp
|
|
2240
|
+
example: "2023-01-01T12:30:00Z"
|
|
1082
2241
|
"""
|
|
1083
2242
|
(
|
|
1084
2243
|
after,
|
|
@@ -1094,7 +2253,6 @@ class NotificationsResource(Resource, ArgsMixin):
|
|
|
1094
2253
|
watching = None
|
|
1095
2254
|
if request.args.get("watching", None) is not None:
|
|
1096
2255
|
watching = self.get_bool_parameter("watching")
|
|
1097
|
-
print("watching", watching)
|
|
1098
2256
|
notifications = user_service.get_last_notifications(
|
|
1099
2257
|
before=before,
|
|
1100
2258
|
task_type_id=task_type_id,
|
|
@@ -1121,9 +2279,10 @@ class NotificationResource(Resource, ArgsMixin):
|
|
|
1121
2279
|
"""
|
|
1122
2280
|
Get notification
|
|
1123
2281
|
---
|
|
2282
|
+
description: Retrieve a specific notification by ID, only if it
|
|
2283
|
+
belongs to the current user.
|
|
1124
2284
|
tags:
|
|
1125
2285
|
- User
|
|
1126
|
-
description: Return notification matching given id, only if it's a notification that belongs to current user.
|
|
1127
2286
|
parameters:
|
|
1128
2287
|
- in: path
|
|
1129
2288
|
name: notification_id
|
|
@@ -1131,16 +2290,54 @@ class NotificationResource(Resource, ArgsMixin):
|
|
|
1131
2290
|
schema:
|
|
1132
2291
|
type: string
|
|
1133
2292
|
format: uuid
|
|
2293
|
+
description: Notification unique identifier
|
|
1134
2294
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1135
2295
|
responses:
|
|
1136
2296
|
200:
|
|
1137
|
-
description: Notification
|
|
2297
|
+
description: Notification details
|
|
1138
2298
|
content:
|
|
1139
2299
|
application/json:
|
|
1140
2300
|
schema:
|
|
1141
2301
|
type: object
|
|
1142
|
-
|
|
1143
|
-
|
|
2302
|
+
properties:
|
|
2303
|
+
id:
|
|
2304
|
+
type: string
|
|
2305
|
+
format: uuid
|
|
2306
|
+
description: Notification unique identifier
|
|
2307
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
2308
|
+
type:
|
|
2309
|
+
type: string
|
|
2310
|
+
description: Notification type
|
|
2311
|
+
example: "comment"
|
|
2312
|
+
read:
|
|
2313
|
+
type: boolean
|
|
2314
|
+
description: Whether notification is read
|
|
2315
|
+
example: false
|
|
2316
|
+
author_id:
|
|
2317
|
+
type: string
|
|
2318
|
+
format: uuid
|
|
2319
|
+
description: Author person identifier
|
|
2320
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
2321
|
+
comment_id:
|
|
2322
|
+
type: string
|
|
2323
|
+
format: uuid
|
|
2324
|
+
description: Comment identifier
|
|
2325
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
2326
|
+
task_id:
|
|
2327
|
+
type: string
|
|
2328
|
+
format: uuid
|
|
2329
|
+
description: Task identifier
|
|
2330
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
2331
|
+
created_at:
|
|
2332
|
+
type: string
|
|
2333
|
+
format: date-time
|
|
2334
|
+
description: Creation timestamp
|
|
2335
|
+
example: "2023-01-01T12:00:00Z"
|
|
2336
|
+
updated_at:
|
|
2337
|
+
type: string
|
|
2338
|
+
format: date-time
|
|
2339
|
+
description: Last update timestamp
|
|
2340
|
+
example: "2023-01-01T12:30:00Z"
|
|
1144
2341
|
"""
|
|
1145
2342
|
return user_service.get_notification(notification_id)
|
|
1146
2343
|
|
|
@@ -1148,9 +2345,10 @@ class NotificationResource(Resource, ArgsMixin):
|
|
|
1148
2345
|
"""
|
|
1149
2346
|
Update notification
|
|
1150
2347
|
---
|
|
2348
|
+
description: Change the read status of a specific notification. Only
|
|
2349
|
+
the notification owner can update their notifications.
|
|
1151
2350
|
tags:
|
|
1152
2351
|
- User
|
|
1153
|
-
description: Change notification read status.
|
|
1154
2352
|
parameters:
|
|
1155
2353
|
- in: path
|
|
1156
2354
|
name: notification_id
|
|
@@ -1158,6 +2356,7 @@ class NotificationResource(Resource, ArgsMixin):
|
|
|
1158
2356
|
schema:
|
|
1159
2357
|
type: string
|
|
1160
2358
|
format: uuid
|
|
2359
|
+
description: Notification unique identifier
|
|
1161
2360
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1162
2361
|
requestBody:
|
|
1163
2362
|
required: true
|
|
@@ -1168,16 +2367,54 @@ class NotificationResource(Resource, ArgsMixin):
|
|
|
1168
2367
|
properties:
|
|
1169
2368
|
read:
|
|
1170
2369
|
type: boolean
|
|
1171
|
-
description: Mark notification as read
|
|
2370
|
+
description: Mark notification as read or unread
|
|
2371
|
+
example: true
|
|
1172
2372
|
responses:
|
|
1173
2373
|
200:
|
|
1174
|
-
description:
|
|
2374
|
+
description: Notification updated successfully
|
|
1175
2375
|
content:
|
|
1176
2376
|
application/json:
|
|
1177
2377
|
schema:
|
|
1178
2378
|
type: object
|
|
1179
|
-
|
|
1180
|
-
|
|
2379
|
+
properties:
|
|
2380
|
+
id:
|
|
2381
|
+
type: string
|
|
2382
|
+
format: uuid
|
|
2383
|
+
description: Notification unique identifier
|
|
2384
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
2385
|
+
type:
|
|
2386
|
+
type: string
|
|
2387
|
+
description: Notification type
|
|
2388
|
+
example: "comment"
|
|
2389
|
+
read:
|
|
2390
|
+
type: boolean
|
|
2391
|
+
description: Whether notification is read
|
|
2392
|
+
example: true
|
|
2393
|
+
author_id:
|
|
2394
|
+
type: string
|
|
2395
|
+
format: uuid
|
|
2396
|
+
description: Author person identifier
|
|
2397
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
2398
|
+
comment_id:
|
|
2399
|
+
type: string
|
|
2400
|
+
format: uuid
|
|
2401
|
+
description: Comment identifier
|
|
2402
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
2403
|
+
task_id:
|
|
2404
|
+
type: string
|
|
2405
|
+
format: uuid
|
|
2406
|
+
description: Task identifier
|
|
2407
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
2408
|
+
created_at:
|
|
2409
|
+
type: string
|
|
2410
|
+
format: date-time
|
|
2411
|
+
description: Creation timestamp
|
|
2412
|
+
example: "2023-01-01T12:00:00Z"
|
|
2413
|
+
updated_at:
|
|
2414
|
+
type: string
|
|
2415
|
+
format: date-time
|
|
2416
|
+
description: Last update timestamp
|
|
2417
|
+
example: "2023-01-01T12:30:00Z"
|
|
1181
2418
|
"""
|
|
1182
2419
|
data = self.get_args([("read", None, False, inputs.boolean)])
|
|
1183
2420
|
return user_service.update_notification(notification_id, data["read"])
|
|
@@ -1189,11 +2426,12 @@ class MarkAllNotificationsAsReadResource(Resource):
|
|
|
1189
2426
|
"""
|
|
1190
2427
|
Mark all notifications as read
|
|
1191
2428
|
---
|
|
2429
|
+
description: Mark all notifications as read for the current user.
|
|
1192
2430
|
tags:
|
|
1193
2431
|
- User
|
|
1194
|
-
description: Mark all notifications as read. It applies to all notifications of the current user.
|
|
1195
2432
|
responses:
|
|
1196
2433
|
200:
|
|
2434
|
+
description: Success object
|
|
1197
2435
|
content:
|
|
1198
2436
|
application/json:
|
|
1199
2437
|
schema:
|
|
@@ -1201,6 +2439,7 @@ class MarkAllNotificationsAsReadResource(Resource):
|
|
|
1201
2439
|
properties:
|
|
1202
2440
|
success:
|
|
1203
2441
|
type: boolean
|
|
2442
|
+
description: Operation success status
|
|
1204
2443
|
example: true
|
|
1205
2444
|
"""
|
|
1206
2445
|
user_service.mark_notifications_as_read()
|
|
@@ -1213,9 +2452,10 @@ class HasTaskSubscribedResource(Resource):
|
|
|
1213
2452
|
"""
|
|
1214
2453
|
Check task subscription
|
|
1215
2454
|
---
|
|
2455
|
+
description: Check if the current user has subscribed to a specific
|
|
2456
|
+
task.
|
|
1216
2457
|
tags:
|
|
1217
|
-
|
|
1218
|
-
description: Return true if current user has subscribed to given task.
|
|
2458
|
+
- User
|
|
1219
2459
|
parameters:
|
|
1220
2460
|
- in: path
|
|
1221
2461
|
name: task_id
|
|
@@ -1223,16 +2463,16 @@ class HasTaskSubscribedResource(Resource):
|
|
|
1223
2463
|
schema:
|
|
1224
2464
|
type: string
|
|
1225
2465
|
format: uuid
|
|
2466
|
+
description: Task unique identifier
|
|
1226
2467
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1227
2468
|
responses:
|
|
1228
2469
|
200:
|
|
1229
|
-
description:
|
|
2470
|
+
description: Subscription status for the task
|
|
1230
2471
|
content:
|
|
1231
2472
|
application/json:
|
|
1232
2473
|
schema:
|
|
1233
2474
|
type: boolean
|
|
1234
|
-
|
|
1235
|
-
description: Task not found
|
|
2475
|
+
example: true
|
|
1236
2476
|
"""
|
|
1237
2477
|
return user_service.has_task_subscription(task_id)
|
|
1238
2478
|
|
|
@@ -1243,12 +2483,11 @@ class TaskSubscribeResource(Resource):
|
|
|
1243
2483
|
"""
|
|
1244
2484
|
Subscribe to task
|
|
1245
2485
|
---
|
|
2486
|
+
description: Create a subscription entry for the current user and
|
|
2487
|
+
given task. When subscribed, the user receives notifications for all
|
|
2488
|
+
comments posted on the task.
|
|
1246
2489
|
tags:
|
|
1247
2490
|
- User
|
|
1248
|
-
description: Create a subscription entry. It applies to given task and current user. When a user
|
|
1249
|
-
subscribed, he gets notified everytime a comment is posted on the
|
|
1250
|
-
task. When a user subscribes, he gets notified everytime a comment
|
|
1251
|
-
is posted on the task.
|
|
1252
2491
|
parameters:
|
|
1253
2492
|
- in: path
|
|
1254
2493
|
name: task_id
|
|
@@ -1256,16 +2495,41 @@ class TaskSubscribeResource(Resource):
|
|
|
1256
2495
|
schema:
|
|
1257
2496
|
type: string
|
|
1258
2497
|
format: uuid
|
|
2498
|
+
description: Task unique identifier
|
|
1259
2499
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1260
2500
|
responses:
|
|
1261
2501
|
201:
|
|
1262
|
-
description: Subscription
|
|
2502
|
+
description: Subscription created successfully
|
|
1263
2503
|
content:
|
|
1264
2504
|
application/json:
|
|
1265
2505
|
schema:
|
|
1266
2506
|
type: object
|
|
1267
|
-
|
|
1268
|
-
|
|
2507
|
+
properties:
|
|
2508
|
+
id:
|
|
2509
|
+
type: string
|
|
2510
|
+
format: uuid
|
|
2511
|
+
description: Subscription unique identifier
|
|
2512
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
2513
|
+
person_id:
|
|
2514
|
+
type: string
|
|
2515
|
+
format: uuid
|
|
2516
|
+
description: Person identifier
|
|
2517
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
2518
|
+
task_id:
|
|
2519
|
+
type: string
|
|
2520
|
+
format: uuid
|
|
2521
|
+
description: Task identifier
|
|
2522
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
2523
|
+
created_at:
|
|
2524
|
+
type: string
|
|
2525
|
+
format: date-time
|
|
2526
|
+
description: Creation timestamp
|
|
2527
|
+
example: "2023-01-01T12:00:00Z"
|
|
2528
|
+
updated_at:
|
|
2529
|
+
type: string
|
|
2530
|
+
format: date-time
|
|
2531
|
+
description: Last update timestamp
|
|
2532
|
+
example: "2023-01-01T12:30:00Z"
|
|
1269
2533
|
"""
|
|
1270
2534
|
return user_service.subscribe_to_task(task_id), 201
|
|
1271
2535
|
|
|
@@ -1276,9 +2540,11 @@ class TaskUnsubscribeResource(Resource):
|
|
|
1276
2540
|
"""
|
|
1277
2541
|
Unsubscribe from task
|
|
1278
2542
|
---
|
|
2543
|
+
description: Remove the subscription entry for the current user and
|
|
2544
|
+
given task. The user will no longer receive notifications for this
|
|
2545
|
+
task.
|
|
1279
2546
|
tags:
|
|
1280
2547
|
- User
|
|
1281
|
-
description: Remove the subscription entry matching given task and current user. The user will no longer receive notifications for this task.
|
|
1282
2548
|
parameters:
|
|
1283
2549
|
- in: path
|
|
1284
2550
|
name: task_id
|
|
@@ -1286,12 +2552,11 @@ class TaskUnsubscribeResource(Resource):
|
|
|
1286
2552
|
schema:
|
|
1287
2553
|
type: string
|
|
1288
2554
|
format: uuid
|
|
2555
|
+
description: Task unique identifier
|
|
1289
2556
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1290
2557
|
responses:
|
|
1291
2558
|
204:
|
|
1292
|
-
description: Subscription
|
|
1293
|
-
404:
|
|
1294
|
-
description: Task not found
|
|
2559
|
+
description: Subscription removed successfully
|
|
1295
2560
|
"""
|
|
1296
2561
|
user_service.unsubscribe_from_task(task_id)
|
|
1297
2562
|
return "", 204
|
|
@@ -1303,9 +2568,10 @@ class HasSequenceSubscribedResource(Resource):
|
|
|
1303
2568
|
"""
|
|
1304
2569
|
Check sequence subscription
|
|
1305
2570
|
---
|
|
2571
|
+
description: Check if the current user has subscribed to a specific
|
|
2572
|
+
sequence and task type combination. Returns true if subscribed.
|
|
1306
2573
|
tags:
|
|
1307
2574
|
- User
|
|
1308
|
-
description: Return true if current user has subscribed to given sequence and task type.
|
|
1309
2575
|
parameters:
|
|
1310
2576
|
- in: path
|
|
1311
2577
|
name: sequence_id
|
|
@@ -1313,6 +2579,7 @@ class HasSequenceSubscribedResource(Resource):
|
|
|
1313
2579
|
schema:
|
|
1314
2580
|
type: string
|
|
1315
2581
|
format: uuid
|
|
2582
|
+
description: Sequence unique identifier
|
|
1316
2583
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1317
2584
|
- in: path
|
|
1318
2585
|
name: task_type_id
|
|
@@ -1320,16 +2587,16 @@ class HasSequenceSubscribedResource(Resource):
|
|
|
1320
2587
|
schema:
|
|
1321
2588
|
type: string
|
|
1322
2589
|
format: uuid
|
|
1323
|
-
|
|
2590
|
+
description: Task type unique identifier
|
|
2591
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1324
2592
|
responses:
|
|
1325
2593
|
200:
|
|
1326
|
-
description:
|
|
2594
|
+
description: Subscription status for the sequence and task type
|
|
1327
2595
|
content:
|
|
1328
2596
|
application/json:
|
|
1329
2597
|
schema:
|
|
1330
2598
|
type: boolean
|
|
1331
|
-
|
|
1332
|
-
description: Sequence or task type not found
|
|
2599
|
+
example: true
|
|
1333
2600
|
"""
|
|
1334
2601
|
return user_service.has_sequence_subscription(
|
|
1335
2602
|
sequence_id, task_type_id
|
|
@@ -1342,9 +2609,12 @@ class SequenceSubscribeResource(Resource):
|
|
|
1342
2609
|
"""
|
|
1343
2610
|
Subscribe to sequence
|
|
1344
2611
|
---
|
|
2612
|
+
description: Create a subscription entry for the current user, given
|
|
2613
|
+
sequence, and task type. When subscribed, the user receives
|
|
2614
|
+
notifications for all comments posted on tasks related to the
|
|
2615
|
+
sequence.
|
|
1345
2616
|
tags:
|
|
1346
2617
|
- User
|
|
1347
|
-
description: Create a subscription entry for given sequence, task type and current user. When a user subscribes, he gets notified every time a comment is posted on tasks related to the sequence.
|
|
1348
2618
|
parameters:
|
|
1349
2619
|
- in: path
|
|
1350
2620
|
name: sequence_id
|
|
@@ -1352,6 +2622,7 @@ class SequenceSubscribeResource(Resource):
|
|
|
1352
2622
|
schema:
|
|
1353
2623
|
type: string
|
|
1354
2624
|
format: uuid
|
|
2625
|
+
description: Sequence unique identifier
|
|
1355
2626
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1356
2627
|
- in: path
|
|
1357
2628
|
name: task_type_id
|
|
@@ -1359,16 +2630,46 @@ class SequenceSubscribeResource(Resource):
|
|
|
1359
2630
|
schema:
|
|
1360
2631
|
type: string
|
|
1361
2632
|
format: uuid
|
|
1362
|
-
|
|
2633
|
+
description: Task type unique identifier
|
|
2634
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1363
2635
|
responses:
|
|
1364
2636
|
201:
|
|
1365
|
-
description: Subscription
|
|
2637
|
+
description: Subscription created successfully
|
|
1366
2638
|
content:
|
|
1367
2639
|
application/json:
|
|
1368
2640
|
schema:
|
|
1369
2641
|
type: object
|
|
1370
|
-
|
|
1371
|
-
|
|
2642
|
+
properties:
|
|
2643
|
+
id:
|
|
2644
|
+
type: string
|
|
2645
|
+
format: uuid
|
|
2646
|
+
description: Subscription unique identifier
|
|
2647
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
2648
|
+
person_id:
|
|
2649
|
+
type: string
|
|
2650
|
+
format: uuid
|
|
2651
|
+
description: Person identifier
|
|
2652
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
2653
|
+
sequence_id:
|
|
2654
|
+
type: string
|
|
2655
|
+
format: uuid
|
|
2656
|
+
description: Sequence identifier
|
|
2657
|
+
example: e68e0ie8-gi19-8009-e514-91897426g69
|
|
2658
|
+
task_type_id:
|
|
2659
|
+
type: string
|
|
2660
|
+
format: uuid
|
|
2661
|
+
description: Task type identifier
|
|
2662
|
+
example: f79f1jf9-hj20-9010-f625-a09008537h80
|
|
2663
|
+
created_at:
|
|
2664
|
+
type: string
|
|
2665
|
+
format: date-time
|
|
2666
|
+
description: Creation timestamp
|
|
2667
|
+
example: "2023-01-01T12:00:00Z"
|
|
2668
|
+
updated_at:
|
|
2669
|
+
type: string
|
|
2670
|
+
format: date-time
|
|
2671
|
+
description: Last update timestamp
|
|
2672
|
+
example: "2023-01-01T12:30:00Z"
|
|
1372
2673
|
"""
|
|
1373
2674
|
subscription = user_service.subscribe_to_sequence(
|
|
1374
2675
|
sequence_id, task_type_id
|
|
@@ -1382,9 +2683,11 @@ class SequenceUnsubscribeResource(Resource):
|
|
|
1382
2683
|
"""
|
|
1383
2684
|
Unsubscribe from sequence
|
|
1384
2685
|
---
|
|
2686
|
+
description: Remove the subscription entry for the current user, given
|
|
2687
|
+
sequence, and task type. The user will no longer receive
|
|
2688
|
+
notifications for tasks related to this sequence.
|
|
1385
2689
|
tags:
|
|
1386
2690
|
- User
|
|
1387
|
-
description: Remove a subscription entry for given sequence, task type and current user.
|
|
1388
2691
|
parameters:
|
|
1389
2692
|
- in: path
|
|
1390
2693
|
name: sequence_id
|
|
@@ -1392,6 +2695,7 @@ class SequenceUnsubscribeResource(Resource):
|
|
|
1392
2695
|
schema:
|
|
1393
2696
|
type: string
|
|
1394
2697
|
format: uuid
|
|
2698
|
+
description: Sequence unique identifier
|
|
1395
2699
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1396
2700
|
- in: path
|
|
1397
2701
|
name: task_type_id
|
|
@@ -1399,12 +2703,11 @@ class SequenceUnsubscribeResource(Resource):
|
|
|
1399
2703
|
schema:
|
|
1400
2704
|
type: string
|
|
1401
2705
|
format: uuid
|
|
1402
|
-
|
|
2706
|
+
description: Task type unique identifier
|
|
2707
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1403
2708
|
responses:
|
|
1404
2709
|
204:
|
|
1405
|
-
description: Subscription
|
|
1406
|
-
404:
|
|
1407
|
-
description: Sequence or task type not found
|
|
2710
|
+
description: Subscription removed successfully
|
|
1408
2711
|
"""
|
|
1409
2712
|
user_service.unsubscribe_from_sequence(sequence_id, task_type_id)
|
|
1410
2713
|
return "", 204
|
|
@@ -1416,9 +2719,10 @@ class SequenceSubscriptionsResource(Resource):
|
|
|
1416
2719
|
"""
|
|
1417
2720
|
Get sequence subscriptions
|
|
1418
2721
|
---
|
|
2722
|
+
description: Retrieve list of sequence IDs to which the current user
|
|
2723
|
+
has subscribed for a given task type within a specific project.
|
|
1419
2724
|
tags:
|
|
1420
2725
|
- User
|
|
1421
|
-
description: Return the list of sequence ids to which the current user has subscribed for given task type.
|
|
1422
2726
|
parameters:
|
|
1423
2727
|
- in: path
|
|
1424
2728
|
name: project_id
|
|
@@ -1426,6 +2730,7 @@ class SequenceSubscriptionsResource(Resource):
|
|
|
1426
2730
|
schema:
|
|
1427
2731
|
type: string
|
|
1428
2732
|
format: uuid
|
|
2733
|
+
description: Project unique identifier
|
|
1429
2734
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1430
2735
|
- in: path
|
|
1431
2736
|
name: task_type_id
|
|
@@ -1433,10 +2738,11 @@ class SequenceSubscriptionsResource(Resource):
|
|
|
1433
2738
|
schema:
|
|
1434
2739
|
type: string
|
|
1435
2740
|
format: uuid
|
|
1436
|
-
|
|
2741
|
+
description: Task type unique identifier
|
|
2742
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
1437
2743
|
responses:
|
|
1438
2744
|
200:
|
|
1439
|
-
description: List of sequence
|
|
2745
|
+
description: List of subscribed sequence IDs for the task type
|
|
1440
2746
|
content:
|
|
1441
2747
|
application/json:
|
|
1442
2748
|
schema:
|
|
@@ -1444,8 +2750,7 @@ class SequenceSubscriptionsResource(Resource):
|
|
|
1444
2750
|
items:
|
|
1445
2751
|
type: string
|
|
1446
2752
|
format: uuid
|
|
1447
|
-
|
|
1448
|
-
description: Project or task type not found
|
|
2753
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
1449
2754
|
"""
|
|
1450
2755
|
return user_service.get_sequence_subscriptions(
|
|
1451
2756
|
project_id, task_type_id
|
|
@@ -1462,9 +2767,10 @@ class TimeSpentsResource(Resource):
|
|
|
1462
2767
|
"""
|
|
1463
2768
|
Get time spents
|
|
1464
2769
|
---
|
|
2770
|
+
description: Retrieve all time spent entries for the current user.
|
|
2771
|
+
Optionally accepts date range parameters to filter results.
|
|
1465
2772
|
tags:
|
|
1466
2773
|
- User
|
|
1467
|
-
description: Get all time spents for the current user. Optionally can accept date range parameters.
|
|
1468
2774
|
parameters:
|
|
1469
2775
|
- in: query
|
|
1470
2776
|
name: start_date
|
|
@@ -1472,25 +2778,60 @@ class TimeSpentsResource(Resource):
|
|
|
1472
2778
|
schema:
|
|
1473
2779
|
type: string
|
|
1474
2780
|
format: date
|
|
1475
|
-
example: "2022-07-12"
|
|
1476
2781
|
description: Start date for filtering time spents
|
|
2782
|
+
example: "2023-01-01"
|
|
1477
2783
|
- in: query
|
|
1478
2784
|
name: end_date
|
|
1479
2785
|
required: false
|
|
1480
2786
|
schema:
|
|
1481
2787
|
type: string
|
|
1482
2788
|
format: date
|
|
1483
|
-
example: "2022-07-12"
|
|
1484
2789
|
description: End date for filtering time spents
|
|
2790
|
+
example: "2023-12-31"
|
|
1485
2791
|
responses:
|
|
1486
2792
|
200:
|
|
1487
|
-
description:
|
|
2793
|
+
description: Time spent entries for the current user
|
|
1488
2794
|
content:
|
|
1489
2795
|
application/json:
|
|
1490
2796
|
schema:
|
|
1491
2797
|
type: array
|
|
1492
2798
|
items:
|
|
1493
2799
|
type: object
|
|
2800
|
+
properties:
|
|
2801
|
+
id:
|
|
2802
|
+
type: string
|
|
2803
|
+
format: uuid
|
|
2804
|
+
description: Time spent unique identifier
|
|
2805
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
2806
|
+
person_id:
|
|
2807
|
+
type: string
|
|
2808
|
+
format: uuid
|
|
2809
|
+
description: Person identifier
|
|
2810
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
2811
|
+
task_id:
|
|
2812
|
+
type: string
|
|
2813
|
+
format: uuid
|
|
2814
|
+
description: Task identifier
|
|
2815
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
2816
|
+
date:
|
|
2817
|
+
type: string
|
|
2818
|
+
format: date
|
|
2819
|
+
description: Date of time spent
|
|
2820
|
+
example: "2023-01-01"
|
|
2821
|
+
duration:
|
|
2822
|
+
type: number
|
|
2823
|
+
description: Duration in seconds
|
|
2824
|
+
example: 3600
|
|
2825
|
+
created_at:
|
|
2826
|
+
type: string
|
|
2827
|
+
format: date-time
|
|
2828
|
+
description: Creation timestamp
|
|
2829
|
+
example: "2023-01-01T12:00:00Z"
|
|
2830
|
+
updated_at:
|
|
2831
|
+
type: string
|
|
2832
|
+
format: date-time
|
|
2833
|
+
description: Last update timestamp
|
|
2834
|
+
example: "2023-01-01T12:30:00Z"
|
|
1494
2835
|
400:
|
|
1495
2836
|
description: Wrong date format
|
|
1496
2837
|
"""
|
|
@@ -1522,11 +2863,12 @@ class DateTimeSpentsResource(Resource):
|
|
|
1522
2863
|
|
|
1523
2864
|
def get(self, date):
|
|
1524
2865
|
"""
|
|
1525
|
-
Get time spents by date
|
|
2866
|
+
Get time spents by date
|
|
1526
2867
|
---
|
|
2868
|
+
description: Retrieve time spent entries for the current user on a
|
|
2869
|
+
specific date. Returns all time entries for the given date.
|
|
1527
2870
|
tags:
|
|
1528
2871
|
- User
|
|
1529
|
-
description: Get time spents on for current user and given date.
|
|
1530
2872
|
parameters:
|
|
1531
2873
|
- in: path
|
|
1532
2874
|
name: date
|
|
@@ -1534,15 +2876,49 @@ class DateTimeSpentsResource(Resource):
|
|
|
1534
2876
|
schema:
|
|
1535
2877
|
type: string
|
|
1536
2878
|
format: date
|
|
1537
|
-
example: "2022-07-12"
|
|
1538
2879
|
description: Date to get time spents for
|
|
2880
|
+
example: "2023-01-01"
|
|
1539
2881
|
responses:
|
|
1540
2882
|
200:
|
|
1541
|
-
description: Time
|
|
2883
|
+
description: Time spent entries for the current user on given date
|
|
1542
2884
|
content:
|
|
1543
2885
|
application/json:
|
|
1544
2886
|
schema:
|
|
1545
2887
|
type: object
|
|
2888
|
+
properties:
|
|
2889
|
+
date:
|
|
2890
|
+
type: string
|
|
2891
|
+
format: date
|
|
2892
|
+
description: Date of time spent
|
|
2893
|
+
example: "2023-01-01"
|
|
2894
|
+
total_duration:
|
|
2895
|
+
type: number
|
|
2896
|
+
description: Total duration in seconds
|
|
2897
|
+
example: 28800
|
|
2898
|
+
entries:
|
|
2899
|
+
type: array
|
|
2900
|
+
items:
|
|
2901
|
+
type: object
|
|
2902
|
+
properties:
|
|
2903
|
+
id:
|
|
2904
|
+
type: string
|
|
2905
|
+
format: uuid
|
|
2906
|
+
description: Time spent unique identifier
|
|
2907
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
2908
|
+
task_id:
|
|
2909
|
+
type: string
|
|
2910
|
+
format: uuid
|
|
2911
|
+
description: Task identifier
|
|
2912
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
2913
|
+
duration:
|
|
2914
|
+
type: number
|
|
2915
|
+
description: Duration in seconds
|
|
2916
|
+
example: 3600
|
|
2917
|
+
created_at:
|
|
2918
|
+
type: string
|
|
2919
|
+
format: date-time
|
|
2920
|
+
description: Creation timestamp
|
|
2921
|
+
example: "2023-01-01T12:00:00Z"
|
|
1546
2922
|
400:
|
|
1547
2923
|
description: Wrong date format
|
|
1548
2924
|
"""
|
|
@@ -1559,11 +2935,12 @@ class TaskTimeSpentResource(Resource):
|
|
|
1559
2935
|
|
|
1560
2936
|
def get(self, task_id, date):
|
|
1561
2937
|
"""
|
|
1562
|
-
Get task time spent
|
|
2938
|
+
Get task time spent
|
|
1563
2939
|
---
|
|
2940
|
+
description: Retrieve time spent entries for the current user on a
|
|
2941
|
+
specific task and date. Returns detailed time tracking information.
|
|
1564
2942
|
tags:
|
|
1565
2943
|
- User
|
|
1566
|
-
description: Get time spents for current user and given date.
|
|
1567
2944
|
parameters:
|
|
1568
2945
|
- in: path
|
|
1569
2946
|
name: task_id
|
|
@@ -1571,6 +2948,7 @@ class TaskTimeSpentResource(Resource):
|
|
|
1571
2948
|
schema:
|
|
1572
2949
|
type: string
|
|
1573
2950
|
format: uuid
|
|
2951
|
+
description: Task unique identifier
|
|
1574
2952
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1575
2953
|
- in: path
|
|
1576
2954
|
name: date
|
|
@@ -1578,16 +2956,50 @@ class TaskTimeSpentResource(Resource):
|
|
|
1578
2956
|
schema:
|
|
1579
2957
|
type: string
|
|
1580
2958
|
format: date
|
|
1581
|
-
|
|
2959
|
+
description: Date to get time spent for
|
|
2960
|
+
example: "2023-01-01"
|
|
1582
2961
|
responses:
|
|
1583
2962
|
200:
|
|
1584
|
-
description: Time
|
|
2963
|
+
description: Time spent entry for the current user on given task and date
|
|
1585
2964
|
content:
|
|
1586
2965
|
application/json:
|
|
1587
2966
|
schema:
|
|
1588
2967
|
type: object
|
|
1589
|
-
|
|
1590
|
-
|
|
2968
|
+
properties:
|
|
2969
|
+
id:
|
|
2970
|
+
type: string
|
|
2971
|
+
format: uuid
|
|
2972
|
+
description: Time spent unique identifier
|
|
2973
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
2974
|
+
person_id:
|
|
2975
|
+
type: string
|
|
2976
|
+
format: uuid
|
|
2977
|
+
description: Person identifier
|
|
2978
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
2979
|
+
task_id:
|
|
2980
|
+
type: string
|
|
2981
|
+
format: uuid
|
|
2982
|
+
description: Task identifier
|
|
2983
|
+
example: d57d9hd7-fh08-7998-d403-80786315f58
|
|
2984
|
+
date:
|
|
2985
|
+
type: string
|
|
2986
|
+
format: date
|
|
2987
|
+
description: Date of time spent
|
|
2988
|
+
example: "2023-01-01"
|
|
2989
|
+
duration:
|
|
2990
|
+
type: number
|
|
2991
|
+
description: Duration in seconds
|
|
2992
|
+
example: 3600
|
|
2993
|
+
created_at:
|
|
2994
|
+
type: string
|
|
2995
|
+
format: date-time
|
|
2996
|
+
description: Creation timestamp
|
|
2997
|
+
example: "2023-01-01T12:00:00Z"
|
|
2998
|
+
updated_at:
|
|
2999
|
+
type: string
|
|
3000
|
+
format: date-time
|
|
3001
|
+
description: Last update timestamp
|
|
3002
|
+
example: "2023-01-01T12:30:00Z"
|
|
1591
3003
|
"""
|
|
1592
3004
|
try:
|
|
1593
3005
|
current_user = persons_service.get_current_user()
|
|
@@ -1604,9 +3016,10 @@ class DayOffResource(Resource):
|
|
|
1604
3016
|
"""
|
|
1605
3017
|
Get day off
|
|
1606
3018
|
---
|
|
3019
|
+
description: Retrieve day off information for the current user on a
|
|
3020
|
+
specific date.
|
|
1607
3021
|
tags:
|
|
1608
3022
|
- User
|
|
1609
|
-
description: Get day off object for current user and given date.
|
|
1610
3023
|
parameters:
|
|
1611
3024
|
- in: path
|
|
1612
3025
|
name: date
|
|
@@ -1614,16 +3027,41 @@ class DayOffResource(Resource):
|
|
|
1614
3027
|
schema:
|
|
1615
3028
|
type: string
|
|
1616
3029
|
format: date
|
|
1617
|
-
|
|
3030
|
+
description: Date to check for day off
|
|
3031
|
+
example: "2023-01-01"
|
|
1618
3032
|
responses:
|
|
1619
3033
|
200:
|
|
1620
|
-
description: Day off object for current user
|
|
3034
|
+
description: Day off object for the current user on given date
|
|
1621
3035
|
content:
|
|
1622
3036
|
application/json:
|
|
1623
3037
|
schema:
|
|
1624
3038
|
type: object
|
|
1625
|
-
|
|
1626
|
-
|
|
3039
|
+
properties:
|
|
3040
|
+
id:
|
|
3041
|
+
type: string
|
|
3042
|
+
format: uuid
|
|
3043
|
+
description: Day off unique identifier
|
|
3044
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
3045
|
+
person_id:
|
|
3046
|
+
type: string
|
|
3047
|
+
format: uuid
|
|
3048
|
+
description: Person identifier
|
|
3049
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
3050
|
+
date:
|
|
3051
|
+
type: string
|
|
3052
|
+
format: date
|
|
3053
|
+
description: Day off date
|
|
3054
|
+
example: "2023-01-01"
|
|
3055
|
+
created_at:
|
|
3056
|
+
type: string
|
|
3057
|
+
format: date-time
|
|
3058
|
+
description: Creation timestamp
|
|
3059
|
+
example: "2023-01-01T12:00:00Z"
|
|
3060
|
+
updated_at:
|
|
3061
|
+
type: string
|
|
3062
|
+
format: date-time
|
|
3063
|
+
description: Last update timestamp
|
|
3064
|
+
example: "2023-01-01T12:30:00Z"
|
|
1627
3065
|
"""
|
|
1628
3066
|
try:
|
|
1629
3067
|
current_user = persons_service.get_current_user()
|
|
@@ -1638,16 +3076,105 @@ class ContextResource(Resource):
|
|
|
1638
3076
|
"""
|
|
1639
3077
|
Get context
|
|
1640
3078
|
---
|
|
3079
|
+
description: Retrieve context information required to properly run a
|
|
3080
|
+
full application connected to the API. Returns user, project, and
|
|
3081
|
+
system configuration data.
|
|
1641
3082
|
tags:
|
|
1642
|
-
|
|
1643
|
-
description: Return context required to properly run a full app connected to the API (like the Kitsu web client)
|
|
3083
|
+
- User
|
|
1644
3084
|
responses:
|
|
1645
3085
|
200:
|
|
1646
|
-
description: Context
|
|
3086
|
+
description: Context information for running a full app connected to the API
|
|
1647
3087
|
content:
|
|
1648
3088
|
application/json:
|
|
1649
3089
|
schema:
|
|
1650
3090
|
type: object
|
|
3091
|
+
properties:
|
|
3092
|
+
user:
|
|
3093
|
+
type: object
|
|
3094
|
+
description: Current user information
|
|
3095
|
+
example: {"id": "uuid", "name": "John Doe"}
|
|
3096
|
+
projects:
|
|
3097
|
+
type: array
|
|
3098
|
+
items:
|
|
3099
|
+
type: object
|
|
3100
|
+
description: Available projects
|
|
3101
|
+
example: [{"id": "uuid", "name": "Project 1"}]
|
|
3102
|
+
departments:
|
|
3103
|
+
type: array
|
|
3104
|
+
items:
|
|
3105
|
+
type: object
|
|
3106
|
+
description: Available departments
|
|
3107
|
+
example: [{"id": "uuid", "name": "Animation"}]
|
|
3108
|
+
asset_types:
|
|
3109
|
+
type: array
|
|
3110
|
+
items:
|
|
3111
|
+
type: object
|
|
3112
|
+
description: Available asset types
|
|
3113
|
+
example: [{"id": "uuid", "name": "Character"}]
|
|
3114
|
+
task_types:
|
|
3115
|
+
type: array
|
|
3116
|
+
items:
|
|
3117
|
+
type: object
|
|
3118
|
+
description: Available task types
|
|
3119
|
+
example: [{"id": "uuid", "name": "Modeling"}]
|
|
3120
|
+
task_status:
|
|
3121
|
+
type: array
|
|
3122
|
+
items:
|
|
3123
|
+
type: object
|
|
3124
|
+
description: Available task statuses
|
|
3125
|
+
example: [{"id": "uuid", "name": "In Progress"}]
|
|
3126
|
+
custom_actions:
|
|
3127
|
+
type: array
|
|
3128
|
+
items:
|
|
3129
|
+
type: object
|
|
3130
|
+
description: Available custom actions
|
|
3131
|
+
example: [{"id": "uuid", "name": "Custom Action"}]
|
|
3132
|
+
status_automations:
|
|
3133
|
+
type: array
|
|
3134
|
+
items:
|
|
3135
|
+
type: object
|
|
3136
|
+
description: Available status automations
|
|
3137
|
+
example: [{"id": "uuid", "name": "Auto Status"}]
|
|
3138
|
+
studios:
|
|
3139
|
+
type: array
|
|
3140
|
+
items:
|
|
3141
|
+
type: object
|
|
3142
|
+
description: Available studios
|
|
3143
|
+
example: [{"id": "uuid", "name": "Studio Name"}]
|
|
3144
|
+
notification_count:
|
|
3145
|
+
type: integer
|
|
3146
|
+
description: Number of unread notifications
|
|
3147
|
+
example: 5
|
|
3148
|
+
persons:
|
|
3149
|
+
type: array
|
|
3150
|
+
items:
|
|
3151
|
+
type: object
|
|
3152
|
+
description: Available persons
|
|
3153
|
+
example: [{"id": "uuid", "name": "John Doe"}]
|
|
3154
|
+
project_status:
|
|
3155
|
+
type: array
|
|
3156
|
+
items:
|
|
3157
|
+
type: object
|
|
3158
|
+
description: Available project statuses
|
|
3159
|
+
example: [{"id": "uuid", "name": "Active"}]
|
|
3160
|
+
search_filters:
|
|
3161
|
+
type: array
|
|
3162
|
+
items:
|
|
3163
|
+
type: object
|
|
3164
|
+
description: Available search filters
|
|
3165
|
+
example: [{"id": "uuid", "name": "My Filter"}]
|
|
3166
|
+
search_filter_groups:
|
|
3167
|
+
type: array
|
|
3168
|
+
items:
|
|
3169
|
+
type: object
|
|
3170
|
+
description: Available search filter groups
|
|
3171
|
+
example: [{"id": "uuid", "name": "Filter Group"}]
|
|
3172
|
+
preview_background_files:
|
|
3173
|
+
type: array
|
|
3174
|
+
items:
|
|
3175
|
+
type: object
|
|
3176
|
+
description: Available preview background files
|
|
3177
|
+
example: [{"id": "uuid", "name": "background.jpg"}]
|
|
1651
3178
|
"""
|
|
1652
3179
|
return user_service.get_context()
|
|
1653
3180
|
|
|
@@ -1658,14 +3185,13 @@ class ClearAvatarResource(Resource):
|
|
|
1658
3185
|
"""
|
|
1659
3186
|
Clear avatar
|
|
1660
3187
|
---
|
|
3188
|
+
description: Set the has_avatar flag to false for the current user and
|
|
3189
|
+
remove the avatar file from storage. This action cannot be undone.
|
|
1661
3190
|
tags:
|
|
1662
|
-
|
|
1663
|
-
description: Set has_avatar flag to False for current user and remove its avatar file.
|
|
3191
|
+
- User
|
|
1664
3192
|
responses:
|
|
1665
3193
|
204:
|
|
1666
|
-
description: Avatar file deleted
|
|
1667
|
-
404:
|
|
1668
|
-
description: User not found
|
|
3194
|
+
description: Avatar file deleted successfully
|
|
1669
3195
|
"""
|
|
1670
3196
|
user = persons_service.get_current_user()
|
|
1671
3197
|
persons_service.clear_avatar(user["id"])
|
|
@@ -1678,9 +3204,10 @@ class ChatsResource(Resource):
|
|
|
1678
3204
|
"""
|
|
1679
3205
|
Get chats
|
|
1680
3206
|
---
|
|
3207
|
+
description: Retrieve all chats where the current user is a
|
|
3208
|
+
participant. Returns list of chat conversations the user can access.
|
|
1681
3209
|
tags:
|
|
1682
|
-
|
|
1683
|
-
description: Return chats where user is participant
|
|
3210
|
+
- User
|
|
1684
3211
|
responses:
|
|
1685
3212
|
200:
|
|
1686
3213
|
description: Chats where user is participant
|
|
@@ -1690,6 +3217,38 @@ class ChatsResource(Resource):
|
|
|
1690
3217
|
type: array
|
|
1691
3218
|
items:
|
|
1692
3219
|
type: object
|
|
3220
|
+
properties:
|
|
3221
|
+
id:
|
|
3222
|
+
type: string
|
|
3223
|
+
format: uuid
|
|
3224
|
+
description: Chat unique identifier
|
|
3225
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
3226
|
+
entity_id:
|
|
3227
|
+
type: string
|
|
3228
|
+
format: uuid
|
|
3229
|
+
description: Entity identifier
|
|
3230
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
3231
|
+
entity_type:
|
|
3232
|
+
type: string
|
|
3233
|
+
description: Entity type
|
|
3234
|
+
example: "Asset"
|
|
3235
|
+
participants:
|
|
3236
|
+
type: array
|
|
3237
|
+
items:
|
|
3238
|
+
type: string
|
|
3239
|
+
format: uuid
|
|
3240
|
+
description: List of participant person identifiers
|
|
3241
|
+
example: ["c46c8gc6-eg97-6887-c292-79675204e47"]
|
|
3242
|
+
created_at:
|
|
3243
|
+
type: string
|
|
3244
|
+
format: date-time
|
|
3245
|
+
description: Creation timestamp
|
|
3246
|
+
example: "2023-01-01T12:00:00Z"
|
|
3247
|
+
updated_at:
|
|
3248
|
+
type: string
|
|
3249
|
+
format: date-time
|
|
3250
|
+
description: Last update timestamp
|
|
3251
|
+
example: "2023-01-01T12:30:00Z"
|
|
1693
3252
|
"""
|
|
1694
3253
|
user = persons_service.get_current_user()
|
|
1695
3254
|
return chats_service.get_chats_for_person(user["id"])
|
|
@@ -1701,9 +3260,11 @@ class JoinChatResource(Resource):
|
|
|
1701
3260
|
"""
|
|
1702
3261
|
Join chat
|
|
1703
3262
|
---
|
|
3263
|
+
description: Join a chat for a specific entity by adding the current
|
|
3264
|
+
user as a participant. The user will be listed as a participant in
|
|
3265
|
+
the chat.
|
|
1704
3266
|
tags:
|
|
1705
|
-
|
|
1706
|
-
description: Join chat for given entity (be listed as participant).
|
|
3267
|
+
- User
|
|
1707
3268
|
parameters:
|
|
1708
3269
|
- in: path
|
|
1709
3270
|
name: entity_id
|
|
@@ -1711,16 +3272,47 @@ class JoinChatResource(Resource):
|
|
|
1711
3272
|
schema:
|
|
1712
3273
|
type: string
|
|
1713
3274
|
format: uuid
|
|
3275
|
+
description: Entity unique identifier
|
|
1714
3276
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1715
3277
|
responses:
|
|
1716
3278
|
201:
|
|
1717
|
-
description: Chat joined
|
|
3279
|
+
description: Chat joined successfully
|
|
1718
3280
|
content:
|
|
1719
3281
|
application/json:
|
|
1720
3282
|
schema:
|
|
1721
3283
|
type: object
|
|
1722
|
-
|
|
1723
|
-
|
|
3284
|
+
properties:
|
|
3285
|
+
id:
|
|
3286
|
+
type: string
|
|
3287
|
+
format: uuid
|
|
3288
|
+
description: Chat unique identifier
|
|
3289
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
3290
|
+
entity_id:
|
|
3291
|
+
type: string
|
|
3292
|
+
format: uuid
|
|
3293
|
+
description: Entity identifier
|
|
3294
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
3295
|
+
entity_type:
|
|
3296
|
+
type: string
|
|
3297
|
+
description: Entity type
|
|
3298
|
+
example: "Asset"
|
|
3299
|
+
participants:
|
|
3300
|
+
type: array
|
|
3301
|
+
items:
|
|
3302
|
+
type: string
|
|
3303
|
+
format: uuid
|
|
3304
|
+
description: List of participant person identifiers
|
|
3305
|
+
example: ["d57d9hd7-fh08-7998-d403-80786315f58"]
|
|
3306
|
+
created_at:
|
|
3307
|
+
type: string
|
|
3308
|
+
format: date-time
|
|
3309
|
+
description: Creation timestamp
|
|
3310
|
+
example: "2023-01-01T12:00:00Z"
|
|
3311
|
+
updated_at:
|
|
3312
|
+
type: string
|
|
3313
|
+
format: date-time
|
|
3314
|
+
description: Last update timestamp
|
|
3315
|
+
example: "2023-01-01T12:30:00Z"
|
|
1724
3316
|
"""
|
|
1725
3317
|
entity = entities_service.get_entity(entity_id)
|
|
1726
3318
|
user_service.check_project_access(entity["project_id"])
|
|
@@ -1732,9 +3324,11 @@ class JoinChatResource(Resource):
|
|
|
1732
3324
|
"""
|
|
1733
3325
|
Leave chat
|
|
1734
3326
|
---
|
|
3327
|
+
description: Leave a chat for a specific entity by removing the
|
|
3328
|
+
current user from participants. The user will no longer receive
|
|
3329
|
+
chat messages for this entity.
|
|
1735
3330
|
tags:
|
|
1736
|
-
|
|
1737
|
-
description: Leave chat for given entity (be removed from participants).
|
|
3331
|
+
- User
|
|
1738
3332
|
parameters:
|
|
1739
3333
|
- in: path
|
|
1740
3334
|
name: entity_id
|
|
@@ -1742,12 +3336,11 @@ class JoinChatResource(Resource):
|
|
|
1742
3336
|
schema:
|
|
1743
3337
|
type: string
|
|
1744
3338
|
format: uuid
|
|
3339
|
+
description: Entity unique identifier
|
|
1745
3340
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
1746
3341
|
responses:
|
|
1747
3342
|
204:
|
|
1748
3343
|
description: Chat left successfully
|
|
1749
|
-
404:
|
|
1750
|
-
description: Entity not found
|
|
1751
3344
|
"""
|
|
1752
3345
|
entity = entities_service.get_entity(entity_id)
|
|
1753
3346
|
user_service.check_project_access(entity["project_id"])
|