import logging from django.utils.translation import gettext as _ from django.utils import timezone from rest_framework.response import Response from rest_framework.permissions import IsAdminUser from rest_framework.exceptions import NotFound from university.api.base import Endpoint from university.models import User logger = logging.getLogger(__name__) class ListEndpoint(Endpoint): permission_classes = (IsAdminUser, ) def get(self, request, *args, **kwargs): users = User.objects.exclude(face_audit_status=User.FACE_AUDIT_NO_IMAGE).all() return Response({ 'detail': _('success'), 'data': [{ 'id': u.id, 'username': u.username, 'email': u.email, 'phone': u.phone, 'face_audit_message': u.face_audit_message, 'face_audit_status': u.face_audit_status, 'face_audit_status_display': u.get_face_audit_status_display(), 'face_handhold_image': u.face_handhold_image.private_url if u.face_handhold_image else None, 'chinese_id_card_front_image': u.chinese_id_card_front_image.private_url if u.chinese_id_card_front_image else None } for u in users] }) class AuditEndpoint(Endpoint): permission_classes = (IsAdminUser, ) def post(self, request, *args, **kwargs): data = request.data user = User.objects.get(pk=data['id']) user.face_audit_status = data['audit_status'] user.face_audit_message = data['audit_reason'] user.save(update_fields=['face_audit_status', 'face_audit_message']) return Response({'detail': _('success')})