Exemplo n.º 1
0
class FareSerializer(PbNestedSerializer):
    found = jsonschema.BoolField()
    total = CostSerializer()
    links = jsonschema.MethodField(schema_type=LinkSchema(many=True),
                                   attr='ticket_id',
                                   display_none=True)

    def get_links(self, obj):
        if not hasattr(obj, 'ticket_id'):
            return []

        return [
            create_internal_link(id=value, rel='tickets', _type='ticket')
            for value in obj.ticket_id
        ]

    # TODO check that retro compatibility is really useful
    def to_value(self, value):
        if value is None:
            return {
                'found': False,
                'links': [],
                'total': {
                    'currency': '',
                    'value': '0.0'
                }
            }
        return super(FareSerializer, self).to_value(value)
Exemplo n.º 2
0
class TicketSerializer(PbNestedSerializer):
    id = jsonschema.Field(schema_type=str, display_none=True, description='Identifier of the object')
    name = jsonschema.Field(schema_type=str, display_none=True, description='Name of the object')
    comment = jsonschema.Field(schema_type=str)
    found = jsonschema.BoolField()
    cost = CostSerializer()
    links = jsonschema.MethodField(schema_type=LinkSchema(many=True))

    def get_links(self, obj):
        if not hasattr(obj, 'section_id'):
            return None

        return [create_internal_link(id=value, rel='sections', _type='section') for value in obj.section_id]