from pydantic import BaseModel from dotenv import load_dotenv from supabase import create_client from functools import lru_cache import os @lru_cache(maxsize=1) class Supabase_Settings(BaseModel): SUPABASE_URL: str = os.getenv("SUPABASE_URL") SUPABASE_ANON_KEY: str = os.getenv("SUPABASE_ANON_KEY") SUPABASE_SERVICE_KEY: str = os.getenv("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") return "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.", # )