from flask import request, g from auth.auth_view import AuthorizedView from campaigns.exceptions import CampaignNotFound from campaigns.services.campaigns_service import CampaignsService from services.recent_search.recent_search_service import RecentSearchesService from shared.validators import validate_UUID class UnassignedProjectsCampaignDetailsView(AuthorizedView): service = CampaignsService() recent_search_service = RecentSearchesService() def get(self, project_id, campaign_uuid): self.permissions.can_view_unassigned_project(project_id) validate_UUID(campaign_uuid) campaign = self.service.get_unassigned_project_campaign_detail(campaign_uuid, project_id) if not campaign: raise CampaignNotFound() self.recent_search_service.track_opened_campaign_details(campaign_uuid, g.user_id, request.args) return campaign