import logging from rest_framework.response import Response from rest_framework.permissions import IsAuthenticated from rest_framework.exceptions import PermissionDenied from django.utils.translation import gettext as _ from pingcap_sso.api.base import Endpoint from pingcap_sso.api.exceptions import Conflict from pingcap_sso.forms.tug import ( ApplicationForm ) logger = logging.getLogger(__name__) class ApplicationEndpoint(Endpoint): permission_classes = (IsAuthenticated, ) def post(self, request, *args, **kwargs): user = request.user if user.is_tug_member: return Response({ 'detail': _('you are already a TUG member, no need to apply again') }, status=409) if user.has_tug_memeber_pending_application: return Response({ 'detail': _('your membership application is under review, please do not submit information repeatedly') }, status=409) form = ApplicationForm(request=request, user=user, data=request.data) if not form.is_valid(): return Response({ 'detail': _('params error'), 'errors': form.errors }, status=400) form.save() return Response({ 'detail': _('success') })