class _ProductProjectionSearchSchema(
        traits.SortableSchema,
        traits.PagingSchema,
        traits.PriceSelectingSchema,
        traits.ExpandableSchema,
):
    fuzzy = fields.Bool(required=False, missing=False)
    fuzzy_level = fields.Int(data_key="fuzzyLevel", required=False)
    mark_matching_variants = fields.Bool(data_key="markMatchingVariants",
                                         missing=False)
    staged = fields.Bool(required=False, missing=False)
    filter = OptionalList(fields.String(), required=False)
    filter_facets = OptionalList(fields.String(),
                                 data_key="filter.facets",
                                 required=False)
    filter_query = OptionalList(fields.String(),
                                data_key="filter.query",
                                required=False)
    facet = OptionalList(fields.String(), required=False)
    text = fields.Dict()

    @marshmallow.post_dump
    def _text_post_dump(self, data, **kwrags):
        values = data.pop("text")
        if not values:
            return data
        for key, val in values.items():
            data[f"text.{key}"] = val
        return data

    @marshmallow.pre_load
    def _text_post_load(self, data, **kwrags):
        items = {}
        for key in list(data.keys()):
            if key.startswith("text."):
                items[key[5:]] = data[key]
                del data[key]
        data["text"] = items
        return data
Пример #2
0
class QuerySchema(marshmallow.Schema, RemoveEmptyValuesMixin):
    where = OptionalList(fields.String(), required=False)
    predicate_var = fields.Dict()

    @marshmallow.post_dump
    def _predicate_var_post_dump(self, data, **kwrags):
        values = data.pop("predicate_var")
        if not values:
            return data
        for key, val in values.items():
            data[f"var.{key}"] = val
        return data

    @marshmallow.pre_load
    def _predicate_var_post_load(self, data, **kwrags):
        items = {}
        for key in list(data.keys()):
            if key.startswith("var."):
                items[key[4:]] = data[key]
                del data[key]
        data["predicate_var"] = items
        return data
Пример #3
0
class PriceSelectingSchema(marshmallow.Schema, RemoveEmptyValuesMixin):
    price_currency = OptionalList(fields.String(),
                                  data_key="priceCurrency",
                                  required=False)
    price_country = OptionalList(fields.String(),
                                 data_key="priceCountry",
                                 required=False)
    price_customer_group = OptionalList(fields.String(),
                                        data_key="priceCustomerGroup",
                                        required=False)
    price_channel = OptionalList(fields.String(),
                                 data_key="priceChannel",
                                 required=False)
    locale_projection = OptionalList(fields.String(),
                                     data_key="localeProjection",
                                     required=False)
    store_projection = OptionalList(fields.String(),
                                    data_key="storeProjection",
                                    required=False)
Пример #4
0
class _ShippingMethodMatching_LocationSchema(traits.ExpandableSchema):
    country = OptionalList(fields.String())
    state = OptionalList(fields.String(), required=False)
    currency = OptionalList(fields.String(), required=False)
Пример #5
0
class _ShippingMethodMatching_CartSchema(traits.ExpandableSchema):
    cart_id = OptionalList(fields.String(), data_key="cartId")
Пример #6
0
class AbstractDeleteSchema(Schema, RemoveEmptyValuesMixin):
    version = fields.Integer()
    expand = OptionalList(fields.String())
class _CustomObjectDeleteSchema(traits.DataErasureSchema,
                                traits.VersionedSchema,
                                traits.ExpandableSchema):
    version = OptionalList(fields.String(), required=False)
Пример #8
0
class ExpandableSchema(marshmallow.Schema, RemoveEmptyValuesMixin):
    expand = OptionalList(fields.String(), required=False)
Пример #9
0
class SortableSchema(marshmallow.Schema, RemoveEmptyValuesMixin):
    sort = OptionalList(fields.String(), required=False)