class FileSchema(Schema):
    """Schema for records v1 in JSON."""
    class Meta:
        """Meta class to reject unknown fields."""

        unknown = EXCLUDE

    key = SanitizedUnicode(dump_only=True)
    created = Str(dump_only=True)
    updated = Str(dump_only=True)

    status = GenMethod('dump_status')

    metadata = Dict(dump_only=True)

    checksum = Str(dump_only=True, attribute='file.checksum')
    storage_class = Str(dump_only=True, attribute='file.storage_class')
    mimetype = Str(dump_only=True, attribute='file.mimetype')
    size = Number(attribute='file.size')
    version_id = UUID(attribute='file.version_id')
    file_id = UUID(attribute='file.file_id')
    bucket_id = UUID(attribute='file.bucket_id')

    links = Links()

    def dump_status(self, obj):
        """Dump file status."""
        return 'completed' if obj.file else 'pending'
Beispiel #2
0
class SubjectSchema(Schema):
    """Schema for records v1 in JSON."""
    class Meta:
        """Meta class to reject unknown fields."""

        unknown = EXCLUDE

    id = fields.Str()
    metadata = fields.Nested(MetadataSchema)
    created = fields.Str()
    updated = fields.Str()
    links = Links()
    revision_id = fields.Integer(dump_only=True)
Beispiel #3
0
class BaseRecordSchema(Schema):
    """Schema for records v1 in JSON."""

    id = fields.Str()
    created = fields.Str(dump_only=True)
    updated = fields.Str(dump_only=True)
    links = Links(dump_only=True)
    revision_id = fields.Integer(dump_only=True)

    @pre_load
    def clean(self, data, **kwargs):
        """Removes dump_only fields."""
        data.pop('created', None)
        data.pop('updated', None)
        data.pop('links', None)
        data.pop('revision_id', None)
        return data
class BaseRecordSchema(Schema):
    """Schema for records v1 in JSON."""

    id = fields.Str()
    created = TZDateTime(timezone=timezone.utc, format='iso', dump_only=True)
    updated = TZDateTime(timezone=timezone.utc, format='iso', dump_only=True)
    links = Links(dump_only=True)
    revision_id = fields.Integer(dump_only=True)

    @pre_load
    def clean(self, data, **kwargs):
        """Removes dump_only fields.

        Why: We want to allow the output of a Schema dump, to be a valid input
             to a Schema load without causing strange issues.
        """
        for name, field in self.fields.items():
            if field.dump_only:
                data.pop(name, None)
        return data
Beispiel #5
0
class FileSchema(Schema):
    """Service schema for files."""

    key = SanitizedUnicode(dump_only=True)
    created = TZDateTime(timezone=timezone.utc, format='iso', dump_only=True)
    updated = TZDateTime(timezone=timezone.utc, format='iso', dump_only=True)

    status = GenMethod('dump_status')

    metadata = Dict(dump_only=True)

    checksum = Str(dump_only=True, attribute='file.checksum')
    storage_class = Str(dump_only=True, attribute='file.storage_class')
    mimetype = Str(dump_only=True, attribute='file.mimetype')
    size = Number(attribute='file.size')
    version_id = UUID(attribute='file.version_id')
    file_id = UUID(attribute='file.file_id')
    bucket_id = UUID(attribute='file.bucket_id')

    links = Links()

    def dump_status(self, obj):
        """Dump file status."""
        return 'completed' if obj.file else 'pending'
class SearchLinks(Schema):
    """Search links schema."""

    links = Links()
class FilesLinks(Schema):
    """Search links schema."""

    links = Links()