"""子客服专用:派单模板 / 链接(代理商家 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)