From a09d0d5171f5497b51dc444fba657ab10ff07ad7 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Wed, 7 May 2025 17:37:34 +0800 Subject: [PATCH] feat: add ProblemParagraphAPI for retrieving associated paragraphs and update routing --- apps/knowledge/api/problem.py | 6 +++++- apps/knowledge/urls.py | 1 + apps/knowledge/views/problem.py | 24 +++++++++++++++++++++++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/apps/knowledge/api/problem.py b/apps/knowledge/api/problem.py index b1a7a8321..171cd51ba 100644 --- a/apps/knowledge/api/problem.py +++ b/apps/knowledge/api/problem.py @@ -121,7 +121,11 @@ class ProblemDeleteAPI(APIMixin): return DefaultResultSerializer -class ProblemEditAPI(ProblemReadAPI): +class ProblemEditAPI(ProblemDeleteAPI): @staticmethod def get_request(): return ProblemEditSerializer + + +class ProblemParagraphAPI(ProblemDeleteAPI): + pass diff --git a/apps/knowledge/urls.py b/apps/knowledge/urls.py index 2dad0cb35..0560bb34d 100644 --- a/apps/knowledge/urls.py +++ b/apps/knowledge/urls.py @@ -34,6 +34,7 @@ urlpatterns = [ path('workspace//knowledge//problem/batch_delete', views.ProblemView.BatchDelete.as_view()), path('workspace//knowledge//problem/batch_association', views.ProblemView.BatchAssociation.as_view()), path('workspace//knowledge//problem/', views.ProblemView.Operate.as_view()), + path('workspace//knowledge//problem//paragraph', views.ProblemView.Paragraph.as_view()), path('workspace//knowledge//problem//', views.ProblemView.Page.as_view()), path('workspace//knowledge//document//', views.DocumentView.Page.as_view()), path('workspace//knowledge//', views.KnowledgeView.Page.as_view()), diff --git a/apps/knowledge/views/problem.py b/apps/knowledge/views/problem.py index 775edb993..5b5746ff7 100644 --- a/apps/knowledge/views/problem.py +++ b/apps/knowledge/views/problem.py @@ -9,7 +9,7 @@ from common.constants.permission_constants import PermissionConstants from common.result import result from common.utils.common import query_params_to_single_dict from knowledge.api.problem import ProblemReadAPI, ProblemBatchCreateAPI, BatchAssociationAPI, BatchDeleteAPI, \ - ProblemPageAPI, ProblemDeleteAPI, ProblemEditAPI + ProblemPageAPI, ProblemDeleteAPI, ProblemEditAPI, ProblemParagraphAPI from knowledge.serializers.problem import ProblemSerializers @@ -53,6 +53,28 @@ class ProblemView(APIView): data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'problem_list': request.data} ).batch()) + class Paragraph(APIView): + authentication_classes = [TokenAuth] + + @extend_schema( + summary=_('Get a list of associated paragraphs'), + description=_('Get a list of associated paragraphs'), + operation_id=_('Get a list of associated paragraphs'), + parameters=ProblemParagraphAPI.get_parameters(), + responses=ProblemParagraphAPI.get_response(), + tags=[_('Knowledge Base/Documentation/Paragraph/Question')] + ) + @has_permissions(PermissionConstants.DOCUMENT_EDIT.get_workspace_permission()) + def get(self, request: Request, workspace_id: str, knowledge_id: str, problem_id: str): + return result.success(ProblemSerializers.Operate( + data={ + **query_params_to_single_dict(request.query_params), + 'workspace_id': workspace_id, + 'knowledge_id': knowledge_id, + 'problem_id': problem_id + } + ).list_paragraph()) + class BatchAssociation(APIView): authentication_classes = [TokenAuth]