Skip to content

Commit 435d9ad

Browse files
committed
field_doc_component param for get_manifestation, fixing #2
1 parent 3407dca commit 435d9ad

File tree

5 files changed

+27
-6
lines changed

5 files changed

+27
-6
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,6 @@ https://www.freud-edition.net/jsonapi/node/werk?filter[field_titel.value]=Über
5050
this ID can be taken from edit-url, e.g. https://www.freud-edition.net/node/51190/edit
5151

5252
https://www.freud-edition.net/jsonapi/node/manifestation?filter[drupal_internal__nid]=51190
53+
54+
https://www.freud-edition.net/jsonapi/node/manifestation?filter[drupal_internal__nid]=38946
55+
https://www.freud-edition.net/node/38946/edit

freud_api_crawler/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
__author__ = """Peter Andorfer"""
44
__email__ = '[email protected]'
5-
__version__ = '1.1.1'
5+
__version__ = '1.2.0'

freud_api_crawler/freud_api_crawler.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
FRD_WORK_LIST = "https://www.freud-edition.net/jsonapi/node/werk?filter[field_status_umschrift]=2"
1515
FRD_USER = os.environ.get('FRD_USER', False)
1616
FRD_PW = os.environ.get('FRD_PW', False)
17+
FULL_MANIFEST = "228361d0-4cda-4805-a2f8-a05ee58119b6"
1718

1819

1920
def get_auth_items(username, password):
@@ -145,7 +146,7 @@ def get_werk(self):
145146
""" returns the werk json as python dict
146147
147148
:return: a Werk representation
148-
:rtrype: dict
149+
:rtype: dict
149150
"""
150151
r = requests.get(
151152
self.ep,
@@ -155,9 +156,20 @@ def get_werk(self):
155156
result = r.json()
156157
return result
157158

158-
def get_manifestations(self):
159+
def get_manifestations(self, field_doc_component=None):
160+
""" retuns a list of dicts of related manifestation
161+
:param field_doc_component: Either `None` or the id of the taxanomy-term id
162+
:type werk_id: str/bool
163+
164+
:return: A list of dicts with ids and titles of the related manifestations
165+
:rtype: list
166+
"""
159167
man_col = []
160-
url = f"{self.manifestation_ep}{self.filtered_url}&fields[node--manifestation]=id,title"
168+
fields_param = "fields[node--manifestation]=id,title"
169+
if field_doc_component is not None:
170+
url = f"{self.manifestation_ep}{self.filtered_url}&{fields_param}&filter[field_doc_component.id]={field_doc_component}" # noqa: E501
171+
else:
172+
url = f"{self.manifestation_ep}{self.filtered_url}&{fields_param}"
161173
next_page = True
162174
while next_page:
163175
print(url)

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,6 @@
6262
test_suite='tests',
6363
tests_require=test_requirements,
6464
url='https://github.com/acdh-oeaw/freud_api_crawler',
65-
version='1.1.1',
65+
version='1.2.0',
6666
zip_safe=False,
6767
)

tests/test_freud_api_crawler.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,16 @@ def test_014_check_tei_serialiazer(self):
141141
print(type(xml), type(xml_str))
142142
self.assertTrue(frd_obj.manifestation_id in xml_str)
143143

144-
def test_015_yiel_works(self):
144+
def test_015_yield_works(self):
145145
yielder = frd.yield_works(frd.FRD_WORK_LIST)
146146
self.assertIsInstance(yielder, types.GeneratorType)
147147

148+
def test_016_filter_man_by_type(self):
149+
werk = FRD_WERK
150+
all_man = werk.get_manifestations()
151+
full_man = werk.get_manifestations(field_doc_component=frd.FULL_MANIFEST)
152+
self.assertTrue(len(all_man) > len(full_man))
153+
148154
def test_command_line_interface(self):
149155
"""Test the CLI."""
150156
runner = CliRunner()

0 commit comments

Comments
 (0)