Source code for restapi.models

"""
Extension of input and output Schemas and Fields
"""

from typing import Any

from marshmallow import pre_load, validate
from webargs.flaskparser import parser

from restapi.models import fields
from restapi.models.schema import GET_SCHEMA_KEY, Neo4jSchema, PartialSchema, Schema
from restapi.types import FlaskRequest

__all__ = [
    "fields",
    "GET_SCHEMA_KEY",
    "Neo4jSchema",
    "pre_load",
    "Schema",
    "PartialSchema",
    "validate",
]


# ISO 8601 format with Zulu time (default format for Javascript Date)
ISO8601UTC = "%Y-%m-%dT%H:%M:%S.%fZ"


[docs] @parser.location_loader("body") def load_data(request: FlaskRequest, schema: Schema) -> Any: # Return json if it is not None, otherwise it will send form # No merge is allowed here return request.get_json(silent=True) or request.form