Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions connect/models/contact.py
Original file line number Diff line number Diff line change
@@ -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 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)
3 changes: 2 additions & 1 deletion connect/models/tiers.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from marshmallow import Schema, fields, post_load

from .base import BaseModel, BaseSchema
from .contact import ContactInfoSchema


class Tier(BaseModel):
Expand All @@ -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()

Expand Down