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 recent_viewed_projects_query_param, recent_viewed_projects_response_schema @doc(tags=["Project"]) class RecentViewedProjectsView(RegisteredAuthorizedView): project_service = ProjectsService() @doc(description='Retrieve recent viewed projects') @use_kwargs(recent_viewed_projects_query_param, location='query') @marshal_with(schema=None, code=401, description='User is not authenticated.') @marshal_with( recent_viewed_projects_response_schema(many=True), code=200, description='Recent viewed projects list' ) def get(self, params): return self.project_service.get_recent_viewed_projects(params, g.user_id)