from auth.auth_view import RegisteredAuthorizedView from campaigns.services.unassigned_campaign_service import UnassignedCampaignsService from campaigns.schemas import manage_external_campaigns_request_model from flask_apispec import marshal_with, doc, use_kwargs @doc(tags=['AssigningCampaigns']) class ManageExternalCampaigns(RegisteredAuthorizedView): service = UnassignedCampaignsService() @doc(description='Assign/Unassign Campaigns') @use_kwargs(manage_external_campaigns_request_model) @marshal_with(schema=None, code=204) @marshal_with(schema=None, code=401, description='User is not authenticated.') @marshal_with(schema=None, code=403, description='Forbidden because of permissions.') def post(self, params, project_id: int): self.permissions.can_assign_campaign_to_project(project_id) self.service.manage_external_campaigns( project_id, params.assign_campaigns_uuids, params.unassign_campaigns_uuids ) return self.no_content()