mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
73 lines
2.6 KiB
Python
73 lines
2.6 KiB
Python
import requests
|
||
import json
|
||
|
||
TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1EUTRNRU5GUTBVNU9FUXpOelk1TVRFME0wUkdOMFpFUkRoR1JVVkJNVGMxT1RFNFJERXlPQSJ9.eyJodHRwOi8vZW1haWwiOiJzZWJhc3RpYW5Ab3Ntb3Npcy1hY2QuY29tIiwiaHR0cDovL2NsdWsudG9rZW4vbGFzdFBhc3N3b3JkQ2hhbmdlIjoiMjAyNS0wOC0yNlQwOTo1NDoyNi4zMjZaIiwiaHR0cDovL2NsdWsudG9rZW4vY29ubmVjdGlvbiI6ImVUZWNoSUQiLCJodHRwOi8vY2x1ay50b2tlbi9zdHJhdGVneSI6ImF1dGgwIiwiaHR0cDovL2NsdWsudG9rZW4vc3RyYXRlZ3lUeXBlIjoiZGF0YWJhc2UiLCJpc3MiOiJodHRwczovL2V0ZWNoaWQuZXUuYXV0aDAuY29tLyIsInN1YiI6ImF1dGgwfDY4YWQ4NDUyZDI2YzI1ZmMyMzkwZmYxYSIsImF1ZCI6WyJodHRwczovL3Bhc2h1Yi5hcGkuZXRlY2gubmV0IiwiaHR0cHM6Ly9ldGVjaGlkLmV1LmF1dGgwLmNvbS91c2VyaW5mbyJdLCJpYXQiOjE3NzQyODczOTMsImV4cCI6MTc3NDI5NDU5Mywic2NvcGUiOiJvcGVuaWQiLCJhenAiOiJEaVp6d3VVaTVkVmozOXR3NG00bWZ6emZvRm5MdmVLZyJ9.NHh21XfnRofsFkRkc-28Dz-vQAdY70lXkEmh-Mzz7Fg6gjDbZeMu7PnBwgbDP_U8r6R0mI_pDIUc1MzJe1Rf5SF2-RV36TcGzmVzb3ek9wPsy3lxST5WL-vn-qUJ7GsZiGOeQ-jDLLFn8b8tjFrD7BGv8uphrfYAbPDm0atznkdbUSQQy-rfRJWhisnDtHf99j96TuJz3dV4bfI6VGrin-jezbg6BCvUYWQtttUs7knQKEWO0sGGDxtS29sbn4MX8Jqz4-hf6N2XSlgv52aIDwTVX-lyMWzfoeuIGhvCKuDiJeVw2c0r2UZFpHqjnfhXcb0_aacukXe8z-srj8-Rdw"
|
||
|
||
base = "https://pashub.net/api"
|
||
|
||
headers = {"Authorization": f"Bearer {TOKEN}", "Accept": "application/json"}
|
||
|
||
company_id = "cb5249e2-8f31-4ef4-aefd-08ddaccb1fa2"
|
||
|
||
# 1️⃣ get jobs
|
||
params = {
|
||
"pageIndex": 0,
|
||
"pageSize": 20,
|
||
"orderBy": "createdUtc",
|
||
"orderDesc": "true",
|
||
"addressUprn": "100061885568",
|
||
"companyId": company_id,
|
||
}
|
||
|
||
r = requests.get(f"{base}/jobs", headers=headers, params=params)
|
||
|
||
payload = r.json()
|
||
|
||
property_id = payload["results"][0]["id"]
|
||
|
||
print("JOB:", property_id)
|
||
|
||
# 2️⃣ get evidence list
|
||
r = requests.get(f"{base}/jobs/{property_id}/evidence", headers=headers)
|
||
|
||
print(r.status_code)
|
||
|
||
evidence = r.json()
|
||
|
||
print(evidence)
|
||
|
||
|
||
# 3️⃣ get evidence metadata
|
||
|
||
if evidence:
|
||
evidence_id = evidence["results"][0]["fileId"]
|
||
|
||
meta_url = f"https://pashub.net/api/jobs/{property_id}/evidenceMetadata"
|
||
|
||
meta_params = {"evidenceIds": evidence_id}
|
||
|
||
r = requests.get(meta_url, headers=headers, params=meta_params)
|
||
r.raise_for_status()
|
||
|
||
meta = r.json()
|
||
|
||
container = meta["containerName"]
|
||
blob_uri = meta["blobUri"]
|
||
|
||
file = meta["files"][0]
|
||
file_id = file["fileId"]
|
||
file_name = file["fileName"]
|
||
|
||
base, sas = blob_uri.split("?", 1)
|
||
|
||
download_url = f"{base}{container}/{file_id}?{sas}"
|
||
|
||
print("Download URL:", download_url)
|
||
|
||
pdf = requests.get(download_url)
|
||
pdf.raise_for_status()
|
||
|
||
with open(file_name, "wb") as f:
|
||
f.write(pdf.content)
|
||
|
||
print("Saved:", file_name)
|