Skip to content

Commit d743926

Browse files
More attributes (#12)
* add more account attributes
1 parent 7bd63d9 commit d743926

File tree

9 files changed

+150
-17
lines changed

9 files changed

+150
-17
lines changed

examples/package_counters.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44
USERNAME = "admin"
55
PASSWORD = "111111"
66

7-
config = {
8-
"API_ROOT": API_ROOT,
9-
"AUTH_CREDS": {"login": USERNAME, "password": PASSWORD}
10-
}
7+
config = {"API_ROOT": API_ROOT, "AUTH_CREDS": {"login": USERNAME, "password": PASSWORD}}
118

129
# Initialize ORM client (registers models)
1310
OrmClient(config)

yeti_switch_api/orm/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from .contact import Contact # noqa: F401
44
from .account import Account # noqa: F401
55
from .invoice import Invoice # noqa: F401
6+
from .invoice_template import InvoiceTemplate # noqa: F401
67
from .invoice_originated_destination import InvoiceOriginatedDestination # noqa: F401
78
from .invoice_originated_network import InvoiceOriginatedNetwork # noqa: F401
89
from .invoice_terminated_destination import InvoiceTerminatedDestination # noqa: F401

yeti_switch_api/orm/account.py

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,57 @@ class Meta:
99
contractor = RelationField("contractor")
1010
timezone = RelationField("timezone")
1111

12+
external_id = AttributeField("external-id")
13+
uuid = AttributeField("uuid")
14+
1215
name = AttributeField("name")
1316
balance = AttributeField("balance")
1417
min_balance = AttributeField("min-balance")
1518
max_balance = AttributeField("max-balance")
19+
vat = AttributeField("vat")
20+
balance_low_threshold = AttributeField("balance-low-threshold")
21+
balance_high_threshold = AttributeField("balance-high-threshold")
22+
send_balance_notifications_to = AttributeField("send-balance-notifications-to")
23+
24+
destination_rate_limit = AttributeField("destination-rate-limit")
25+
max_call_duration = AttributeField("max-call-duration")
26+
origination_capacity = AttributeField("origination-capacity")
27+
termination_capacity = AttributeField("termination-capacity")
28+
total_capacity = AttributeField("total-capacity")
29+
30+
invoice_template = RelationField("invoice-template")
31+
invoice_period = AttributeField("invoice-period-id")
32+
send_invoices_to = AttributeField("send-invoices-to")
33+
34+
INVOICE_PERIOD_DAILY = 1
35+
INVOICE_PERIOD_WEEKLY = 2
36+
INVOICE_PERIOD_BIWEEKLY = 3
37+
INVOICE_PERIOD_MONTHLY = 4
38+
INVOICE_PERIOD_BIWEEKLY_SPLIT = 5
39+
INVOICE_PERIOD_WEEKLY_SPLIT = 6
1640

1741
def creatable_fields(self):
18-
return ["name", "contractor", "timezone", "min-balance", "max-balance"]
42+
return [
43+
"external-id",
44+
"uuid",
45+
"name",
46+
"contractor",
47+
"timezone",
48+
"invoice-template",
49+
"min-balance",
50+
"max-balance",
51+
"vat",
52+
"balance-low-threshold",
53+
"balance-high-threshold",
54+
"send-balance-notifications-to",
55+
"destination-rate-limit",
56+
"max-call-duration",
57+
"origination-capacity",
58+
"termination-capacity",
59+
"total-capacity",
60+
"invoice-period-id",
61+
"send-invoices-to",
62+
]
63+
64+
def updatable_fields(self):
65+
return self.creatable_fields()

yeti_switch_api/orm/customers_auth.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ class Meta:
2121
dst_prefix = AttributeField("dst-prefix")
2222
x_yeti_auth = AttributeField("x-yeti-auth")
2323

24+
tag_action = RelationField("tag-action")
25+
tag_action_value = AttributeField("tag-action-value")
26+
2427
def creatable_fields(self):
2528
return [
2629
"name",
@@ -37,4 +40,9 @@ def creatable_fields(self):
3740
"src-prefix",
3841
"dst-prefix",
3942
"x-yeti-auth",
43+
"tag-action",
44+
"tag-action-value",
4045
]
46+
47+
def updatable_fields(self):
48+
return self.creatable_fields()
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from .base_model import BaseModel, AttributeField, RelationField # noqa: F401
2+
3+
4+
class InvoiceTemplate(BaseModel):
5+
class Meta:
6+
path = "invoice-template"
7+
type = "invoice-template"
8+
9+
name = AttributeField("name")
10+
filename = AttributeField("filename")

yeti_switch_api/orm/numberlist.py

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,53 @@
1-
from .base_model import BaseModel, AttributeField
1+
from .base_model import BaseModel, AttributeField, RelationField
22

33

44
class Numberlist(BaseModel):
55
class Meta:
66
path = "numberlists"
77
type = "numberlists"
88

9+
external_id = AttributeField("external-id")
10+
external_type = AttributeField("external-type")
11+
912
name = AttributeField("name")
10-
default_action_id = AttributeField("action-id")
13+
default_action = AttributeField("default-action-id")
1114
DEFAULT_ACTION_REJECT = 1
1215
DEFAULT_ACTION_ACCEPT = 2
16+
17+
mode = AttributeField("mode-id")
18+
MODE_STRICT = 1
19+
MODE_PREFIX = 2
20+
MODE_RANDOM = 3
21+
22+
default_src_rewrite_rule = AttributeField("default-src-rewrite-rule")
23+
default_src_rewrite_result = AttributeField("default-src-rewrite-result")
24+
defer_src_rewrite = AttributeField("defer-src-rewrite")
25+
default_dst_rewrite_rule = AttributeField("default-dst-rewrite-rule")
26+
default_dst_rewrite_result = AttributeField("default-dst-rewrite-result")
27+
defer_dst_rewrite = AttributeField("defer-dst-rewrite")
28+
29+
tag_action = RelationField("tag-action")
30+
tag_action_value = AttributeField("tag-action-value")
31+
32+
created_at = AttributeField("created-at")
33+
updated_at = AttributeField("updated-at")
34+
35+
def creatable_fields(self):
36+
return [
37+
"name",
38+
"default-action-id",
39+
"tag-action",
40+
"tag-action-value",
41+
"mode-id",
42+
"default-src-rewrite-rule",
43+
"default-src-rewrite-result",
44+
"defer-src-rewrite",
45+
"default-dst-rewrite-rule",
46+
"default-dst-rewrite-result",
47+
"defer-dst-rewrite",
48+
"external-id",
49+
"external-type",
50+
]
51+
52+
def updatable_fields(self):
53+
return self.creatable_fields()

yeti_switch_api/orm/numberlist_item.py

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,43 @@ class Meta:
66
path = "numberlist-items"
77
type = "numberlist-items"
88

9-
key = AttributeField("key")
10-
number_min_length = AttributeField("number_min_length")
11-
number_max_length = AttributeField("number_max_length")
12-
src_rewrite_rule = AttributeField("src_rewrite_rule")
13-
src_rewrite_result = AttributeField("src_rewrite_result")
14-
dst_rewrite_rule = AttributeField("dst_rewrite_rule")
15-
dst_rewrite_result = AttributeField("dst_rewrite_result")
16-
created_at = AttributeField("created_at")
17-
updated_at = AttributeField("updated_at")
189
numberlist = RelationField("numberlist")
10+
key = AttributeField("key")
11+
number_min_length = AttributeField("number-min-length")
12+
number_max_length = AttributeField("number-max-length")
13+
src_rewrite_rule = AttributeField("src-rewrite-rule")
14+
src_rewrite_result = AttributeField("src-rewrite-result")
15+
defer_src_rewrite = AttributeField("defer-src-rewrite")
16+
17+
dst_rewrite_rule = AttributeField("dst-rewrite-rule")
18+
dst_rewrite_result = AttributeField("dst-rewrite-result")
19+
defer_dst_rewrite = AttributeField("defer-dst-rewrite")
20+
21+
created_at = AttributeField("created-at")
22+
updated_at = AttributeField("updated-at")
23+
1924
action_id = AttributeField("action-id")
2025
ACTION_REJECT = 1
2126
ACTION_ACCEPT = 2
27+
tag_action = RelationField("tag-action")
28+
tag_action_value = AttributeField("tag-action-value")
29+
30+
def creatable_fields(self):
31+
return [
32+
"numberlist",
33+
"key",
34+
"number-min-length",
35+
"number-max-length",
36+
"src-rewrite-rule",
37+
"src-rewrite-result",
38+
"defer-src-rewrite",
39+
"dst-rewrite-rule",
40+
"dst-rewrite-result",
41+
"defer-dst-rewrite",
42+
"action-id",
43+
"tag-action",
44+
"tag-action-value",
45+
]
46+
47+
def updatable_fields(self):
48+
return self.creatable_fields()

yeti_switch_api/orm/orm_client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from .contact import Contact
77
from .account import Account
88
from .invoice import Invoice
9+
from .invoice_template import InvoiceTemplate
910
from .invoice_originated_destination import InvoiceOriginatedDestination
1011
from .invoice_originated_network import InvoiceOriginatedNetwork
1112
from .invoice_terminated_destination import InvoiceTerminatedDestination
@@ -49,6 +50,7 @@ def __register_models(cls):
4950
cls.__register_model(Contact)
5051
cls.__register_model(Account)
5152
cls.__register_model(Invoice)
53+
cls.__register_model(InvoiceTemplate)
5254
cls.__register_model(InvoiceOriginatedDestination)
5355
cls.__register_model(InvoiceOriginatedNetwork)
5456
cls.__register_model(InvoiceTerminatedDestination)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from .base_model import BaseModel, AttributeField, RelationField
22

3+
34
class PackageCounter(BaseModel):
45
class Meta:
56
path = "package-counters"
@@ -8,7 +9,6 @@ class Meta:
89
duration = AttributeField("duration")
910
exclude = AttributeField("exclude")
1011
prefix = AttributeField("prefix")
11-
service_id = AttributeField("service-id")
1212

1313
account = RelationField("account")
1414
service = RelationField("service")

0 commit comments

Comments
 (0)