from flask import request, g from auth.auth_view import AuthorizedView from campaigns.exceptions import CampaignNotFound from campaigns.services.unassigned_campaign_service import UnassignedCampaignsService from services.recent_search.recent_search_service import RecentSearchesService from shared.validators import validate_UUID class UnassignedCampaignDetailView(AuthorizedView): service = UnassignedCampaignsService() recent_search_service = RecentSearchesService() def get(self, campaign_uuid): validate_UUID(campaign_uuid) self.permissions.can_access_unassigned_campaign(campaign_uuid) campaign = self.service.get_campaign_detail(campaign_uuid=campaign_uuid) if not campaign: raise CampaignNotFound() self.recent_search_service.track_opened_campaign_details(campaign_uuid, g.user_id, request.args) return campaign