Files
Django/merchant_ops/views_templates.py

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)