Skip to content

Commit

Permalink
refactor: deal with case when list of ICAT field values are found #265
Browse files Browse the repository at this point in the history
  • Loading branch information
VKTB committed Jan 17, 2022
1 parent 956a902 commit 98f9157
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions datagateway_api/src/search_api/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,22 @@

def _get_icat_field_value(icat_field_name, icat_data):
icat_field_name = icat_field_name.split(".")
value = icat_data
for f in icat_field_name:
value = value[f]

return value
for field_name in icat_field_name:
if isinstance(icat_data, list):
values = []
for data in icat_data:
value = _get_icat_field_value(field_name, data)
if isinstance(value, list):
values.extend(value)
else:
values.append(value)

icat_data = values

if isinstance(icat_data, dict):
icat_data = icat_data[field_name]

return icat_data


class PaNOSCAttribute(ABC, BaseModel):
Expand Down

0 comments on commit 98f9157

Please sign in to comment.