CoolFace
Apppublic

Bishall10/ipo

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
serializers.py50 linesDownload Raw Back to automation
1from rest_framework import serializers2from .models import Account, ApplicationLog, FCMToken3from .encryption import encrypt_password4 5 6class FCMTokenSerializer(serializers.ModelSerializer):7    class Meta:8        model = FCMToken9        fields = ['token', 'device_id']10 11 12class AccountSerializer(serializers.ModelSerializer):13    # Accept plain password on write, never return it on read14    meroshare_pass = serializers.CharField(write_only=True, required=False)15 16    class Meta:17        model = Account18        fields = [19            'id', 'meroshare_user', 'meroshare_pass', 'dp_name',20            'crn', 'tpin', 'bank_name', 'owner_name',21            'kitta', 'is_active', 'last_applied', 'boid'22        ]23        read_only_fields = ['owner', 'last_applied']24 25    def create(self, validated_data):26        plain = validated_data.pop('meroshare_pass', None)27        instance = Account(**validated_data)28        if plain:29            instance.set_meroshare_pass(plain)30        instance.save()31        return instance32 33    def update(self, instance, validated_data):34        plain = validated_data.pop('meroshare_pass', None)35        for attr, value in validated_data.items():36            setattr(instance, attr, value)37        if plain:38            instance.set_meroshare_pass(plain)39        instance.save()40        return instance41 42 43class ApplicationLogSerializer(serializers.ModelSerializer):44    account_user = serializers.CharField(source='account.meroshare_user', read_only=True)45    owner_name = serializers.CharField(source='account.owner_name', read_only=True)46 47    class Meta:48        model = ApplicationLog49        fields = ['id', 'account', 'account_user', 'owner_name', 'company_name', 'status', 'remark', 'is_read', 'timestamp']50