Skip to content

Commit e20a4f5

Browse files
committed
Splitting models on many files
1 parent 104af78 commit e20a4f5

File tree

14 files changed

+307
-263
lines changed

14 files changed

+307
-263
lines changed

connect/models/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
from .activation_response import ActivationTemplateResponse, ActivationTileResponse
2-
from .schema import BaseScheme, FulfillmentScheme, Param, ParamsScheme, ServerErrorScheme
2+
from .base import BaseScheme
3+
from .fulfillment import FulfillmentScheme
4+
from .parameters import Param, ParamsScheme
5+
from .server_error import ServerErrorScheme
36

47
__all__ = [
58
'ActivationTemplateResponse',

connect/models/asset.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from marshmallow import fields, post_load
2+
3+
from .base import BaseObject, BaseScheme
4+
from .connection import ConnectionScheme
5+
from .parameters import ParamsScheme
6+
from .product import ItemScheme, ProductScheme
7+
from .tiers import TiersSchemeMixin
8+
9+
10+
class Asset(BaseObject):
11+
pass
12+
13+
14+
class AssetScheme(BaseScheme):
15+
status = fields.Str()
16+
external_id = fields.Str()
17+
external_uid = fields.UUID()
18+
product = fields.Nested(ProductScheme, only=('id', 'name'))
19+
connection = fields.Nested(
20+
ConnectionScheme, only=('id', 'type', 'provider', 'vendor'),
21+
)
22+
items = fields.List(fields.Nested(ItemScheme))
23+
params = fields.List(fields.Nested(ParamsScheme))
24+
tiers = fields.Nested(TiersSchemeMixin)
25+
26+
@post_load
27+
def make_object(self, data):
28+
return Asset(**data)

connect/models/base.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from marshmallow import Schema, fields, post_load
2+
3+
4+
class BaseObject:
5+
def __init__(self, *args, **kwargs):
6+
self.id = kwargs.get('id')
7+
if kwargs:
8+
for attr, val in kwargs.items():
9+
setattr(self, attr, val)
10+
11+
12+
class BaseScheme(Schema):
13+
id = fields.Str()
14+
15+
@post_load
16+
def make_object(self, data):
17+
return BaseObject(**data)

connect/models/company.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from marshmallow import fields, post_load
2+
3+
from .base import BaseObject, BaseScheme
4+
5+
6+
class Company(BaseObject):
7+
pass
8+
9+
10+
class CompanyScheme(BaseScheme):
11+
name = fields.Str()
12+
13+
@post_load
14+
def make_object(self, data):
15+
return Company(**data)

connect/models/connection.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from marshmallow import fields, post_load
2+
3+
from .base import BaseObject, BaseScheme
4+
from .company import CompanyScheme
5+
from .hub import HubScheme
6+
from .product import ProductScheme
7+
8+
9+
class Connection(BaseObject):
10+
pass
11+
12+
13+
class ConnectionScheme(BaseScheme):
14+
type = fields.Str()
15+
provider = fields.Nested(CompanyScheme, only=('id', 'name'))
16+
vendor = fields.Nested(CompanyScheme, only=('id', 'name'))
17+
product = fields.Nested(ProductScheme)
18+
hub = fields.Nested(HubScheme)
19+
20+
@post_load
21+
def make_object(self, data):
22+
return Connection(**data)

connect/models/exception.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from .schema import ServerError
1+
from .server_error import ServerError
22

33

44
class Message(Exception):

connect/models/fulfillment.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from marshmallow import fields, post_load
2+
3+
from .asset import AssetScheme
4+
from .base import BaseObject, BaseScheme
5+
from .marketplace import ContractScheme, MarketplaceScheme
6+
7+
8+
class Fulfillment(BaseObject):
9+
pass
10+
11+
12+
class FulfillmentScheme(BaseScheme):
13+
activation_key = fields.Str()
14+
asset = fields.Nested(AssetScheme)
15+
status = fields.Str()
16+
type = fields.Str()
17+
updated = fields.DateTime()
18+
created = fields.DateTime()
19+
reason = fields.Str()
20+
params_form_url = fields.Str()
21+
contract = fields.Nested(ContractScheme, only=('id', 'name'))
22+
marketplace = fields.Nested(MarketplaceScheme, only=('id', 'name'))
23+
24+
@post_load
25+
def make_object(self, data):
26+
return Fulfillment(**data)

connect/models/hub.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from marshmallow import Schema, fields, post_load
2+
3+
from .base import BaseObject, BaseScheme
4+
5+
6+
class Hub(BaseObject):
7+
pass
8+
9+
10+
class HubScheme(BaseScheme):
11+
name = fields.Str()
12+
13+
@post_load
14+
def make_object(self, data):
15+
return Hub(**data)
16+
17+
18+
class HubsSchemeMixin(Schema):
19+
hub = fields.Nested(HubScheme, only=('id', 'name'))
20+
external_id = fields.Str()

connect/models/marketplace.py

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
from marshmallow import fields, post_load
2+
3+
from .base import BaseObject, BaseScheme
4+
from .company import CompanyScheme
5+
from .hub import HubsSchemeMixin
6+
7+
8+
class Marketplace(BaseObject):
9+
pass
10+
11+
12+
class MarketplaceScheme(BaseScheme):
13+
name = fields.Str()
14+
zone = fields.Str()
15+
description = fields.Str()
16+
active_contract = fields.Int()
17+
icon = fields.Str()
18+
owner = fields.Nested(CompanyScheme, only=('id', 'name'))
19+
hubs = fields.List(fields.Nested(HubsSchemeMixin, only=('id', 'name')))
20+
21+
@post_load
22+
def make_object(self, data):
23+
return Marketplace(**data)
24+
25+
26+
class Agreement(BaseObject):
27+
pass
28+
29+
30+
class AgreementScheme(BaseScheme):
31+
type = fields.Str()
32+
title = fields.Str()
33+
description = fields.Str()
34+
created = fields.DateTime()
35+
updated = fields.DateTime()
36+
owner = fields.Nested(CompanyScheme, only=('id', 'name'))
37+
stats = fields.Dict()
38+
active = fields.Bool()
39+
version = fields.Int()
40+
link = fields.Str()
41+
version_created = fields.DateTime()
42+
version_contracts = fields.Int()
43+
44+
@post_load
45+
def make_object(self, data):
46+
return Agreement(**data)
47+
48+
49+
class Contract(BaseObject):
50+
pass
51+
52+
53+
class ContractScheme(BaseScheme):
54+
name = fields.Str()
55+
status = fields.Str()
56+
version = fields.Int()
57+
type = fields.Str()
58+
agreement = fields.Nested(AgreementScheme, only=('id', 'name'))
59+
marketplace = fields.Nested(MarketplaceScheme, only=('id', 'name'))
60+
owner = fields.Nested(CompanyScheme, only=('id', 'name'))
61+
creater = fields.Nested(CompanyScheme, only=('id', 'name'))
62+
created = fields.DateTime()
63+
updated = fields.DateTime()
64+
enrolled = fields.Str()
65+
version_created = fields.DateTime()
66+
activation = fields.Dict()
67+
signee = fields.Nested(CompanyScheme, only=('id', 'name'))
68+
69+
@post_load
70+
def make_object(self, data):
71+
return Contract(**data)

connect/models/parameters.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from marshmallow import Schema, fields, post_load
2+
3+
from .base import BaseObject, BaseScheme
4+
5+
6+
class ValueChoice(BaseObject):
7+
pass
8+
9+
10+
class ValueChoiceScheme(Schema):
11+
value = fields.Str()
12+
label = fields.Str()
13+
14+
@post_load
15+
def make_object(self, data):
16+
return ValueChoice(**data)
17+
18+
19+
class Param(BaseObject):
20+
pass
21+
22+
23+
class ParamsScheme(BaseScheme):
24+
name = fields.Str()
25+
type = fields.Str()
26+
value = fields.Str()
27+
value_choices = fields.List(fields.Nested(ValueChoiceScheme))
28+
value_error = fields.Str()
29+
30+
@post_load
31+
def make_object(self, data):
32+
return Param(**data)

0 commit comments

Comments
 (0)