Skip to content

Commit 42672b6

Browse files
authored
Merge pull request #72 from JaviCerveraIngram/CPS-54-external_id
CPS-54 external_id as integer now supported.
2 parents 6760cbe + 718fd99 commit 42672b6

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

connect/models/schemas.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,9 +200,19 @@ def make_object(self, data):
200200
return Hub(**data)
201201

202202

203+
class ExternalIdField(fields.Field):
204+
def _deserialize(self, value, attr, obj, **kwargs):
205+
if isinstance(value, six.string_types):
206+
return value
207+
elif isinstance(value, int):
208+
return str(value)
209+
else:
210+
raise ValueError({attr: [u'Not a valid int or string.']})
211+
212+
203213
class ExtIdHubSchema(Schema):
204214
hub = fields.Nested(HubSchema, only=('id', 'name'))
205-
external_id = fields.Str()
215+
external_id = ExternalIdField()
206216

207217
@post_load
208218
def make_object(self, data):
@@ -490,7 +500,7 @@ def make_object(self, data):
490500
class TierAccountSchema(BaseSchema):
491501
name = fields.Str()
492502
contact_info = fields.Nested(ContactInfoSchema)
493-
external_id = fields.Str()
503+
external_id = ExternalIdField()
494504
external_uid = fields.Str()
495505

496506
@post_load
@@ -525,7 +535,7 @@ def make_object(self, data):
525535

526536
class AssetSchema(BaseSchema):
527537
status = fields.Str()
528-
external_id = fields.Str()
538+
external_id = ExternalIdField()
529539
external_uid = fields.Str(allow_none=True)
530540
external_name = fields.Str(allow_none=True)
531541
product = fields.Nested(ProductSchema, only=('id', 'name'))

tests/data/response.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
"postal_code": "08000",
6262
"state": ""
6363
},
64-
"external_id": "1001000",
64+
"external_id": 1001000,
6565
"id": "TA-0-7304-8514-7000",
6666
"name": "Name"
6767
},

0 commit comments

Comments
 (0)