Merge pull request #227 from taigaio/issue/2098-search_error
HTTP 404 for calls to search api with a wront project_idremotes/origin/enhancement/email-actions
commit
dcb98e7c23
|
@ -20,6 +20,7 @@ from rest_framework.response import Response
|
|||
from rest_framework import viewsets
|
||||
|
||||
from taiga.base import exceptions as excp
|
||||
from taiga.base.api.utils import get_object_or_404
|
||||
from taiga.projects.userstories.serializers import UserStorySerializer
|
||||
from taiga.projects.tasks.serializers import TaskSerializer
|
||||
from taiga.projects.issues.serializers import IssueSerializer
|
||||
|
@ -31,15 +32,10 @@ from . import services
|
|||
|
||||
class SearchViewSet(viewsets.ViewSet):
|
||||
def list(self, request, **kwargs):
|
||||
project_model = apps.get_model("projects", "Project")
|
||||
|
||||
text = request.QUERY_PARAMS.get('text', "")
|
||||
project_id = request.QUERY_PARAMS.get('project', None)
|
||||
|
||||
try:
|
||||
project = self._get_project(project_id)
|
||||
except (project_model.DoesNotExist, TypeError):
|
||||
raise excp.PermissionDenied({"detail": "Wrong project id"})
|
||||
project = self._get_project(project_id)
|
||||
|
||||
result = {}
|
||||
if user_has_perm(request.user, "view_us", project):
|
||||
|
@ -56,7 +52,7 @@ class SearchViewSet(viewsets.ViewSet):
|
|||
|
||||
def _get_project(self, project_id):
|
||||
project_model = apps.get_model("projects", "Project")
|
||||
return project_model.objects.get(pk=project_id)
|
||||
return get_object_or_404(project_model, pk=project_id)
|
||||
|
||||
def _search_user_stories(self, project, text):
|
||||
queryset = services.search_user_stories(project, text)
|
||||
|
|
|
@ -130,3 +130,13 @@ def test_search_text_query_in_my_project(client, searches_initial_data):
|
|||
assert len(response.data["tasks"]) == 1
|
||||
assert len(response.data["issues"]) == 0
|
||||
assert len(response.data["wikipages"]) == 0
|
||||
|
||||
|
||||
def test_search_text_query_with_an_invalid_project_id(client, searches_initial_data):
|
||||
data = searches_initial_data
|
||||
|
||||
client.login(data.member1.user)
|
||||
|
||||
response = client.get(reverse("search-list"), {"project": "new", "text": "future"})
|
||||
assert response.status_code == 404
|
||||
|
||||
|
|
Loading…
Reference in New Issue