Skip to content

Commit 4b92200

Browse files
committed
Sync with latest api specs
1 parent 4cb8fe0 commit 4b92200

File tree

45 files changed

+1253
-1837
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1253
-1837
lines changed

src/commercetools/importapi/models/_schemas/customers.py

Lines changed: 104 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,109 @@
1919

2020

2121
# Marshmallow Schemas
22+
class CustomerAddressSchema(helpers.BaseSchema):
23+
key = marshmallow.fields.String(allow_none=True, missing=None)
24+
title = marshmallow.fields.String(
25+
allow_none=True, metadata={"omit_empty": True}, missing=None
26+
)
27+
salutation = marshmallow.fields.String(
28+
allow_none=True, metadata={"omit_empty": True}, missing=None
29+
)
30+
first_name = marshmallow.fields.String(
31+
allow_none=True,
32+
metadata={"omit_empty": True},
33+
missing=None,
34+
data_key="firstName",
35+
)
36+
last_name = marshmallow.fields.String(
37+
allow_none=True,
38+
metadata={"omit_empty": True},
39+
missing=None,
40+
data_key="lastName",
41+
)
42+
street_name = marshmallow.fields.String(
43+
allow_none=True,
44+
metadata={"omit_empty": True},
45+
missing=None,
46+
data_key="streetName",
47+
)
48+
street_number = marshmallow.fields.String(
49+
allow_none=True,
50+
metadata={"omit_empty": True},
51+
missing=None,
52+
data_key="streetNumber",
53+
)
54+
additional_street_info = marshmallow.fields.String(
55+
allow_none=True,
56+
metadata={"omit_empty": True},
57+
missing=None,
58+
data_key="additionalStreetInfo",
59+
)
60+
postal_code = marshmallow.fields.String(
61+
allow_none=True,
62+
metadata={"omit_empty": True},
63+
missing=None,
64+
data_key="postalCode",
65+
)
66+
city = marshmallow.fields.String(
67+
allow_none=True, metadata={"omit_empty": True}, missing=None
68+
)
69+
region = marshmallow.fields.String(
70+
allow_none=True, metadata={"omit_empty": True}, missing=None
71+
)
72+
state = marshmallow.fields.String(
73+
allow_none=True, metadata={"omit_empty": True}, missing=None
74+
)
75+
country = marshmallow.fields.String(allow_none=True, missing=None)
76+
company = marshmallow.fields.String(
77+
allow_none=True, metadata={"omit_empty": True}, missing=None
78+
)
79+
department = marshmallow.fields.String(
80+
allow_none=True, metadata={"omit_empty": True}, missing=None
81+
)
82+
building = marshmallow.fields.String(
83+
allow_none=True, metadata={"omit_empty": True}, missing=None
84+
)
85+
apartment = marshmallow.fields.String(
86+
allow_none=True, metadata={"omit_empty": True}, missing=None
87+
)
88+
p_o_box = marshmallow.fields.String(
89+
allow_none=True, metadata={"omit_empty": True}, missing=None, data_key="pOBox"
90+
)
91+
phone = marshmallow.fields.String(
92+
allow_none=True, metadata={"omit_empty": True}, missing=None
93+
)
94+
mobile = marshmallow.fields.String(
95+
allow_none=True, metadata={"omit_empty": True}, missing=None
96+
)
97+
email = marshmallow.fields.String(
98+
allow_none=True, metadata={"omit_empty": True}, missing=None
99+
)
100+
fax = marshmallow.fields.String(
101+
allow_none=True, metadata={"omit_empty": True}, missing=None
102+
)
103+
additional_address_info = marshmallow.fields.String(
104+
allow_none=True,
105+
metadata={"omit_empty": True},
106+
missing=None,
107+
data_key="additionalAddressInfo",
108+
)
109+
external_id = marshmallow.fields.String(
110+
allow_none=True,
111+
metadata={"omit_empty": True},
112+
missing=None,
113+
data_key="externalId",
114+
)
115+
116+
class Meta:
117+
unknown = marshmallow.EXCLUDE
118+
119+
@marshmallow.post_load
120+
def post_load(self, data, **kwargs):
121+
122+
return models.CustomerAddress(**data)
123+
124+
22125
class CustomerImportSchema(ImportResourceSchema):
23126
customer_number = marshmallow.fields.String(
24127
allow_none=True,
@@ -96,11 +199,10 @@ class CustomerImportSchema(ImportResourceSchema):
96199
data_key="customerGroup",
97200
)
98201
addresses = helpers.LazyNestedField(
99-
nested=helpers.absmod(__name__, ".common.AddressSchema"),
202+
nested=helpers.absmod(__name__, ".CustomerAddressSchema"),
100203
allow_none=True,
101204
many=True,
102205
unknown=marshmallow.EXCLUDE,
103-
metadata={"omit_empty": True},
104206
missing=None,
105207
)
106208
default_billing_address = marshmallow.fields.Integer(

src/commercetools/importapi/models/_schemas/orders.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
ShippingRateTierType,
2525
TaxCalculationMode,
2626
)
27-
from .common import ImportResourceSchema, LocalizedStringField
27+
from .common import LocalizedStringField
2828

2929
# Fields
3030

@@ -943,12 +943,9 @@ def post_load(self, data, **kwargs):
943943
return models.TaxedPrice(**data)
944944

945945

