Source code for parseur.schemas.webhook
from marshmallow import fields, post_load, pre_load, validate
from parseur.event import ParseurEvent
from parseur.schemas import BaseSchema
[docs]class WebhookSchema(BaseSchema):
[docs] id = fields.Int(required=True)
[docs] category = fields.String(required=True)
[docs] event = fields.String(
required=True,
validate=validate.OneOf([e.value for e in ParseurEvent]),
)
[docs] target = fields.String(required=True)
[docs] name = fields.String(allow_none=True)
@pre_load
[docs] def normalize_empty_fields(self, data, **kwargs):
if "headers" in data and data["headers"] == "":
data["headers"] = None
if "name" in data and data["name"] == "":
data["name"] = None
return data
@post_load
@post_load
[docs] def default_empty_name(self, data, **kwargs):
if data.get("name") is None:
data["name"] = ""
return data