From 533b9fb82ca058719b387c8041cfdc20f8e5b71f Mon Sep 17 00:00:00 2001 From: Javier San Juan Cervera Date: Tue, 5 Mar 2019 15:04:05 +0100 Subject: [PATCH 1/2] Added Contact, ContactInfo and PhoneNumber models. Updated Tier to use ContactInfo --- connect/models/contact.py | 58 +++++++++++++++++++++++++++++++++++++++ connect/models/tiers.py | 3 +- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 connect/models/contact.py diff --git a/connect/models/contact.py b/connect/models/contact.py new file mode 100644 index 0000000..3e9b5dc --- /dev/null +++ b/connect/models/contact.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- + +""" +This file is part of the Ingram Micro Cloud Blue Connect SDK. +Copyright (c) 2019 Ingram Micro. All Rights Reserved. +""" + +from marshmallow import Schema, fields, post_load + +from .base import BaseModel, BaseSchema + + +class PhoneNumber(BaseModel): + pass + + +class PhoneNumberSchema(BaseSchema): + country_code = fields.Str() + area_code = fields.Str() + phone_number = fields.Str() + extension = fields.Str() + + @post_load + def make_object(self, data): + return PhoneNumber(**data) + + +class Contact(BaseModel): + pass + + +class ContactSchema(BaseSchema): + email = fields.Str() + first_name = fields.Str() + last_name = fields.Str() + phone_number = fields.Nested(PhoneNumberSchema) + + @post_load + def make_object(self, data): + return Contact(**data) + + +class ContactInfo(BaseModel): + pass + + +class ContactInfoSchema(BaseSchema): + address_line1 = fields.Str() + address_line2 = fields.Str() + city = fields.Str() + contact = fields.Nested(ContactSchema) + country = fields.Str() + postal_code = fields.Str() + state = fields.Str() + + @post_load + def make_object(self, data): + return ContactInfo(**data) diff --git a/connect/models/tiers.py b/connect/models/tiers.py index 825ffb3..554051b 100644 --- a/connect/models/tiers.py +++ b/connect/models/tiers.py @@ -8,6 +8,7 @@ from marshmallow import Schema, fields, post_load from .base import BaseModel, BaseSchema +from .contact import ContactInfoSchema class Tier(BaseModel): @@ -16,7 +17,7 @@ class Tier(BaseModel): class TierSchema(BaseSchema): name = fields.Str() - contact_info = fields.Dict() + contact_info = fields.Nested(ContactInfoSchema) external_id = fields.Str() external_uid = fields.UUID() From 9ea5a2eb4914eed9e7696bad87a8fe5b1ff66a98 Mon Sep 17 00:00:00 2001 From: Javier San Juan Cervera Date: Tue, 5 Mar 2019 15:19:13 +0100 Subject: [PATCH 2/2] Removed unused import --- connect/models/contact.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/connect/models/contact.py b/connect/models/contact.py index 3e9b5dc..92697ff 100644 --- a/connect/models/contact.py +++ b/connect/models/contact.py @@ -5,7 +5,7 @@ Copyright (c) 2019 Ingram Micro. All Rights Reserved. """ -from marshmallow import Schema, fields, post_load +from marshmallow import fields, post_load from .base import BaseModel, BaseSchema