90 lines
2.8 KiB
Python
90 lines
2.8 KiB
Python
"""子客服专用:派单模板 / 链接(代理商家 config 接口,校验权限,不修改原 /peizhi/*)。"""
|
|
from rest_framework.permissions import IsAuthenticated
|
|
from rest_framework.response import Response
|
|
from rest_framework.views import APIView
|
|
|
|
from config.views import (
|
|
ShangjiaMobanListView,
|
|
ShangjiaTianjiaMobanView,
|
|
ShangjiaGengxinMobanView,
|
|
ShangjiaShanchuMobanView,
|
|
ShangjiaGenerateLinkView,
|
|
ShangjiaLianjieListView,
|
|
)
|
|
from merchant_ops.helpers import proxy_as_merchant_user
|
|
from merchant_ops.services.authz import StaffAuthError, get_active_staff_member, member_has_perm
|
|
from merchant_ops.views_manage import _err
|
|
|
|
|
|
def _require_staff(request):
|
|
member = get_active_staff_member(request.user)
|
|
if not member:
|
|
raise StaffAuthError(403, '非有效子客服')
|
|
return member
|
|
|
|
|
|
class StaffTemplateListView(APIView):
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def post(self, request):
|
|
try:
|
|
member = _require_staff(request)
|
|
return proxy_as_merchant_user(request, member, ShangjiaMobanListView, 'template_manage')
|
|
except Exception as e:
|
|
return _err(e)
|
|
|
|
|
|
class StaffTemplateCreateView(APIView):
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def post(self, request):
|
|
try:
|
|
member = _require_staff(request)
|
|
return proxy_as_merchant_user(request, member, ShangjiaTianjiaMobanView, 'template_manage')
|
|
except Exception as e:
|
|
return _err(e)
|
|
|
|
|
|
class StaffTemplateUpdateView(APIView):
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def post(self, request):
|
|
try:
|
|
member = _require_staff(request)
|
|
return proxy_as_merchant_user(request, member, ShangjiaGengxinMobanView, 'template_manage')
|
|
except Exception as e:
|
|
return _err(e)
|
|
|
|
|
|
class StaffTemplateDeleteView(APIView):
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def post(self, request):
|
|
try:
|
|
member = _require_staff(request)
|
|
return proxy_as_merchant_user(request, member, ShangjiaShanchuMobanView, 'template_manage')
|
|
except Exception as e:
|
|
return _err(e)
|
|
|
|
|
|
class StaffLinkGenerateView(APIView):
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def post(self, request):
|
|
try:
|
|
member = _require_staff(request)
|
|
return proxy_as_merchant_user(request, member, ShangjiaGenerateLinkView, 'order_dispatch')
|
|
except Exception as e:
|
|
return _err(e)
|
|
|
|
|
|
class StaffLinkListView(APIView):
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def post(self, request):
|
|
try:
|
|
member = _require_staff(request)
|
|
return proxy_as_merchant_user(request, member, ShangjiaLianjieListView, 'order_dispatch')
|
|
except Exception as e:
|
|
return _err(e)
|