from flask import g, request from auth.auth_view import AuthorizedView from utils.handlers import get_request_model from services.recent_search.recent_search_service import RecentSearchesService from projects.services.unclaimed_project_service import UnclaimedProjectsService from projects.schemas import UpdateProjectParams from projects.services.project_history_service import ProjectHistoryService class UnclaimedProjectDetailView(AuthorizedView): service = UnclaimedProjectsService() recent_search_service = RecentSearchesService() project_history_service = ProjectHistoryService() def get(self, project_id): self.permissions.can_access_project(project_id) self.recent_search_service.track_opened_project_details(project_id, g.user_id, request.args) return self.service.get_unclaimed_project_detail(project_id) def post(self, project_id): self.permissions.can_claim_project(project_id) params = get_request_model(UpdateProjectParams) return self.service.claim_project(project_id, params)