Added updatePassword view, added exception handler, added friends view

This commit is contained in:
ITQ
2024-03-03 18:13:59 +03:00
parent 18f66344bb
commit 20e6e512d2
9 changed files with 169 additions and 57 deletions
+32 -1
View File
@@ -1,6 +1,7 @@
from django.core.validators import RegexValidator
from rest_framework import serializers
from api.users.models import Profile
from api.users.models import Friendship, Profile
class ProfileSerializer(serializers.ModelSerializer):
@@ -29,6 +30,14 @@ class UpdateProfileSerializer(serializers.ModelSerializer):
"image",
]
def to_representation(self, instance):
data = super().to_representation(instance)
if data["image"] is None:
del data["image"]
if data["phone"] is None:
del data["phone"]
return data
class PublicProfileSerializer(serializers.ModelSerializer):
class Meta:
@@ -49,3 +58,25 @@ class PublicProfileSerializer(serializers.ModelSerializer):
if data["phone"] is None:
del data["phone"]
return data
class FriendshipSerializer(serializers.ModelSerializer):
login = serializers.SerializerMethodField()
class Meta:
model = Friendship
fields = ["login", "addedAt"]
def get_login(self, obj):
return obj.to_profile.login
class PasswordChangeSerializer(serializers.Serializer):
# ruff: noqa: N815
oldPassword = serializers.CharField(required=True)
newPassword = serializers.CharField(
required=True,
validators=[
RegexValidator(r"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).{6,100}$"),
],
)