Source code for pangea.contrib.omnisearch.views
import structlog
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework.exceptions import ValidationError
from .search import omni_search
logger = structlog.get_logger(__name__)
[docs]@api_view(['GET'])
def get_omnisearch(request):
"""Return samples with taxa results that fuzzy match the query."""
query = request.query_params.get('query', None)
if query is None:
logger.warn('omnisearch_search__no_query_param')
raise ValidationError(_('Must provide URL-encoded `query` query parameter.'))
results = omni_search(query)
logger.info(f'omnisearch_search__responding_to_query', query=query)
return Response({'results': results})