Skip to content
This repository was archived by the owner on Sep 16, 2022. It is now read-only.

Commit 934f759

Browse files
author
Hannu Kamarainen
committed
CSCMETAX-407: [ADD] Query parameter to filter datasets by field metadata_owner_org
1 parent 2fbcd7c commit 934f759

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

src/metax_api/services/catalog_record_service.py

+3
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ def get_queryset_search_params(cls, request):
7272
if request.query_params.get('editor', False):
7373
queryset_search_params['editor__contains'] = { 'identifier': request.query_params['editor'] }
7474

75+
if request.query_params.get('metadata_owner_org', False):
76+
queryset_search_params['metadata_owner_org'] = request.query_params['metadata_owner_org']
77+
7578
if request.query_params.get('contract_org_identifier', False):
7679
if request.user.username not in ('metax', 'tpas'):
7780
raise Http403({ 'detail': ['query parameter pas_filter is restricted']})

src/metax_api/tests/api/rest/base/views/datasets/read.py

+9
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,15 @@ def test_read_catalog_record_search_by_editor(self):
384384
response = self.client.get('/rest/datasets')
385385
self.assertNotEqual(response.data['count'], qvain_records_count, 'looks like filtering had no effect')
386386

387+
def test_read_catalog_record_search_by_metadata_owner_org(self):
388+
metadata_owner_org = 'org_id'
389+
for cr in CatalogRecord.objects.filter(pk__in=[1, 2, 3]):
390+
cr.metadata_owner_org = metadata_owner_org
391+
cr.force_save()
392+
response = self.client.get('/rest/datasets?metadata_owner_org=%s' % metadata_owner_org)
393+
self.assertEqual(response.status_code, status.HTTP_200_OK)
394+
self.assertEqual(len(response.data['results']), 3)
395+
387396
def test_filter_by_contract_org_identifier(self):
388397
"""
389398
Test filtering by contract_org_identifier, which matches using iregex

swagger/swagger.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -711,6 +711,11 @@ paths:
711711
description: TPAS state (field preservation_state). multiple states using OR-logic are queriable in the same request, e.g. state=5,6. see valid values from http://iow.csc.fi/model/mrd/CatalogRecord/ field preservation_state
712712
required: false
713713
type: string
714+
- name: metadata_owner_org
715+
in: query
716+
description: Filter by dataset field metadata_owner_org
717+
required: false
718+
type: string
714719
- name: contract_org_identifier
715720
in: query
716721
description: Filter by dataset contract.contract_json.organization.organization_identifier. Restricted to permitted users.

0 commit comments

Comments
 (0)