1818
1919from datetime import datetime
2020
21- import marshmallow
21+ from marshmallow import ValidationError
2222from flask import Blueprint
2323from flask import request
2424
4949from app .blueprints .access_controls import ac_api_requires
5050from app .blueprints .responses import response_error
5151from app .blueprints .responses import response_success
52+ from app .iris_engine .module_handler .module_handler import call_deprecated_on_preload_modules_hook
5253
5354case_tasks_rest_blueprint = Blueprint ('case_tasks_rest' , __name__ )
5455
@@ -110,9 +111,22 @@ def case_task_status_update(cur_id: int, caseid: int):
110111def deprecated_case_add_task (caseid : int ):
111112 task_schema = CaseTaskSchema ()
112113 try :
113- msg , task = tasks_create (case_identifier = caseid ,
114- request_json = request .get_json ())
115- return response_success (msg , data = task_schema .dump (task ))
114+ request_data = call_deprecated_on_preload_modules_hook ('task_create' , request .get_json (), caseid )
115+
116+ if 'task_assignee_id' in request_data or 'task_assignees_id' not in request_data :
117+ raise BusinessProcessingError ('task_assignee_id is not valid anymore since v1.5.0' )
118+
119+ task_assignee_list = request_data ['task_assignees_id' ]
120+ del request_data ['task_assignees_id' ]
121+
122+ task = task_schema .load (request_data )
123+ task .task_case_id = caseid
124+ task = tasks_create (task , task_assignee_list )
125+ return response_success (f'Task "{ task .task_title } " added' , data = task_schema .dump (task ))
126+
127+ except ValidationError as e :
128+ return response_error ('Data error' , e .messages )
129+
116130 except BusinessProcessingError as e :
117131 return response_error (e .get_message (), data = e .get_data ())
118132
@@ -136,18 +150,29 @@ def deprecated_case_task_view(cur_id: int, caseid: int):
136150@ac_requires_case_identifier (CaseAccessLevel .full_access )
137151@ac_api_requires ()
138152def deprecated_case_edit_task (cur_id : int , caseid : int ):
153+ task_schema = CaseTaskSchema ()
139154 try :
140155 task = get_task (task_id = cur_id )
141156 if not task :
142157 return response_error (msg = 'Invalid task ID for this case' )
143158
144- task = tasks_update ( task , request . get_json ())
145- task_schema = CaseTaskSchema ( )
159+ case_identifier = task . task_case_id
160+ request_data = call_deprecated_on_preload_modules_hook ( 'task_update' , request . get_json (), case_identifier )
146161
147- return response_success (msg = 'Task updated' , data = task_schema .dump (task ))
162+ if 'task_assignee_id' in request_data or 'task_assignees_id' not in request_data :
163+ return response_error ('task_assignee_id is not valid anymore since v1.5.0' )
164+
165+ task_assignee_list = request_data ['task_assignees_id' ]
166+ del request_data ['task_assignees_id' ]
167+
168+ request_data ['id' ] = task .id
169+ task = task_schema .load (request_data , instance = task )
148170
149- except marshmallow .exceptions .ValidationError as e :
150- return response_error (msg = 'Data error' , data = e .messages )
171+ task = tasks_update (task , task_assignee_list )
172+
173+ return response_success (msg = 'Task updated' , data = task_schema .dump (task ))
174+ except ValidationError as e :
175+ return response_error ('Data error' , data = e .messages )
151176
152177
153178@case_tasks_rest_blueprint .route ('/case/tasks/delete/<int:cur_id>' , methods = ['POST' ])
@@ -160,7 +185,7 @@ def deprecated_case_delete_task(cur_id: int, caseid: int):
160185 tasks_delete (task )
161186 return response_success ('Task deleted' )
162187 except BusinessProcessingError as e :
163- return response_error (msg = e .get_message (), data = e .get_data ())
188+ return response_error (e .get_message (), data = e .get_data ())
164189
165190
166191@case_tasks_rest_blueprint .route ('/case/tasks/<int:cur_id>/comments/list' , methods = ['GET' ])
@@ -210,7 +235,7 @@ def case_comment_task_add(cur_id: int, caseid: int):
210235 track_activity (f"task \" { task .task_title } \" commented" , caseid = caseid )
211236 return response_success ("Task commented" , data = comment_schema .dump (comment ))
212237
213- except marshmallow . exceptions . ValidationError as e :
238+ except ValidationError as e :
214239 return response_error (msg = "Data error" , data = e .normalized_messages ())
215240
216241
0 commit comments