def get_collection_items(collection_id, start=0, limit=100):
url = f'{BASE_URL}/collections/{collection_id}/items?start={start}&limit={limit}'
logger.debug(f"Fetching collection items from URL: {url}")
response = requests.get(url, headers=headers)
response.raise_for_status()
return response.json(), int(response.headers.get('Total-Results', 0))
def get_item_children(item_key):
url = f'{BASE_URL}/items/{item_key}/children'
logger.debug(f"Fetching children for item {item_key} from URL: {url}")
response = requests.get(url, headers=headers)
if response.status_code == 404:
logger.error(f"Error: Parent item {item_key} not found.")
return []
response.raise_for_status()
return response.json()
def download_pdf(attachment_key, filename):
url = f'{BASE_URL}/items/{attachment_key}/file'
logger.debug(f"Downloading PDF from URL: {url} with filename: {filename}")
try:
response = requests.get(url, headers=headers, stream=True)
except requests.exceptions.RequestException as e:
logger.error(f"Request failed for URL: {url} with error: {e}")
return
if response.status_code == 404:
logger.error(f"Error: Attachment {attachment_key} not found at URL: {url}")
return
response.raise_for_status()
file_path = os.path.join(OUTPUT_DIR, filename)
logger.debug(f"Saving PDF to file path: {file_path}")
with open(file_path, 'wb') as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
logger.info(f'Downloaded {filename}')