@@ -32,18 +32,28 @@ def validate_deprecated(self, input: TermsAgreementInput) -> None:
32
32
raise Unauthenticated ()
33
33
34
34
def validate (self , input : TermsAgreementInput ) -> None :
35
- if not input .business_email :
36
- raise ValidationError ("Email is required" )
37
- if not input .name :
38
- raise ValidationError ("Name is required" )
39
35
if not self .current_user .is_authenticated :
40
36
raise Unauthenticated ()
41
37
42
- def update_terms_agreement (self , input : TermsAgreementInput ) -> None :
38
+ def update_terms_agreement_deprecated (self , input : TermsAgreementInput ) -> None :
43
39
self .current_user .terms_agreement = input .terms_agreement
44
40
self .current_user .terms_agreement_at = timezone .now ()
41
+ self .current_user .customer_intent = input .customer_intent
45
42
self .current_user .email_opt_in = input .marketing_consent
43
+ self .current_user .save ()
44
+
45
+ if input .business_email and input .business_email != "" :
46
+ self .current_user .email = input .business_email
47
+ self .current_user .save ()
48
+
49
+ if input .marketing_consent :
50
+ self .send_data_to_marketo ()
51
+
52
+ def update_terms_agreement (self , input : TermsAgreementInput ) -> None :
53
+ self .current_user .terms_agreement = input .terms_agreement
54
+ self .current_user .terms_agreement_at = timezone .now ()
46
55
self .current_user .name = input .name
56
+ self .current_user .email_opt_in = input .marketing_consent
47
57
self .current_user .save ()
48
58
49
59
if input .business_email and input .business_email != "" :
@@ -61,15 +71,22 @@ def send_data_to_marketo(self) -> None:
61
71
62
72
@sync_to_async
63
73
def execute (self , input : Any ) -> None :
64
- typed_input = TermsAgreementInput (
65
- business_email = input .get ("business_email" , "" ),
66
- terms_agreement = input .get ("terms_agreement" , False ),
67
- marketing_consent = input .get ("marketing_consent" , False ),
68
- customer_intent = input .get ("customer_intent" ),
69
- name = input .get ("name" , "" ),
70
- )
71
- if input .get ("customer_intent" ):
72
- self .validate_deprecated (typed_input )
73
- else :
74
+ if input .get ("name" ):
75
+ typed_input = TermsAgreementInput (
76
+ business_email = input .get ("business_email" ),
77
+ terms_agreement = input .get ("terms_agreement" ),
78
+ marketing_consent = input .get ("marketing_consent" ),
79
+ name = input .get ("name" ),
80
+ )
74
81
self .validate (typed_input )
75
- return self .update_terms_agreement (typed_input )
82
+ self .update_terms_agreement (typed_input )
83
+ # this handles the deprecated inputs
84
+ else :
85
+ typed_input = TermsAgreementInput (
86
+ business_email = input .get ("business_email" ),
87
+ terms_agreement = input .get ("terms_agreement" ),
88
+ marketing_consent = input .get ("marketing_consent" ),
89
+ customer_intent = input .get ("customer_intent" ),
90
+ )
91
+ self .validate_deprecated (typed_input )
92
+ self .update_terms_agreement_deprecated (typed_input )
0 commit comments