from pydantic_settings import BaseSettings from dotenv import load_dotenv from supabase import create_client from functools import lru_cache import os from google.colab import userdata load_dotenv() @lru_cache(maxsize=1) class Supabase_Settings(BaseSettings): # keys: BaseSettings = Keys() SUPABASE_URL: str = userdata.get("SUPABASE_URL") SUPABASE_ANON_KEY: str = userdata.get("SUPABASE_ANON_KEY") SUPABASE_SERVICE_KEY: str = userdata.get("SUPABASE_SERVICE_KEY") @lru_cache(maxsize=1) class Supabase_Clients: values = Supabase_Settings() anon_supabase = create_client(values.SUPABASE_URL, values.SUPABASE_ANON_KEY) service_supabase = create_client(values.SUPABASE_URL, values.SUPABASE_SERVICE_KEY) def AuthUser_Validator(apitoken: str): supabase_clients = Supabase_Clients() settings = Supabase_Settings() supabase = supabase_clients.anon_supabase try: user = supabase.auth.get_user(apitoken) print(user.user.id) return str(user.user.id) except Exception as e: print("Exceptional error") if apitoken == settings.SUPABASE_ANON_KEY: return "Exceptional error" raise HTTPException( status_code=401, detail=f"invalid Api Token: unable to parse or verify signature, signing method (alg) is unavailable.", )