from auth.auth_view import RegisteredAuthorizedView from campaigns.services.unassigned_campaign_service import UnassignedCampaignsService from campaigns.schemas import unassigned_campaigns_request_model, campaigns_tab_response_schema from flask_apispec import marshal_with, use_kwargs, doc @doc(tags=['AssignableCampaignsView']) class AssignableCampaignsView(RegisteredAuthorizedView): service = UnassignedCampaignsService() @doc(description='Retrieve list of assignable campaigns') @use_kwargs(unassigned_campaigns_request_model, location='query') @marshal_with(campaigns_tab_response_schema, code=200, description='JSON with assignable campaigns.') @marshal_with(None, code=401, description='User is not authenticated.') def get(self, params, project_id: int): self.permissions.can_access_project(project_id) return self.service.get_unassigned_campaigns(project_id=project_id, params=params)