zou 0.20.82__py3-none-any.whl → 0.20.84__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zou/__init__.py +1 -1
- zou/app/blueprints/assets/resources.py +1060 -153
- zou/app/blueprints/auth/resources.py +368 -238
- zou/app/blueprints/breakdown/resources.py +584 -94
- zou/app/blueprints/chats/resources.py +176 -37
- zou/app/blueprints/comments/resources.py +409 -150
- zou/app/blueprints/concepts/resources.py +443 -63
- zou/app/blueprints/crud/asset_instance.py +272 -0
- zou/app/blueprints/crud/attachment_file.py +263 -0
- zou/app/blueprints/crud/base.py +176 -69
- zou/app/blueprints/crud/budget.py +278 -0
- zou/app/blueprints/crud/budget_entry.py +269 -0
- zou/app/blueprints/crud/chat.py +282 -0
- zou/app/blueprints/crud/chat_message.py +286 -0
- zou/app/blueprints/crud/comments.py +312 -1
- zou/app/blueprints/crud/custom_action.py +268 -0
- zou/app/blueprints/crud/day_off.py +298 -0
- zou/app/blueprints/crud/department.py +268 -0
- zou/app/blueprints/crud/entity.py +297 -3
- zou/app/blueprints/crud/entity_link.py +303 -0
- zou/app/blueprints/crud/entity_type.py +269 -0
- zou/app/blueprints/crud/event.py +197 -0
- zou/app/blueprints/crud/file_status.py +268 -0
- zou/app/blueprints/crud/hardware_item.py +268 -0
- zou/app/blueprints/crud/metadata_descriptor.py +312 -0
- zou/app/blueprints/crud/milestone.py +302 -1
- zou/app/blueprints/crud/news.py +285 -0
- zou/app/blueprints/crud/notification.py +287 -0
- zou/app/blueprints/crud/organisation.py +269 -0
- zou/app/blueprints/crud/output_file.py +34 -10
- zou/app/blueprints/crud/output_type.py +30 -10
- zou/app/blueprints/crud/person.py +407 -2
- zou/app/blueprints/crud/playlist.py +322 -4
- zou/app/blueprints/crud/plugin.py +269 -0
- zou/app/blueprints/crud/preview_background_file.py +272 -0
- zou/app/blueprints/crud/preview_file.py +280 -9
- zou/app/blueprints/crud/production_schedule_version.py +569 -0
- zou/app/blueprints/crud/project.py +440 -0
- zou/app/blueprints/crud/project_status.py +268 -0
- zou/app/blueprints/crud/salary_scale.py +185 -5
- zou/app/blueprints/crud/schedule_item.py +305 -0
- zou/app/blueprints/crud/search_filter.py +302 -0
- zou/app/blueprints/crud/search_filter_group.py +270 -0
- zou/app/blueprints/crud/software.py +30 -10
- zou/app/blueprints/crud/status_automation.py +296 -2
- zou/app/blueprints/crud/studio.py +268 -0
- zou/app/blueprints/crud/subscription.py +279 -0
- zou/app/blueprints/crud/task.py +325 -5
- zou/app/blueprints/crud/task_status.py +301 -0
- zou/app/blueprints/crud/task_type.py +283 -0
- zou/app/blueprints/crud/time_spent.py +327 -0
- zou/app/blueprints/crud/working_file.py +273 -10
- zou/app/blueprints/departments/resources.py +302 -68
- zou/app/blueprints/edits/resources.py +651 -81
- zou/app/blueprints/entities/resources.py +104 -39
- zou/app/blueprints/events/resources.py +96 -8
- zou/app/blueprints/export/csv/assets.py +15 -5
- zou/app/blueprints/export/csv/base.py +12 -3
- zou/app/blueprints/export/csv/casting.py +32 -5
- zou/app/blueprints/export/csv/edits.py +15 -5
- zou/app/blueprints/export/csv/persons.py +24 -0
- zou/app/blueprints/export/csv/playlists.py +16 -5
- zou/app/blueprints/export/csv/projects.py +23 -0
- zou/app/blueprints/export/csv/shots.py +15 -5
- zou/app/blueprints/export/csv/task_types.py +23 -0
- zou/app/blueprints/export/csv/tasks.py +24 -0
- zou/app/blueprints/export/csv/time_spents.py +24 -0
- zou/app/blueprints/files/resources.py +928 -377
- zou/app/blueprints/index/resources.py +49 -42
- zou/app/blueprints/news/resources.py +47 -27
- zou/app/blueprints/persons/resources.py +644 -271
- zou/app/blueprints/playlists/resources.py +154 -72
- zou/app/blueprints/previews/resources.py +473 -228
- zou/app/blueprints/projects/__init__.py +5 -0
- zou/app/blueprints/projects/resources.py +987 -420
- zou/app/blueprints/search/resources.py +44 -32
- zou/app/blueprints/shots/resources.py +1338 -88
- zou/app/blueprints/source/csv/assets.py +44 -6
- zou/app/blueprints/source/csv/casting.py +43 -6
- zou/app/blueprints/source/csv/edits.py +47 -9
- zou/app/blueprints/source/csv/persons.py +43 -4
- zou/app/blueprints/source/csv/shots.py +47 -6
- zou/app/blueprints/source/csv/task_type_estimations.py +95 -35
- zou/app/blueprints/source/kitsu.py +433 -11
- zou/app/blueprints/source/otio.py +215 -20
- zou/app/blueprints/source/shotgun/assets.py +146 -0
- zou/app/blueprints/source/shotgun/base.py +85 -14
- zou/app/blueprints/source/shotgun/episode.py +124 -0
- zou/app/blueprints/source/shotgun/import_errors.py +105 -14
- zou/app/blueprints/source/shotgun/notes.py +132 -0
- zou/app/blueprints/source/shotgun/person.py +163 -0
- zou/app/blueprints/source/shotgun/project.py +120 -0
- zou/app/blueprints/source/shotgun/scene.py +120 -0
- zou/app/blueprints/source/shotgun/sequence.py +134 -0
- zou/app/blueprints/source/shotgun/shot.py +166 -0
- zou/app/blueprints/source/shotgun/status.py +129 -0
- zou/app/blueprints/source/shotgun/steps.py +138 -0
- zou/app/blueprints/source/shotgun/tasks.py +199 -0
- zou/app/blueprints/source/shotgun/team.py +132 -0
- zou/app/blueprints/source/shotgun/versions.py +155 -0
- zou/app/blueprints/tasks/resources.py +1197 -308
- zou/app/blueprints/user/resources.py +1808 -215
- zou/app/models/metadata_descriptor.py +1 -0
- zou/app/services/persons_service.py +1 -1
- zou/app/services/projects_service.py +45 -1
- zou/app/services/time_spents_service.py +1 -1
- zou/app/swagger.py +100 -27
- zou/migrations/versions/a1b2c3d4e5f6_add_position_to_metadata_descriptor.py +32 -0
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/METADATA +18 -18
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/RECORD +114 -113
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/WHEEL +0 -0
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/entry_points.txt +0 -0
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/licenses/LICENSE +0 -0
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/top_level.txt +0 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from flask_jwt_extended import jwt_required
|
|
2
|
+
|
|
1
3
|
from zou.app.models.milestone import Milestone
|
|
2
4
|
from zou.app.services import user_service
|
|
3
5
|
|
|
@@ -11,6 +13,143 @@ class MilestonesResource(BaseModelsResource):
|
|
|
11
13
|
def check_create_permissions(self, milestone):
|
|
12
14
|
user_service.check_manager_project_access(milestone["project_id"])
|
|
13
15
|
|
|
16
|
+
@jwt_required()
|
|
17
|
+
def get(self):
|
|
18
|
+
"""
|
|
19
|
+
Get milestones
|
|
20
|
+
---
|
|
21
|
+
tags:
|
|
22
|
+
- Crud
|
|
23
|
+
description: Retrieve all milestones. Supports filtering via query
|
|
24
|
+
parameters and pagination.
|
|
25
|
+
parameters:
|
|
26
|
+
- in: query
|
|
27
|
+
name: page
|
|
28
|
+
required: false
|
|
29
|
+
schema:
|
|
30
|
+
type: integer
|
|
31
|
+
example: 1
|
|
32
|
+
description: Page number for pagination
|
|
33
|
+
- in: query
|
|
34
|
+
name: limit
|
|
35
|
+
required: false
|
|
36
|
+
schema:
|
|
37
|
+
type: integer
|
|
38
|
+
example: 50
|
|
39
|
+
description: Number of results per page
|
|
40
|
+
- in: query
|
|
41
|
+
name: relations
|
|
42
|
+
required: false
|
|
43
|
+
schema:
|
|
44
|
+
type: boolean
|
|
45
|
+
default: false
|
|
46
|
+
example: false
|
|
47
|
+
description: Whether to include relations
|
|
48
|
+
responses:
|
|
49
|
+
200:
|
|
50
|
+
description: Milestones retrieved successfully
|
|
51
|
+
content:
|
|
52
|
+
application/json:
|
|
53
|
+
schema:
|
|
54
|
+
oneOf:
|
|
55
|
+
- type: array
|
|
56
|
+
items:
|
|
57
|
+
type: object
|
|
58
|
+
- type: object
|
|
59
|
+
properties:
|
|
60
|
+
data:
|
|
61
|
+
type: array
|
|
62
|
+
items:
|
|
63
|
+
type: object
|
|
64
|
+
example: []
|
|
65
|
+
total:
|
|
66
|
+
type: integer
|
|
67
|
+
example: 100
|
|
68
|
+
nb_pages:
|
|
69
|
+
type: integer
|
|
70
|
+
example: 2
|
|
71
|
+
limit:
|
|
72
|
+
type: integer
|
|
73
|
+
example: 50
|
|
74
|
+
offset:
|
|
75
|
+
type: integer
|
|
76
|
+
example: 0
|
|
77
|
+
page:
|
|
78
|
+
type: integer
|
|
79
|
+
example: 1
|
|
80
|
+
400:
|
|
81
|
+
description: Invalid filter format or query error
|
|
82
|
+
"""
|
|
83
|
+
return super().get()
|
|
84
|
+
|
|
85
|
+
@jwt_required()
|
|
86
|
+
def post(self):
|
|
87
|
+
"""
|
|
88
|
+
Create milestone
|
|
89
|
+
---
|
|
90
|
+
tags:
|
|
91
|
+
- Crud
|
|
92
|
+
description: Create a new milestone with data provided in the
|
|
93
|
+
request body. JSON format is expected. Requires manager access
|
|
94
|
+
to the project.
|
|
95
|
+
requestBody:
|
|
96
|
+
required: true
|
|
97
|
+
content:
|
|
98
|
+
application/json:
|
|
99
|
+
schema:
|
|
100
|
+
type: object
|
|
101
|
+
required:
|
|
102
|
+
- name
|
|
103
|
+
- project_id
|
|
104
|
+
- date
|
|
105
|
+
properties:
|
|
106
|
+
name:
|
|
107
|
+
type: string
|
|
108
|
+
example: Milestone Name
|
|
109
|
+
project_id:
|
|
110
|
+
type: string
|
|
111
|
+
format: uuid
|
|
112
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
113
|
+
date:
|
|
114
|
+
type: string
|
|
115
|
+
format: date
|
|
116
|
+
example: "2024-03-31"
|
|
117
|
+
responses:
|
|
118
|
+
201:
|
|
119
|
+
description: Milestone created successfully
|
|
120
|
+
content:
|
|
121
|
+
application/json:
|
|
122
|
+
schema:
|
|
123
|
+
type: object
|
|
124
|
+
properties:
|
|
125
|
+
id:
|
|
126
|
+
type: string
|
|
127
|
+
format: uuid
|
|
128
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
129
|
+
name:
|
|
130
|
+
type: string
|
|
131
|
+
example: Milestone Name
|
|
132
|
+
project_id:
|
|
133
|
+
type: string
|
|
134
|
+
format: uuid
|
|
135
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
136
|
+
date:
|
|
137
|
+
type: string
|
|
138
|
+
format: date
|
|
139
|
+
example: "2024-03-31"
|
|
140
|
+
created_at:
|
|
141
|
+
type: string
|
|
142
|
+
format: date-time
|
|
143
|
+
example: "2024-01-15T10:30:00Z"
|
|
144
|
+
updated_at:
|
|
145
|
+
type: string
|
|
146
|
+
format: date-time
|
|
147
|
+
example: "2024-01-15T10:30:00Z"
|
|
148
|
+
400:
|
|
149
|
+
description: Invalid data format or validation error
|
|
150
|
+
"""
|
|
151
|
+
return super().post()
|
|
152
|
+
|
|
14
153
|
|
|
15
154
|
class MilestoneResource(BaseModelResource):
|
|
16
155
|
def __init__(self):
|
|
@@ -20,5 +159,167 @@ class MilestoneResource(BaseModelResource):
|
|
|
20
159
|
user_service.check_project_access(milestone["project_id"])
|
|
21
160
|
user_service.block_access_to_vendor()
|
|
22
161
|
|
|
162
|
+
@jwt_required()
|
|
163
|
+
def get(self, instance_id):
|
|
164
|
+
"""
|
|
165
|
+
Get milestone
|
|
166
|
+
---
|
|
167
|
+
tags:
|
|
168
|
+
- Crud
|
|
169
|
+
description: Retrieve a milestone by its ID and return it as a
|
|
170
|
+
JSON object. Supports including relations. Vendor access is
|
|
171
|
+
blocked. Requires project access.
|
|
172
|
+
parameters:
|
|
173
|
+
- in: path
|
|
174
|
+
name: instance_id
|
|
175
|
+
required: true
|
|
176
|
+
schema:
|
|
177
|
+
type: string
|
|
178
|
+
format: uuid
|
|
179
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
180
|
+
- in: query
|
|
181
|
+
name: relations
|
|
182
|
+
required: false
|
|
183
|
+
schema:
|
|
184
|
+
type: boolean
|
|
185
|
+
default: true
|
|
186
|
+
example: true
|
|
187
|
+
description: Whether to include relations
|
|
188
|
+
responses:
|
|
189
|
+
200:
|
|
190
|
+
description: Milestone retrieved successfully
|
|
191
|
+
content:
|
|
192
|
+
application/json:
|
|
193
|
+
schema:
|
|
194
|
+
type: object
|
|
195
|
+
properties:
|
|
196
|
+
id:
|
|
197
|
+
type: string
|
|
198
|
+
format: uuid
|
|
199
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
200
|
+
name:
|
|
201
|
+
type: string
|
|
202
|
+
example: Milestone Name
|
|
203
|
+
project_id:
|
|
204
|
+
type: string
|
|
205
|
+
format: uuid
|
|
206
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
207
|
+
date:
|
|
208
|
+
type: string
|
|
209
|
+
format: date
|
|
210
|
+
example: "2024-03-31"
|
|
211
|
+
created_at:
|
|
212
|
+
type: string
|
|
213
|
+
format: date-time
|
|
214
|
+
example: "2024-01-15T10:30:00Z"
|
|
215
|
+
updated_at:
|
|
216
|
+
type: string
|
|
217
|
+
format: date-time
|
|
218
|
+
example: "2024-01-15T10:30:00Z"
|
|
219
|
+
400:
|
|
220
|
+
description: Invalid ID format or query error
|
|
221
|
+
"""
|
|
222
|
+
return super().get(instance_id)
|
|
223
|
+
|
|
224
|
+
@jwt_required()
|
|
225
|
+
def put(self, instance_id):
|
|
226
|
+
"""
|
|
227
|
+
Update milestone
|
|
228
|
+
---
|
|
229
|
+
tags:
|
|
230
|
+
- Crud
|
|
231
|
+
description: Update a milestone with data provided in the request
|
|
232
|
+
body. JSON format is expected. Requires manager access to the
|
|
233
|
+
project.
|
|
234
|
+
parameters:
|
|
235
|
+
- in: path
|
|
236
|
+
name: instance_id
|
|
237
|
+
required: true
|
|
238
|
+
schema:
|
|
239
|
+
type: string
|
|
240
|
+
format: uuid
|
|
241
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
242
|
+
requestBody:
|
|
243
|
+
required: true
|
|
244
|
+
content:
|
|
245
|
+
application/json:
|
|
246
|
+
schema:
|
|
247
|
+
type: object
|
|
248
|
+
properties:
|
|
249
|
+
name:
|
|
250
|
+
type: string
|
|
251
|
+
example: Updated Milestone Name
|
|
252
|
+
date:
|
|
253
|
+
type: string
|
|
254
|
+
format: date
|
|
255
|
+
example: "2024-04-30"
|
|
256
|
+
responses:
|
|
257
|
+
200:
|
|
258
|
+
description: Milestone updated successfully
|
|
259
|
+
content:
|
|
260
|
+
application/json:
|
|
261
|
+
schema:
|
|
262
|
+
type: object
|
|
263
|
+
properties:
|
|
264
|
+
id:
|
|
265
|
+
type: string
|
|
266
|
+
format: uuid
|
|
267
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
268
|
+
name:
|
|
269
|
+
type: string
|
|
270
|
+
example: Updated Milestone Name
|
|
271
|
+
project_id:
|
|
272
|
+
type: string
|
|
273
|
+
format: uuid
|
|
274
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
275
|
+
date:
|
|
276
|
+
type: string
|
|
277
|
+
format: date
|
|
278
|
+
example: "2024-04-30"
|
|
279
|
+
created_at:
|
|
280
|
+
type: string
|
|
281
|
+
format: date-time
|
|
282
|
+
example: "2024-01-15T10:30:00Z"
|
|
283
|
+
updated_at:
|
|
284
|
+
type: string
|
|
285
|
+
format: date-time
|
|
286
|
+
example: "2024-01-15T11:00:00Z"
|
|
287
|
+
400:
|
|
288
|
+
description: Invalid data format or validation error
|
|
289
|
+
"""
|
|
290
|
+
return super().put(instance_id)
|
|
291
|
+
|
|
292
|
+
@jwt_required()
|
|
293
|
+
def delete(self, instance_id):
|
|
294
|
+
"""
|
|
295
|
+
Delete milestone
|
|
296
|
+
---
|
|
297
|
+
tags:
|
|
298
|
+
- Crud
|
|
299
|
+
description: Delete a milestone by its ID. Returns empty response
|
|
300
|
+
on success.
|
|
301
|
+
parameters:
|
|
302
|
+
- in: path
|
|
303
|
+
name: instance_id
|
|
304
|
+
required: true
|
|
305
|
+
schema:
|
|
306
|
+
type: string
|
|
307
|
+
format: uuid
|
|
308
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
309
|
+
responses:
|
|
310
|
+
204:
|
|
311
|
+
description: Milestone deleted successfully
|
|
312
|
+
400:
|
|
313
|
+
description: Integrity error or cannot delete
|
|
314
|
+
"""
|
|
315
|
+
return super().delete(instance_id)
|
|
316
|
+
|
|
23
317
|
def check_update_permissions(self, milestone, data):
|
|
24
|
-
user_service.check_manager_project_access(
|
|
318
|
+
return user_service.check_manager_project_access(
|
|
319
|
+
milestone["project_id"]
|
|
320
|
+
)
|
|
321
|
+
|
|
322
|
+
def check_delete_permissions(self, milestone):
|
|
323
|
+
return user_service.check_manager_project_access(
|
|
324
|
+
milestone["project_id"]
|
|
325
|
+
)
|
zou/app/blueprints/crud/news.py
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from flask_jwt_extended import jwt_required
|
|
2
|
+
|
|
1
3
|
from zou.app.models.news import News
|
|
2
4
|
|
|
3
5
|
from zou.app.blueprints.crud.base import BaseModelResource, BaseModelsResource
|
|
@@ -7,7 +9,290 @@ class NewssResource(BaseModelsResource):
|
|
|
7
9
|
def __init__(self):
|
|
8
10
|
BaseModelsResource.__init__(self, News)
|
|
9
11
|
|
|
12
|
+
@jwt_required()
|
|
13
|
+
def get(self):
|
|
14
|
+
"""
|
|
15
|
+
Get news
|
|
16
|
+
---
|
|
17
|
+
tags:
|
|
18
|
+
- Crud
|
|
19
|
+
description: Retrieve all news entries. Supports filtering via
|
|
20
|
+
query parameters and pagination.
|
|
21
|
+
parameters:
|
|
22
|
+
- in: query
|
|
23
|
+
name: page
|
|
24
|
+
required: false
|
|
25
|
+
schema:
|
|
26
|
+
type: integer
|
|
27
|
+
example: 1
|
|
28
|
+
description: Page number for pagination
|
|
29
|
+
- in: query
|
|
30
|
+
name: limit
|
|
31
|
+
required: false
|
|
32
|
+
schema:
|
|
33
|
+
type: integer
|
|
34
|
+
example: 50
|
|
35
|
+
description: Number of results per page
|
|
36
|
+
- in: query
|
|
37
|
+
name: relations
|
|
38
|
+
required: false
|
|
39
|
+
schema:
|
|
40
|
+
type: boolean
|
|
41
|
+
default: false
|
|
42
|
+
example: false
|
|
43
|
+
description: Whether to include relations
|
|
44
|
+
responses:
|
|
45
|
+
200:
|
|
46
|
+
description: News entries retrieved successfully
|
|
47
|
+
content:
|
|
48
|
+
application/json:
|
|
49
|
+
schema:
|
|
50
|
+
oneOf:
|
|
51
|
+
- type: array
|
|
52
|
+
items:
|
|
53
|
+
type: object
|
|
54
|
+
- type: object
|
|
55
|
+
properties:
|
|
56
|
+
data:
|
|
57
|
+
type: array
|
|
58
|
+
items:
|
|
59
|
+
type: object
|
|
60
|
+
example: []
|
|
61
|
+
total:
|
|
62
|
+
type: integer
|
|
63
|
+
example: 100
|
|
64
|
+
nb_pages:
|
|
65
|
+
type: integer
|
|
66
|
+
example: 2
|
|
67
|
+
limit:
|
|
68
|
+
type: integer
|
|
69
|
+
example: 50
|
|
70
|
+
offset:
|
|
71
|
+
type: integer
|
|
72
|
+
example: 0
|
|
73
|
+
page:
|
|
74
|
+
type: integer
|
|
75
|
+
example: 1
|
|
76
|
+
400:
|
|
77
|
+
description: Invalid filter format or query error
|
|
78
|
+
"""
|
|
79
|
+
return super().get()
|
|
80
|
+
|
|
81
|
+
@jwt_required()
|
|
82
|
+
def post(self):
|
|
83
|
+
"""
|
|
84
|
+
Create news
|
|
85
|
+
---
|
|
86
|
+
tags:
|
|
87
|
+
- Crud
|
|
88
|
+
description: Create a new news entry with data provided in the
|
|
89
|
+
request body. JSON format is expected.
|
|
90
|
+
requestBody:
|
|
91
|
+
required: true
|
|
92
|
+
content:
|
|
93
|
+
application/json:
|
|
94
|
+
schema:
|
|
95
|
+
type: object
|
|
96
|
+
required:
|
|
97
|
+
- title
|
|
98
|
+
- project_id
|
|
99
|
+
properties:
|
|
100
|
+
title:
|
|
101
|
+
type: string
|
|
102
|
+
example: Project Update
|
|
103
|
+
project_id:
|
|
104
|
+
type: string
|
|
105
|
+
format: uuid
|
|
106
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
107
|
+
content:
|
|
108
|
+
type: string
|
|
109
|
+
example: News content text
|
|
110
|
+
responses:
|
|
111
|
+
201:
|
|
112
|
+
description: News entry created successfully
|
|
113
|
+
content:
|
|
114
|
+
application/json:
|
|
115
|
+
schema:
|
|
116
|
+
type: object
|
|
117
|
+
properties:
|
|
118
|
+
id:
|
|
119
|
+
type: string
|
|
120
|
+
format: uuid
|
|
121
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
122
|
+
title:
|
|
123
|
+
type: string
|
|
124
|
+
example: Project Update
|
|
125
|
+
project_id:
|
|
126
|
+
type: string
|
|
127
|
+
format: uuid
|
|
128
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
129
|
+
content:
|
|
130
|
+
type: string
|
|
131
|
+
example: News content text
|
|
132
|
+
created_at:
|
|
133
|
+
type: string
|
|
134
|
+
format: date-time
|
|
135
|
+
example: "2024-01-15T10:30:00Z"
|
|
136
|
+
updated_at:
|
|
137
|
+
type: string
|
|
138
|
+
format: date-time
|
|
139
|
+
example: "2024-01-15T10:30:00Z"
|
|
140
|
+
400:
|
|
141
|
+
description: Invalid data format or validation error
|
|
142
|
+
"""
|
|
143
|
+
return super().post()
|
|
144
|
+
|
|
10
145
|
|
|
11
146
|
class NewsResource(BaseModelResource):
|
|
12
147
|
def __init__(self):
|
|
13
148
|
BaseModelResource.__init__(self, News)
|
|
149
|
+
|
|
150
|
+
@jwt_required()
|
|
151
|
+
def get(self, instance_id):
|
|
152
|
+
"""
|
|
153
|
+
Get news
|
|
154
|
+
---
|
|
155
|
+
tags:
|
|
156
|
+
- Crud
|
|
157
|
+
description: Retrieve a news entry by its ID and return it as a
|
|
158
|
+
JSON object. Supports including relations.
|
|
159
|
+
parameters:
|
|
160
|
+
- in: path
|
|
161
|
+
name: instance_id
|
|
162
|
+
required: true
|
|
163
|
+
schema:
|
|
164
|
+
type: string
|
|
165
|
+
format: uuid
|
|
166
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
167
|
+
- in: query
|
|
168
|
+
name: relations
|
|
169
|
+
required: false
|
|
170
|
+
schema:
|
|
171
|
+
type: boolean
|
|
172
|
+
default: true
|
|
173
|
+
example: true
|
|
174
|
+
description: Whether to include relations
|
|
175
|
+
responses:
|
|
176
|
+
200:
|
|
177
|
+
description: News entry retrieved successfully
|
|
178
|
+
content:
|
|
179
|
+
application/json:
|
|
180
|
+
schema:
|
|
181
|
+
type: object
|
|
182
|
+
properties:
|
|
183
|
+
id:
|
|
184
|
+
type: string
|
|
185
|
+
format: uuid
|
|
186
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
187
|
+
title:
|
|
188
|
+
type: string
|
|
189
|
+
example: Project Update
|
|
190
|
+
project_id:
|
|
191
|
+
type: string
|
|
192
|
+
format: uuid
|
|
193
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
194
|
+
content:
|
|
195
|
+
type: string
|
|
196
|
+
example: News content text
|
|
197
|
+
created_at:
|
|
198
|
+
type: string
|
|
199
|
+
format: date-time
|
|
200
|
+
example: "2024-01-15T10:30:00Z"
|
|
201
|
+
updated_at:
|
|
202
|
+
type: string
|
|
203
|
+
format: date-time
|
|
204
|
+
example: "2024-01-15T10:30:00Z"
|
|
205
|
+
400:
|
|
206
|
+
description: Invalid ID format or query error
|
|
207
|
+
"""
|
|
208
|
+
return super().get(instance_id)
|
|
209
|
+
|
|
210
|
+
@jwt_required()
|
|
211
|
+
def put(self, instance_id):
|
|
212
|
+
"""
|
|
213
|
+
Update news
|
|
214
|
+
---
|
|
215
|
+
tags:
|
|
216
|
+
- Crud
|
|
217
|
+
description: Update a news entry with data provided in the
|
|
218
|
+
request body. JSON format is expected.
|
|
219
|
+
parameters:
|
|
220
|
+
- in: path
|
|
221
|
+
name: instance_id
|
|
222
|
+
required: true
|
|
223
|
+
schema:
|
|
224
|
+
type: string
|
|
225
|
+
format: uuid
|
|
226
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
227
|
+
requestBody:
|
|
228
|
+
required: true
|
|
229
|
+
content:
|
|
230
|
+
application/json:
|
|
231
|
+
schema:
|
|
232
|
+
type: object
|
|
233
|
+
properties:
|
|
234
|
+
title:
|
|
235
|
+
type: string
|
|
236
|
+
example: Updated Project Update
|
|
237
|
+
content:
|
|
238
|
+
type: string
|
|
239
|
+
example: Updated news content text
|
|
240
|
+
responses:
|
|
241
|
+
200:
|
|
242
|
+
description: News entry updated successfully
|
|
243
|
+
content:
|
|
244
|
+
application/json:
|
|
245
|
+
schema:
|
|
246
|
+
type: object
|
|
247
|
+
properties:
|
|
248
|
+
id:
|
|
249
|
+
type: string
|
|
250
|
+
format: uuid
|
|
251
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
252
|
+
title:
|
|
253
|
+
type: string
|
|
254
|
+
example: Updated Project Update
|
|
255
|
+
project_id:
|
|
256
|
+
type: string
|
|
257
|
+
format: uuid
|
|
258
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
259
|
+
content:
|
|
260
|
+
type: string
|
|
261
|
+
example: Updated news content text
|
|
262
|
+
created_at:
|
|
263
|
+
type: string
|
|
264
|
+
format: date-time
|
|
265
|
+
example: "2024-01-15T10:30:00Z"
|
|
266
|
+
updated_at:
|
|
267
|
+
type: string
|
|
268
|
+
format: date-time
|
|
269
|
+
example: "2024-01-15T11:00:00Z"
|
|
270
|
+
400:
|
|
271
|
+
description: Invalid data format or validation error
|
|
272
|
+
"""
|
|
273
|
+
return super().put(instance_id)
|
|
274
|
+
|
|
275
|
+
@jwt_required()
|
|
276
|
+
def delete(self, instance_id):
|
|
277
|
+
"""
|
|
278
|
+
Delete news
|
|
279
|
+
---
|
|
280
|
+
tags:
|
|
281
|
+
- Crud
|
|
282
|
+
description: Delete a news entry by its ID. Returns empty
|
|
283
|
+
response on success.
|
|
284
|
+
parameters:
|
|
285
|
+
- in: path
|
|
286
|
+
name: instance_id
|
|
287
|
+
required: true
|
|
288
|
+
schema:
|
|
289
|
+
type: string
|
|
290
|
+
format: uuid
|
|
291
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
292
|
+
responses:
|
|
293
|
+
204:
|
|
294
|
+
description: News entry deleted successfully
|
|
295
|
+
400:
|
|
296
|
+
description: Integrity error or cannot delete
|
|
297
|
+
"""
|
|
298
|
+
return super().delete(instance_id)
|