from auth.auth_view import RegisteredAuthorizedView from global_search.services.global_search_service import GlobalSearchService from global_search.schemas import ( GlobalSearchResponse, global_search_query_params, global_search_response_schema ) from flask_apispec import marshal_with, doc, use_kwargs @doc(tags=['GlobalSearch']) class SearchView(RegisteredAuthorizedView): search_service = GlobalSearchService() @doc(description='Get global search response by search text') @use_kwargs(global_search_query_params, location='query') @marshal_with(global_search_response_schema, code=200, description='Global search response') @marshal_with(schema=None, code=401, description='User is not authenticated') def get(self, params) -> GlobalSearchResponse: return self.search_service.get_search_results(params=params)