From f7c4449ca446cf79c15ddd5fc0ce1ad6dd51a5bf Mon Sep 17 00:00:00 2001 From: davek-ai Date: Thu, 12 Jun 2025 16:23:53 -0700 Subject: [PATCH] updating credentials placement --- backend/supabase.py | 26 +++++++++++++++++++++++++- config.py | 8 ++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/backend/supabase.py b/backend/supabase.py index 72c85b2..cfb123d 100644 --- a/backend/supabase.py +++ b/backend/supabase.py @@ -8,6 +8,7 @@ from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from supabase import Client +from config import config from backend.abstract import AbstractBackend from backend.models import ( @@ -1047,12 +1048,35 @@ def delete_extension(self, ext_id: UUID) -> bool: # 3. DAOS # ---------------------------------------------------------------- def create_dao(self, new_dao: "DAOCreate") -> "DAO": + # First create the DAO payload = new_dao.model_dump(exclude_unset=True, mode="json") response = self.client.table("daos").insert(payload).execute() data = response.data or [] if not data: raise ValueError("No data returned for dao insert.") - return DAO(**data[0]) + dao = DAO(**data[0]) + + # After DAO creation, create X credentials using config values + try: + # Create new X credentials using default values from config + new_cred = XCredsCreate( + dao_id=dao.id, + consumer_key=config.twitter.default_consumer_key, + consumer_secret=config.twitter.default_consumer_secret, + client_id=config.twitter.default_client_id, + client_secret=config.twitter.default_client_secret, + access_token=config.twitter.default_access_token, + access_secret=config.twitter.default_access_secret, + username=config.twitter.default_username + ) + self.create_x_creds(new_cred) + + except Exception as e: + logger.error(f"Error creating X credentials for new DAO: {str(e)}") + # We don't raise the error here since the DAO was created successfully + # The X credentials can be added later if needed + + return dao def get_dao(self, dao_id: UUID) -> Optional["DAO"]: response = ( diff --git a/config.py b/config.py index be74098..8f1c6ab 100644 --- a/config.py +++ b/config.py @@ -22,12 +22,20 @@ class DatabaseConfig: url: str = os.getenv("AIBTC_SUPABASE_URL", "") service_key: str = os.getenv("AIBTC_SUPABASE_SERVICE_KEY", "") bucket_name: str = os.getenv("AIBTC_SUPABASE_BUCKET_NAME", "") + default_dao_id: str = os.getenv("AIBTC_DEFAULT_DAO_ID", "00000000-0000-0000-0000-000000000000") @dataclass class TwitterConfig: enabled: bool = os.getenv("AIBTC_TWITTER_ENABLED", "false").lower() == "true" interval_seconds: int = int(os.getenv("AIBTC_TWITTER_INTERVAL_SECONDS", "120")) + default_consumer_key: str = os.getenv("AIBTC_TWITTER_DEFAULT_CONSUMER_KEY", "") + default_consumer_secret: str = os.getenv("AIBTC_TWITTER_DEFAULT_CONSUMER_SECRET", "") + default_client_id: str = os.getenv("AIBTC_TWITTER_DEFAULT_CLIENT_ID", "") + default_client_secret: str = os.getenv("AIBTC_TWITTER_DEFAULT_CLIENT_SECRET", "") + default_access_token: str = os.getenv("AIBTC_TWITTER_DEFAULT_ACCESS_TOKEN", "") + default_access_secret: str = os.getenv("AIBTC_TWITTER_DEFAULT_ACCESS_SECRET", "") + default_username: str = os.getenv("AIBTC_TWITTER_DEFAULT_USERNAME", "") consumer_key: str = os.getenv("AIBTC_TWITTER_CONSUMER_KEY", "") consumer_secret: str = os.getenv("AIBTC_TWITTER_CONSUMER_SECRET", "") client_id: str = os.getenv("AIBTC_TWITTER_CLIENT_ID", "")