src/notes/api/fields/category.py
author ymh <ymh.work@gmail.com>
Fri, 04 Aug 2017 10:46:17 +0200
changeset 139 d3738ac909d8
parent 133 6f3078f7fd47
child 142 56850f5c73f6
permissions -rw-r--r--
provide a realistic default protocol
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
133
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
'''
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
field serializing and deserializing metacategorization protocols
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
'''
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
import logging
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
139
d3738ac909d8 provide a realistic default protocol
ymh <ymh.work@gmail.com>
parents: 133
diff changeset
     6
from notes import settings
133
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
from rest_framework import serializers
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
logger = logging.getLogger(__name__)
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
class ProtocolField(serializers.Field):
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    def get_attribute(self, obj):
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        logger.debug("ProtocolField.get_attribute %r", obj)
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
        # We pass the object instance onto `to_representation`,
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        # not just the field attribute.
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
        return obj
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    def to_representation(self, obj):
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        logger.debug("ProtocolField.to_representation %r", obj)
139
d3738ac909d8 provide a realistic default protocol
ymh <ymh.work@gmail.com>
parents: 133
diff changeset
    21
        return settings.NOTES_SETTINGS['PROTOCOL']
133
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    def to_internal_value(self, data):
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        logger.debug("ProtocolField.to_internal_value %r", data)
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        return "base protocol"
6f3078f7fd47 Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26