lmb-fe/functions.py
2026-02-22 19:40:07 +01:00

71 lines
No EOL
2.2 KiB
Python

import json
from typing import Any, Dict, List, Union
import requests
import pandas as pd
import streamlit as st
def echa_request(cas_num: str) -> Dict[str, Any]:
url = 'https://api.cosmoguard.it/api/v1/echa/search'
response = requests.post(url, json={'cas': cas_num})
data = response.json()
if data['success'] == True:
return data['data']
else:
return data['error']
def cosing_request(cas_num: str) -> Dict[str, Any]:
url = 'https://api.cosmoguard.it/api/v1/cosing/search'
response = requests.post(url, json={
"full": True,
"mode": "cas",
"text": cas_num
})
data = response.json()
if data['success'] == True:
return data['data']
else:
return data['error']
def generate_pdf_download(cas, origin, link):
url = 'https://api.cosmoguard.it/api/v1/common/generate-pdf'
name = f'{cas}_{origin}'
if link is not None:
response = requests.post(
url,
json = {
'link': link,
'name': name
}
)
data = response.json()
else:
data = {
'success': False,
'error': 'No dossier exists for this origin.'
}
if data['success'] == True:
url = f'https://api.cosmoguard.it/api/v1/common/download-pdf/{name}'
response = requests.get(url)
response.raise_for_status()
return response.content
else:
return data['error']
def cosing_download(ref_no: str):
url = f'https://api.tech.ec.europa.eu/cosing20/1.0/api/cosmetics/{ref_no}/export-pdf'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:147.0) Gecko/20100101 Firefox/147.0',
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'it-IT,it;q=0.9',
'Cache-Control': 'No-Cache',
'Origin': 'https://ec.europa.eu',
'Referer': 'https://ec.europa.eu/',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-site',
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.content
else:
return f"Error: {response.status_code} - {response.text}"