Skip to content

Commit b0801f6

Browse files
committed
Updated IHM to change in field name when updating case
1 parent 34f4c2e commit b0801f6

File tree

3 files changed

+12
-14
lines changed

3 files changed

+12
-14
lines changed

source/app/blueprints/rest/v2/cases.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
from app.business.errors import BusinessProcessingError
4747
from app.datamgmt.manage.manage_cases_db import get_filtered_cases
4848
from app.schema.marshables import CaseSchemaForAPIV2
49-
from app.schema.marshables import CaseSchema
5049
from app.blueprints.access_controls import ac_api_requires
5150
from app.business.access_controls import ac_fast_check_current_user_has_case_access
5251
from app.blueprints.access_controls import ac_api_return_access_denied
@@ -136,23 +135,22 @@ def update(self, identifier):
136135

137136
request_data = request.get_json()
138137

138+
customer_identifier = request_data.get('case_customer_id')
139139
# If user tries to update the customer, check if the user has access to the new customer
140-
if request_data.get('case_customer') and request_data.get('case_customer') != case.client_id:
141-
if not user_has_client_access(iris_current_user.id, request_data.get('case_customer')):
140+
if customer_identifier and customer_identifier != case.client_id:
141+
if not user_has_client_access(iris_current_user.id, customer_identifier):
142142
raise BusinessProcessingError('Invalid customer ID. Permission denied.')
143143

144144
if 'case_name' in request_data:
145145
short_case_name = request_data.get('case_name').replace(f'#{case.case_id} - ', '')
146146
request_data['case_name'] = f'#{case.case_id} - {short_case_name}'
147-
request_data['case_customer'] = case.client_id if not request_data.get(
148-
'case_customer') else request_data.get(
149-
'case_customer')
150-
request_data['reviewer_id'] = None if request_data.get('reviewer_id') == '' else request_data.get(
151-
'reviewer_id')
152-
153-
# TODO should use self._schema!
154-
add_case_schema = CaseSchema()
155-
updated_case = add_case_schema.load(request_data, instance=case, partial=True)
147+
if not customer_identifier:
148+
request_data['case_customer_id'] = case.client_id
149+
reviewer_identifier = request_data.get('reviewer_id')
150+
if reviewer_identifier == '':
151+
request_data['reviewer_id'] = None
152+
153+
updated_case = self._schema.load(request_data, instance=case, partial=True)
156154

157155
protagonists = request_data.get('protagonists')
158156
tags = request_data.get('case_tags')

source/app/schema/marshables.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2437,7 +2437,7 @@ class Meta:
24372437
model = Cases
24382438
include_fk = True
24392439
load_instance = True
2440-
exclude = ['name', 'description', 'soc_id', 'client_id', 'initial_date', 'state_id', 'owner_id']
2440+
exclude = ['name', 'description', 'soc_id', 'client_id', 'initial_date']
24412441
unknown = EXCLUDE
24422442

24432443
@pre_load

tests/tests_rest_cases.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ def test_update_case_should_allow_to_update_status(self):
228228
def test_update_case_should_allow_to_update_customer(self):
229229
identifier = self._subject.create_dummy_case()
230230
customer_identifier = self._subject.create_dummy_customer()
231-
response = self._subject.update(f'/api/v2/cases/{identifier}', {'case_customer': customer_identifier}).json()
231+
response = self._subject.update(f'/api/v2/cases/{identifier}', {'case_customer_id': customer_identifier}).json()
232232
self.assertEqual(customer_identifier, response['case_customer_id'])
233233

234234
def test_update_case_should_allow_to_update_reviewer(self):

0 commit comments

Comments
 (0)