Skip to content

Commit 7e02008

Browse files
authored
Merge pull request #223 from PROCOLLAB-github/dev
delete password from tilda data & refactoring
2 parents 9875d23 + 1a0ce91 commit 7e02008

1 file changed

Lines changed: 41 additions & 43 deletions

File tree

partner_programs/views.py

Lines changed: 41 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -67,30 +67,31 @@ class PartnerProgramCreateUserAndRegister(generics.GenericAPIView):
6767
serializer_class = PartnerProgramNewUserSerializer
6868

6969
def post(self, request, *args, **kwargs):
70+
data = request.data
71+
# tilda cringe
72+
if data.get("test") == "test":
73+
return Response(status=status.HTTP_200_OK)
74+
7075
try:
7176
program = PartnerProgram.objects.get(pk=kwargs["pk"])
72-
data = request.data
73-
# tilda cringe
74-
if data.get("test") == "test":
75-
return Response(status=status.HTTP_200_OK)
76-
user_fields = (
77-
# "email",
78-
# "password",
79-
"first_name",
80-
"last_name",
81-
"patronymic",
82-
"city",
77+
except PartnerProgram.DoesNotExist:
78+
return Response(status=status.HTTP_404_NOT_FOUND)
79+
80+
# tilda cringe
81+
email = data.get("email") if data.get("email") else data.get("email_")
82+
if not email:
83+
return Response(
84+
data={"detail": "You need to pass an email address."},
85+
status=status.HTTP_400_BAD_REQUEST,
8386
)
84-
# cringe tilda
85-
email = data.get("email")
86-
if not email:
87-
email = data.get("email_")
88-
if not email:
89-
return Response(
90-
data={"detail": "You need to pass an email address."},
91-
status=status.HTTP_400_BAD_REQUEST,
92-
)
9387

88+
user_fields = (
89+
"first_name",
90+
"last_name",
91+
"patronymic",
92+
"city",
93+
)
94+
try:
9495
user = User.objects.create(
9596
**{field_name: data.get(field_name, "") for field_name in user_fields},
9697
birthday=date_to_iso(data.get("birthday", "01-01-1900")),
@@ -99,35 +100,32 @@ def post(self, request, *args, **kwargs):
99100
verification_date=timezone.now(), # bypass ClickUp verification
100101
email=email,
101102
)
102-
# fixme: какое же дерьмо в этой вьюшке творится, извините я поправлю после дедлайна
103-
password = data.get("password")
104-
if not password:
105-
return Response(
106-
data={"detail": "You need to pass a password."},
107-
status=status.HTTP_400_BAD_REQUEST,
108-
)
109-
user.set_password(password)
110-
user.save()
111-
112-
user_profile_program_data = {
113-
field_name: data.get(field_name)
114-
for field_name in data
115-
if field_name not in user_fields
116-
}
117-
PartnerProgramUserProfile.objects.create(
118-
partner_program_data=user_profile_program_data,
119-
user=user,
120-
partner_program=program,
121-
)
122-
return Response(status=status.HTTP_201_CREATED)
123-
except PartnerProgram.DoesNotExist:
124-
return Response(status=status.HTTP_404_NOT_FOUND)
125103
except IntegrityError:
126104
return Response(
127105
data={"detail": "User with this email already exists."},
128106
status=status.HTTP_400_BAD_REQUEST,
129107
)
130108

109+
password = data.get("password")
110+
del data["password"]
111+
if not password:
112+
return Response(
113+
data={"detail": "You need to pass a password."},
114+
status=status.HTTP_400_BAD_REQUEST,
115+
)
116+
user.set_password(password)
117+
user.save()
118+
119+
user_profile_program_data = {
120+
k: v for k, v in data.items() if k not in user_fields
121+
}
122+
PartnerProgramUserProfile.objects.create(
123+
partner_program_data=user_profile_program_data,
124+
user=user,
125+
partner_program=program,
126+
)
127+
return Response(status=status.HTTP_201_CREATED)
128+
131129
def get(self, request, *args, **kwargs):
132130
return Response(status=status.HTTP_200_OK)
133131

0 commit comments

Comments
 (0)