Beispiel #1
0
class DisruptionSerializer(PbNestedSerializer):
    id = jsonschema.Field(schema_type=str, display_none=True, attr='uri')

    disruption_id = jsonschema.Field(schema_type=str, attr='disruption_uri')
    impact_id = jsonschema.Field(schema_type=str, attr='uri')
    title = (jsonschema.Field(schema_type=str), )
    application_periods = PeriodSerializer(many=True)
    status = EnumField(attr='status', pb_type=ActiveStatus)
    updated_at = DateTimeField()
    tags = StringListField(display_none=False)
    cause = jsonschema.Field(schema_type=str, display_none=True)
    category = jsonschema.MethodField(schema_type=str, display_none=False)

    def get_category(self, obj):
        if obj.HasField(str("category")) and obj.category:
            return obj.category
        return None

    severity = SeveritySerializer()
    messages = MessageSerializer(many=True)
    impacted_objects = ImpactedSerializer(many=True, display_none=False)
    uri = jsonschema.Field(schema_type=str, attr='uri')
    disruption_uri = jsonschema.Field(schema_type=str)
    contributor = jsonschema.Field(schema_type=str, display_none=True)
    properties = DisruptionPropertySerializer(many=True, display_none=False)
Beispiel #2
0
class CurrentAvailabilitySerializer(PbNestedSerializer):
    status = EnumField(
        pb_type=CurrentAvailability.EquipmentStatus, display_none=False, required=False  # type: ignore
    )
    periods = PeriodSerializer(many=True, display_none=False, required=False)
    updated_at = base.PbStrField(display_none=False, required=False)
    cause = CauseSerializer(display_none=False, required=False)
    effect = EffectSerializer(display_none=False, required=False)