Files
enviPy-bayer/bayer/views.py
Tim Lorsbach ca0508d96a More on PES
2026-04-15 21:14:47 +02:00

60 lines
1.7 KiB
Python

import requests
from django.conf import settings as s
from django.http import HttpResponse
from pydantic import BaseModel
from utilities.chem import FormatConverter
class PES(BaseModel):
pass
def fetch_pes(request, pes_url) -> dict:
proxies = {
"http": "http://10.185.190.100:8080",
"https": "http://10.185.190.100:8080",
}
from epauth.views import get_access_token_from_request
token = get_access_token_from_request(request)
if token:
for k, v in s.PES_API_MAPPING.items():
if pes_url.startsWith(k):
pes_id = pes_url.split('/')[-1]
headers = {"Authorization": f"Bearer {token['access_token']}"}
params = {"pes_reg_entity_corporate_id": pes_id}
res = requests.get(v, headers=headers, params=params, proxies=proxies)
try:
res.raise_for_status()
pes_data = res.json()
if len(pes_data) == 0:
raise ValueError(f"PES with id {pes_id} not found")
res_data = pes_data[0]
res_data["pes_url"] = pes_url
return res_data
except requests.exceptions.HTTPError as e:
raise ValueError(f"Error fetching PES with id {pes_id}: {e}")
else:
raise ValueError(f"Unknown URL {pes_url}")
else:
raise ValueError("Could not fetch access token from request.")
def visualize_pes(request):
pes_link = request.GET.get('pesLink')
if pes_link:
pes_data = fetch_pes(request, pes_link)
print(pes_data)
return HttpResponse(
FormatConverter.to_png("c1ccccc1"), content_type="image/png"
)