946-
class OrderImportSchema(ImportResourceSchema):
946+
class OrderImportSchema(helpers.BaseSchema):
947947
order_number = marshmallow.fields.String(
948-
allow_none=True,
949-
metadata={"omit_empty": True},
950-
missing=None,
951-
data_key="orderNumber",
948+
allow_none=True, missing=None, data_key="orderNumber"
952949
)
953950
customer = helpers.LazyNestedField(
954951
nested=helpers.absmod(__name__, ".common.CustomerKeyReferenceSchema"),

src/commercetools/importapi/models/customers.py

Lines changed: 101 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,107 @@
1313
from .common import ImportResource
1414

1515
if typing.TYPE_CHECKING:
16-
from .common import Address, CustomerGroupKeyReference, StoreKeyReference
16+
from .common import CustomerGroupKeyReference, StoreKeyReference
1717
from .customfields import Custom
1818

19-
__all__ = ["CustomerImport"]
19+
__all__ = ["CustomerAddress", "CustomerImport"]
20+
21+
22+
class CustomerAddress(_BaseType):
23+
"""Different from Address in that `key` is required and `id` is not supported."""
24+
25+
#: User-defined identifier for the address.
26+
#: It must follow the pattern [a-zA-Z0-9_\-]{2,256}, and unique per customer.
27+
key: str
28+
title: typing.Optional[str]
29+
salutation: typing.Optional[str]
30+
first_name: typing.Optional[str]
31+
last_name: typing.Optional[str]
32+
street_name: typing.Optional[str]
33+
street_number: typing.Optional[str]
34+
additional_street_info: typing.Optional[str]
35+
postal_code: typing.Optional[str]
36+
city: typing.Optional[str]
37+
region: typing.Optional[str]
38+
state: typing.Optional[str]
39+
#: A two-digit country code as per [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
40+
country: str
41+
company: typing.Optional[str]
42+
department: typing.Optional[str]
43+
building: typing.Optional[str]
44+
apartment: typing.Optional[str]
45+
p_o_box: typing.Optional[str]
46+
phone: typing.Optional[str]
47+
mobile: typing.Optional[str]
48+
email: typing.Optional[str]
49+
fax: typing.Optional[str]
50+
additional_address_info: typing.Optional[str]
51+
external_id: typing.Optional[str]
52+
53+
def __init__(
54+
self,
55+
*,
56+
key: str,
57+
title: typing.Optional[str] = None,
58+
salutation: typing.Optional[str] = None,
59+
first_name: typing.Optional[str] = None,
60+
last_name: typing.Optional[str] = None,
61+
street_name: typing.Optional[str] = None,
62+
street_number: typing.Optional[str] = None,
63+
additional_street_info: typing.Optional[str] = None,
64+
postal_code: typing.Optional[str] = None,
65+
city: typing.Optional[str] = None,
66+
region: typing.Optional[str] = None,
67+
state: typing.Optional[str] = None,
68+
country: str,
69+
company: typing.Optional[str] = None,
70+
department: typing.Optional[str] = None,
71+
building: typing.Optional[str] = None,
72+
apartment: typing.Optional[str] = None,
73+
p_o_box: typing.Optional[str] = None,
74+
phone: typing.Optional[str] = None,
75+
mobile: typing.Optional[str] = None,
76+
email: typing.Optional[str] = None,
77+
fax: typing.Optional[str] = None,
78+
additional_address_info: typing.Optional[str] = None,
79+
external_id: typing.Optional[str] = None
80+
):
81+
self.key = key
82+
self.title = title
83+
self.salutation = salutation
84+
self.first_name = first_name
85+
self.last_name = last_name
86+
self.street_name = street_name
87+
self.street_number = street_number
88+
self.additional_street_info = additional_street_info
89+
self.postal_code = postal_code
90+
self.city = city
91+
self.region = region
92+
self.state = state
93+
self.country = country
94+
self.company = company
95+
self.department = department
96+
self.building = building
97+
self.apartment = apartment
98+
self.p_o_box = p_o_box
99+
self.phone = phone
100+
self.mobile = mobile
101+
self.email = email
102+
self.fax = fax
103+
self.additional_address_info = additional_address_info
104+
self.external_id = external_id
105+
super().__init__()
106+
107+
@classmethod
108+
def deserialize(cls, data: typing.Dict[str, typing.Any]) -> "CustomerAddress":
109+
from ._schemas.customers import CustomerAddressSchema
110+
111+
return CustomerAddressSchema().load(data)
112+
113+
def serialize(self) -> typing.Dict[str, typing.Any]:
114+
from ._schemas.customers import CustomerAddressSchema
115+
116+
return CustomerAddressSchema().dump(self)
20117

21118

22119
class CustomerImport(ImportResource):
@@ -61,7 +158,7 @@ class CustomerImport(ImportResource):
61158
#: import operation state is set to `Unresolved`.
62159
customer_group: typing.Optional["CustomerGroupKeyReference"]
63160
#: Maps to `Customer.addresses`.
64-
addresses: typing.Optional[typing.List["Address"]]
161+
addresses: typing.List["CustomerAddress"]
65162
#: The index of the address in the addresses array. The `defaultBillingAddressId` of the customer will be set to the ID of that address.
66163
default_billing_address: typing.Optional[int]
67164
#: The indices of the billing addresses in the addresses array. The `billingAddressIds` of the customer will be set to the IDs of that addresses.
@@ -94,7 +191,7 @@ def __init__(
94191
vat_id: typing.Optional[str] = None,
95192
is_email_verified: typing.Optional[bool] = None,
96193
customer_group: typing.Optional["CustomerGroupKeyReference"] = None,
97-
addresses: typing.Optional[typing.List["Address"]] = None,
194+
addresses: typing.List["CustomerAddress"],
98195
default_billing_address: typing.Optional[int] = None,
99196
billing_addresses: typing.Optional[typing.List["int"]] = None,
100197
default_shipping_address: typing.Optional[int] = None,

0 commit comments

Comments
 (0)