fix: исправление флоу добавления каналов после workspaces

This commit is contained in:
Artem Tsyrulnikov
2025-12-13 22:36:33 +03:00
parent af32e2a507
commit 3cb3da4dbe
16 changed files with 526 additions and 143 deletions

View File

@@ -20,10 +20,10 @@ from .creative.create_creative import create_creative
from .creative.delete_creative import delete_creative
from .creative.get_creative import get_creative
from .creative.get_creatives import get_creatives
from .creative.handle_creative_callback import handle_creative_callback
from .creative.handle_creative_text_input import handle_creative_text_input
from .creative.handle_creative_workspace_callback import handle_creative_workspace_callback
from .creative.start_creative_creation import start_creative_creation
from .creative.tg_create_creative_1 import tg_create_creative_1
from .creative.tg_create_creative_2 import tg_create_creative_2
from .creative.tg_create_creative_3 import tg_create_creative_3
from .creative.tg_create_creative_4 import tg_create_creative_4
from .creative.update_creative import update_creative
from .external_channel.create_external_channel import create_external_channel
from .external_channel.delete_external_channel import delete_external_channel
@@ -37,9 +37,10 @@ from .placement.get_placements import get_placements
from .placement.update_placement import update_placement
from .subscription.handle_subscription import handle_subscription
from .subscription.handle_unsubscription import handle_unsubscription
from .target_channel.connect_target_chan import connect_target_chan
from .target_channel.disconnect_target_chan_by_tg_id import disconnect_target_chan_by_tg_id
from .target_channel.get_user_target_chans import get_user_target_chans
from .target_channel.tg_add_target_chan_1 import tg_add_target_chan_1
from .target_channel.tg_add_target_chan_2 import tg_add_target_chan_2
from .target_channel.update_target_chan_permissions import update_target_chan_permissions
from .views.get_views_history import get_views_history
from .workspace.create_workspace import create_workspace
@@ -214,11 +215,26 @@ class Usecase:
return workspace
async def get_or_create_personal_workspace(self, user: domain.User) -> domain.Workspace:
workspace = await self.database.get_default_workspace_for_user(user.id)
if workspace:
return workspace
workspace_name = user.username or f'Workspace {user.telegram_id}'
workspace = domain.Workspace(name=workspace_name)
async with self.database.transaction():
await self.database.create_workspace(workspace)
await self.database.add_user_to_workspace(workspace.id, user.id)
return workspace
validate_login_token = validate_login_token
telegram_login = telegram_login
telegram_start = telegram_start
get_me = get_me
connect_target_chan = connect_target_chan
tg_add_target_chan_1 = tg_add_target_chan_1
tg_add_target_chan_2 = tg_add_target_chan_2
get_user_target_chans = get_user_target_chans
disconnect_target_chan_by_tg_id = disconnect_target_chan_by_tg_id
update_target_chan_permissions = update_target_chan_permissions
@@ -232,10 +248,10 @@ class Usecase:
create_creative = create_creative
update_creative = update_creative
delete_creative = delete_creative
start_creative_creation = start_creative_creation
handle_creative_callback = handle_creative_callback
handle_creative_workspace_callback = handle_creative_workspace_callback
handle_creative_text_input = handle_creative_text_input
tg_create_creative_1 = tg_create_creative_1
tg_create_creative_2 = tg_create_creative_2
tg_create_creative_3 = tg_create_creative_3
tg_create_creative_4 = tg_create_creative_4
get_placements = get_placements
get_placement = get_placement
create_placement = create_placement