Files
boss_dp/server/api/scripts.py
2026-02-26 01:27:35 +08:00

54 lines
1.7 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- 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
from server.core.response import api_success, api_error
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)
return api_success(ChatScriptSerializer(qs, many=True).data)
ser = ChatScriptSerializer(data=request.data)
ser.is_valid(raise_exception=True)
ser.save()
return api_success(ser.data, http_status=status.HTTP_201_CREATED)
@api_view(["GET", "PUT", "DELETE"])
def script_detail(request, pk):
try:
obj = ChatScript.objects.get(pk=pk)
except ChatScript.DoesNotExist:
return api_error(status.HTTP_404_NOT_FOUND, "话术不存在")
if request.method == "GET":
return api_success(ChatScriptSerializer(obj).data)
if request.method == "PUT":
ser = ChatScriptSerializer(obj, data=request.data, partial=True)
ser.is_valid(raise_exception=True)
ser.save()
return api_success(ser.data)
obj.delete()
return api_success(msg="话术已删除")