from dataclasses import dataclass from audience_common.auth.account import Account from campaigns.auth.dtos import User from campaigns.connectors.db import Database, session_context from campaigns.core.handler import Handler from campaigns.meta.models import FacebookPage from campaigns.meta.services import FacebookPageService @dataclass(frozen=True) class GetFacebookUserPageForLabelRequest: user: User page_id: str account: Account @dataclass class GetFacebookUserPageForLabelHandler( Handler[GetFacebookUserPageForLabelRequest, FacebookPage], ): db: Database facebook_page_service: FacebookPageService @session_context(in_transaction=False) async def handle(self, request: GetFacebookUserPageForLabelRequest) -> FacebookPage: return await self.facebook_page_service.get_user_page_for_label( user=request.user, page_id=request.page_id, account=request.account )