2026-02-14 17:58:29 +08:00
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
"""
|
|
|
|
|
|
复聊话术 API(需要登录):
|
|
|
|
|
|
- GET /api/scripts -> 查询所有话术
|
|
|
|
|
|
- POST /api/scripts -> 创建话术
|
|
|
|
|
|
- GET /api/scripts/{id} -> 查询单个话术
|
|
|
|
|
|
- PUT /api/scripts/{id} -> 更新话术
|
|
|
|
|
|
- DELETE /api/scripts/{id} -> 删除话术
|
|
|
|
|
|
"""
|
|
|
|
|
|
from rest_framework import status
|
|
|
|
|
|
from rest_framework.decorators import api_view
|
|
|
|
|
|
|
2026-02-26 01:27:35 +08:00
|
|
|
|
from server.core.response import api_success, api_error
|
2026-02-14 17:58:29 +08:00
|
|
|
|
from server.models import ChatScript
|
|
|
|
|
|
from server.serializers import ChatScriptSerializer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@api_view(["GET", "POST"])
|
|
|
|
|
|
def script_list(request):
|
|
|
|
|
|
if request.method == "GET":
|
|
|
|
|
|
position = request.query_params.get("position")
|
|
|
|
|
|
script_type = request.query_params.get("script_type")
|
|
|
|
|
|
qs = ChatScript.objects.all().order_by("-updated_at")
|
|
|
|
|
|
if position:
|
|
|
|
|
|
qs = qs.filter(position=position)
|
|
|
|
|
|
if script_type:
|
|
|
|
|
|
qs = qs.filter(script_type=script_type)
|
2026-02-26 01:27:35 +08:00
|
|
|
|
return api_success(ChatScriptSerializer(qs, many=True).data)
|
2026-02-14 17:58:29 +08:00
|
|
|
|
|
|
|
|
|
|
ser = ChatScriptSerializer(data=request.data)
|
|
|
|
|
|
ser.is_valid(raise_exception=True)
|
|
|
|
|
|
ser.save()
|
2026-02-26 01:27:35 +08:00
|
|
|
|
return api_success(ser.data, http_status=status.HTTP_201_CREATED)
|
2026-02-14 17:58:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@api_view(["GET", "PUT", "DELETE"])
|
|
|
|
|
|
def script_detail(request, pk):
|
|
|
|
|
|
try:
|
|
|
|
|
|
obj = ChatScript.objects.get(pk=pk)
|
|
|
|
|
|
except ChatScript.DoesNotExist:
|
2026-02-26 01:27:35 +08:00
|
|
|
|
return api_error(status.HTTP_404_NOT_FOUND, "话术不存在")
|
2026-02-14 17:58:29 +08:00
|
|
|
|
|
|
|
|
|
|
if request.method == "GET":
|
2026-02-26 01:27:35 +08:00
|
|
|
|
return api_success(ChatScriptSerializer(obj).data)
|
2026-02-14 17:58:29 +08:00
|
|
|
|
|
|
|
|
|
|
if request.method == "PUT":
|
|
|
|
|
|
ser = ChatScriptSerializer(obj, data=request.data, partial=True)
|
|
|
|
|
|
ser.is_valid(raise_exception=True)
|
|
|
|
|
|
ser.save()
|
2026-02-26 01:27:35 +08:00
|
|
|
|
return api_success(ser.data)
|
2026-02-14 17:58:29 +08:00
|
|
|
|
|
|
|
|
|
|
obj.delete()
|
2026-02-26 01:27:35 +08:00
|
|
|
|
return api_success(msg="话术已删除")
|