Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 44 additions & 26 deletions src/app_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from .analytics.api_facebook_analytics import ApiFacebookAnalytics
from .analytics.api_instagram_analytics import ApiInstagramAnalytics
from .config_manager import ConfigManager
from .consts import IS_LOCAL
from .db.db_client import DBClient
from .drive.drive_client import GoogleDriveClient
from .facebook.facebook_client import FacebookClient
Expand Down Expand Up @@ -32,41 +33,58 @@ def __init__(
return

self.config_manager = config_manager
self.sheets_client = GoogleSheetsClient(
sheets_config=config_manager.get_sheets_config()
)

# Local SQLite clients - always initialize
self.strings_db_client = StringsDBClient(
strings_db_config=config_manager.get_strings_db_config()
)
self.drive_client = GoogleDriveClient(
drive_config=config_manager.get_drive_config()
)
self.db_client = DBClient(db_config=config_manager.get_db_config())
self.role_manager = RoleManager(self.db_client)

if not skip_db_update:
self.strings_db_client.fetch_strings_sheet(self.sheets_client)
self.db_client.fetch_all(self.sheets_client)
self.role_manager.calculate_db_roles()
# Skip external API clients in local environment
if IS_LOCAL:
logger.info("IS_LOCAL=True, skipping external API client initialization")
self.sheets_client = None
self.drive_client = None
self.trello_client = None
self.focalboard_client = None
self.facebook_client = None
self.instagram_client = None
self.facebook_analytics = None
self.instagram_analytics = None
self.tg_client = None
self.n8n_client = None
else:
self.sheets_client = GoogleSheetsClient(
sheets_config=config_manager.get_sheets_config()
)
self.drive_client = GoogleDriveClient(
drive_config=config_manager.get_drive_config()
)

self.trello_client = TrelloClient(
trello_config=config_manager.get_trello_config()
)
self.focalboard_client = FocalboardClient(
focalboard_config=config_manager.get_focalboard_config()
)
self.facebook_client = FacebookClient(
facebook_config=config_manager.get_facebook_config()
)
self.instagram_client = InstagramClient(
facebook_config=config_manager.get_facebook_config()
)
self.facebook_analytics = ApiFacebookAnalytics(self.facebook_client)
self.instagram_analytics = ApiInstagramAnalytics(self.instagram_client)
if not skip_db_update:
self.strings_db_client.fetch_strings_sheet(self.sheets_client)
self.db_client.fetch_all(self.sheets_client)
self.role_manager.calculate_db_roles()

self.trello_client = TrelloClient(
trello_config=config_manager.get_trello_config()
)
self.focalboard_client = FocalboardClient(
focalboard_config=config_manager.get_focalboard_config()
)
self.facebook_client = FacebookClient(
facebook_config=config_manager.get_facebook_config()
)
self.instagram_client = InstagramClient(
facebook_config=config_manager.get_facebook_config()
)
self.facebook_analytics = ApiFacebookAnalytics(self.facebook_client)
self.instagram_analytics = ApiInstagramAnalytics(self.instagram_client)

self.tg_client = TgClient(tg_config=config_manager.get_telegram_config())
self.tg_client = TgClient(tg_config=config_manager.get_telegram_config())

self.n8n_client = N8nClient(n8n_config=config_manager.get_n8n_config())
self.n8n_client = N8nClient(n8n_config=config_manager.get_n8n_config())

# TODO: move that to db
tg_config = config_manager.get_telegram_config()
Expand Down