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}"