Skip to content

Commit 03f674f

Browse files
committed
delete password from tilda data & refactoring
1 parent 9875d23 commit 03f674f

1 file changed

Lines changed: 47 additions & 44 deletions

File tree

partner_programs/views.py

Lines changed: 47 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -67,30 +67,32 @@ 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",
83-
)
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-
)
77+
except PartnerProgram.DoesNotExist:
78+
return Response(status=status.HTTP_404_NOT_FOUND)
9379

80+
81+
# tilda cringe
82+
email = data.get("email") if data.get("email") else data.get("email_")
83+
if not email:
84+
return Response(
85+
data={"detail": "You need to pass an email address."},
86+
status=status.HTTP_400_BAD_REQUEST,
87+
)
88+
89+
user_fields = (
90+
"first_name",
91+
"last_name",
92+
"patronymic",
93+
"city",
94+
)
95+
try:
9496
user = User.objects.create(
9597
**{field_name: data.get(field_name, "") for field_name in user_fields},
9698
birthday=date_to_iso(data.get("birthday", "01-01-1900")),
@@ -99,34 +101,35 @@ def post(self, request, *args, **kwargs):
99101
verification_date=timezone.now(), # bypass ClickUp verification
100102
email=email,
101103
)
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)
125104
except IntegrityError:
126105
return Response(
127106
data={"detail": "User with this email already exists."},
128107
status=status.HTTP_400_BAD_REQUEST,
129108
)
109+
110+
password = data.get("password")
111+
del data["password"]
112+
if not password:
113+
return Response(
114+
data={"detail": "You need to pass a password."},
115+
status=status.HTTP_400_BAD_REQUEST,
116+
)
117+
user.set_password(password)
118+
user.save()
119+
120+
user_profile_program_data = {
121+
k: v
122+
for k, v in data.items()
123+
if k not in user_fields
124+
}
125+
PartnerProgramUserProfile.objects.create(
126+
partner_program_data=user_profile_program_data,
127+
user=user,
128+
partner_program=program,
129+
)
130+
return Response(status=status.HTTP_201_CREATED)
131+
132+
130133

131134
def get(self, request, *args, **kwargs):
132135
return Response(status=status.HTTP_200_OK)

0 commit comments

Comments
 (0)