-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Currently, the ValidationVisitor does not contain state for errors.
An AssertionError is raised for invalid client-submitted data. For example:
{
"title": "Person",
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"age": {
"type": "integer",
"minimum": 0
}
},
"required": ["firstName"]
}from aptos.visitors import ValidationVisitor
record.accept(ValidationVisitor({'age': -5'})) # raises an `AssertionError`The previous example contains two validation errors:
- Age is not a non-negative integer
firstNameis not provided
If the ValidationVisitor contained state, then it could potentially accumulate error messages.
For example:
class ValidationVisitor:
def __init__(self, instance):
self.instance = instance
self.errors = []
def visit_string(self, string):
instance = self.instance
if self.maxLength:
if not (len(instance) <= string.maxLength):
self.errors.append('<error message>')import logging
from aptos.visitors import ValidationVisitor
errors = record.accept(ValidationVisitor({'age': -5}))
if errors:
logging.error(errors)Reactions are currently unavailable