Source code for ecstask.osp_eventhandler_v2.utilities.payload_validator

from marshmallow import fields, Schema, validate, EXCLUDE


[docs]class PickedSkuBarcodes(Schema):
[docs] class Meta: unknown = EXCLUDE
retailerSkuId = fields.String(required=True, validate=validate.Length(min=1, error="Field retailerSkuId should not be empty.")) barcodes = fields.List(fields.String, required=True)
[docs]class Substitutions(Schema):
[docs] class Meta: unknown = EXCLUDE
quantityPicked = fields.Float(required=True) productId = fields.String(required=True, validate=validate.Length(min=1, error="Field should not be empty.")) barcodes = fields.List(fields.String, required=True) productType = fields.String(required=False, validate=validate.Length(min=1, error="Field productType should not be empty.")) pickedSkuBarcodes = fields.List(fields.Nested(PickedSkuBarcodes), required=False)
[docs]class PickTaskSchema(Schema): """Marshmallow schema for validating Picktask payload. Everything except substitutions are mandatory fields for payload to be uploaded to SNS """
[docs] class Meta: unknown = EXCLUDE
quantityPicked = fields.Float(required=True) productId = fields.String(required=True, validate=validate.Length(min=1, error="Field productId should not be empty.")) requestedRetailerSkuId = fields.String(required=False, validate=validate.Length(min=1, error="Field requestedRetailerSkuId should not be empty.")) pickedSkuBarcodes = fields.List(fields.Nested(PickedSkuBarcodes), required=False) pickTaskId = fields.String(required=True, validate=validate.Length(min=1, error="Field pickTaskId should not be empty.")) orderId = fields.String(required=True, validate=validate.Length(min=1, error="Field orderId should not be empty.")) pickLocationId = fields.String(required=False) siteId = fields.String(required=True, validate=validate.Length(min=1, error="Field siteId should not be empty.")) quantityOrdered = fields.Float(required=True) barcodes = fields.List(fields.String, required=True) productType = fields.String(required=False, validate=validate.Length(min=1, error="Field productType should not be empty.")) timestamp = fields.String(required=True) substitutions = fields.List(fields.Nested(Substitutions), required=True) eventId = fields.String(required=True, validate=validate.Length(min=1, error="Field eventId should not be empty."))
pick_task_schema = PickTaskSchema(unknown=EXCLUDE)