35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from supabase import create_client, Client
|
|
import os
|
|
from dotenv import load_dotenv
|
|
from infra.db import PostgresConnection
|
|
|
|
load_dotenv()
|
|
|
|
class Database:
|
|
def __init__(self):
|
|
uri: str = os.getenv('SUPABASE_URI')
|
|
if not uri:
|
|
raise ValueError("SUPABASE_URI environment variable is not set")
|
|
|
|
# Parse URI to get URL and key
|
|
# Format: postgresql://postgres:[YOUR-PASSWORD]@db.[YOUR-PROJECT-REF].supabase.co:5432/postgres
|
|
parts = uri.split('@')
|
|
if len(parts) != 2:
|
|
raise ValueError("Invalid SUPABASE_URI format")
|
|
|
|
# Extract project reference from the host
|
|
host = parts[1].split(':')[0]
|
|
project_ref = host.split('.')[1]
|
|
|
|
# Construct Supabase URL and key
|
|
url = f"https://{project_ref}.supabase.co"
|
|
key = os.getenv('SUPABASE_KEY') # Still need the anon key for API access
|
|
|
|
if not key:
|
|
raise ValueError("SUPABASE_KEY environment variable is not set")
|
|
|
|
self.supabase: Client = create_client(url, key)
|
|
|
|
class BaseRepository:
|
|
def __init__(self):
|
|
self.db = PostgresConnection() |