from flask import g from auth.auth_view import RegisteredAuthorizedView from projects.services.projects_service import ProjectsService from flask_apispec import marshal_with, doc, use_kwargs from projects.schemas import newly_added_projects_query_param, newly_added_projects_response_schema @doc(tags=["Project"]) class NewlyAddedProjectsView(RegisteredAuthorizedView): project_service = ProjectsService() @doc(description='Newly added projects') @use_kwargs(newly_added_projects_query_param, location='query') @marshal_with(schema=None, code=401, description='User is not authenticated.') @marshal_with(schema=None, code=403, description='User not have access to the label') @marshal_with( newly_added_projects_response_schema(many=True), code=200, description='Newly added projects list' ) def get(self, params): if params.label: self.permissions.can_access_label(params.label) return self.project_service.get_newly_added_projects(params, g.user_id)