This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
devicehub-teal/ereuse_devicehub/resources/documents/schemas.py
Cayo Puigdefabregas 0d73bb1f63 Build action moveOn
2021-09-03 16:06:53 +02:00

56 lines
2.7 KiB
Python

from marshmallow.fields import DateTime, Integer, validate, Boolean, Float
from marshmallow import post_load
from marshmallow.validate import Range
from teal.marshmallow import SanitizedStr, URL
from ereuse_devicehub.marshmallow import NestedOn
from ereuse_devicehub.resources.schemas import Thing
from ereuse_devicehub.resources.tradedocument.models import TradeDocument
from ereuse_devicehub.resources.documents import models as m
class DataWipeDocument(Thing):
__doc__ = m.DataWipeDocument.__doc__
id = Integer(description=m.DataWipeDocument.id.comment, dump_only=True)
url = URL(required= False, description=m.DataWipeDocument.url.comment)
success = Boolean(required=False, default=False, description=m.DataWipeDocument.success.comment)
software = SanitizedStr(description=m.DataWipeDocument.software.comment)
date = DateTime(data_key='endTime',
required=False,
description=m.DataWipeDocument.date.comment)
id_document = SanitizedStr(data_key='documentId',
required=False,
default='',
description=m.DataWipeDocument.id_document.comment)
file_name = SanitizedStr(data_key='filename',
default='',
description=m.DataWipeDocument.file_name.comment,
validate=validate.Length(max=100))
file_hash = SanitizedStr(data_key='hash',
default='',
description=m.DataWipeDocument.file_hash.comment,
validate=validate.Length(max=64))
@post_load
def get_trade_document(self, data):
data['document_type'] = 'DataWipeDocument'
# class RecycleDocument(Thing):
# __doc__ = m.RecycleDocument.__doc__
# file_hash = SanitizedStr(data_key='hash',
# default='',
# description=m.RecycleDocument.file_hash.comment,
# validate=validate.Length(max=64))
# weight = Float(required=False, validate=Range(0.1), description=m.RecycleDocument.weight.comment)
# lot = NestedOn('Lot', only_query='id', description=m.RecycleDocument.lot.__doc__)
# @post_load
# def get_trade_document(self, data):
# tradedocument = TradeDocument.query.filter_by(file_hash=data['file_hash']).one()
# data['trade_document_id'] = tradedocument.id
# data['file_name'] = tradedocument.file_name
# data['date'] = tradedocument.date
# data['id_document'] = tradedocument.id_document
# data['url'] = tradedocument.url
# data['document_type'] = 'RecycleDocument'