from rest_framework.response import Response from rest_framework.permissions import AllowAny from django.utils.translation import gettext as _ from pingcap_sso.api.base import Endpoint from pingcap_sso.api.authentication import CsrfExemptSessionAuthentication from pingcap_sso.forms import ContactUsForm, BusinessDownloadLeadsForm from pingcap_sso.user_behavior_track import report_event from pingcap_sso.utils.requests import get_client_ip, get_client_agent class ContactUsEndpoint(Endpoint): permission_classes = (AllowAny, ) authentication_classes = (CsrfExemptSessionAuthentication, ) def post(self, request, *args, **kwargs): form = ContactUsForm(user=request.user, data=request.data) if form.is_valid(): contact_us = form.save() report_event( openid=contact_us.user_openid, event_type='sso.submit_contact_us', event_body={ 'object_id': contact_us.pk, 'name': contact_us.name, 'company': contact_us.company, 'department': contact_us.department }, user_agent=get_client_agent(request), ip=get_client_ip(request), description='提交了 ContactUs' ) return Response({ 'detail': _('success') }) else: return Response({ 'detail': _('params error'), 'errors': form.errors }, status=400) class BusinessDownloadLeadsEndpoint(Endpoint): permission_classes = (AllowAny, ) authentication_classes = (CsrfExemptSessionAuthentication, ) def post(self, request, *args, **kwargs): form = BusinessDownloadLeadsForm(request, data=request.data) if form.is_valid(): form.save() return Response({ 'detail': _('success') }) else: return Response({ 'detail': _('params error'), 'errors': form.errors }, status=400)