Skip to content

Commit c084814

Browse files
committed
Created bill: Models, Methods and Exceptions
1 parent d8d7b06 commit c084814

File tree

12 files changed

+685
-39
lines changed

12 files changed

+685
-39
lines changed

src/bitpay_sdk/client.py

Lines changed: 127 additions & 34 deletions
Large diffs are not rendered by default.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from src.bitpay_sdk.exceptions.bill_exception import BillException
2+
3+
4+
class BillCreationException(BillException):
5+
__bitpay_message = "Failed to create bill"
6+
__bitpay_code = "BITPAY-BILL-CREATE"
7+
__api_code = ""
8+
9+
def __init__(self, message, code=112, api_code="000000"):
10+
message = self.__bitpay_code + ": " + self.__bitpay_message + ":" + message
11+
self.__api_code = api_code
12+
super.__init__(message, code)
13+
14+
def get_api_code(self):
15+
return self.__api_code
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from src.bitpay_sdk.exceptions.bill_exception import BillException
2+
3+
4+
class BillDeliveryException(BillException):
5+
__bitpay_message = "Failed to deliver bill"
6+
__bitpay_code = "BITPAY-BILL-DELIVERY"
7+
__api_code = ""
8+
9+
def __init__(self, message, code=115, api_code="000000"):
10+
message = self.__bitpay_code + ": " + self.__bitpay_message + ":" + message
11+
self.__api_code = api_code
12+
super.__init__(message, code)
13+
14+
def get_api_code(self):
15+
return self.__api_code
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from .bitpay_exception import BitPayException
2+
3+
4+
class BillException(BitPayException):
5+
__bitpay_message = "An unexpected error occurred while trying to manage the bill"
6+
__bitpay_code = "BITPAY-BILL-GENERIC"
7+
__api_code = ""
8+
9+
def __init__(self, message="", code=111, api_code="000000"):
10+
message = self.__bitpay_code + ": " + self.__bitpay_message + ":" + message
11+
self.__api_code = api_code
12+
super().__init__(message, code)
13+
14+
def get_api_code(self):
15+
return self.__api_code
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from src.bitpay_sdk.exceptions.bill_exception import BillException
2+
3+
4+
class BillQueryException(BillException):
5+
__bitpay_message = "Failed to retrieve bill"
6+
__bitpay_code = "BITPAY-REFUND-GET"
7+
__api_code = ""
8+
9+
def __init__(self, message, code=113, api_code="000000"):
10+
message = self.__bitpay_code + ": " + self.__bitpay_message + ":" + message
11+
self.__api_code = api_code
12+
super.__init__(message, code)
13+
14+
def get_api_code(self):
15+
return self.__api_code
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from src.bitpay_sdk.exceptions.bill_exception import BillException
2+
3+
4+
class BillUpdateException(BillException):
5+
__bitpay_message = "Failed to update bill"
6+
__bitpay_code = "BITPAY-BILL-UPDATE"
7+
__api_code = ""
8+
9+
def __init__(self, message, code=114, api_code="000000"):
10+
message = self.__bitpay_code + ": " + self.__bitpay_message + ":" + message
11+
self.__api_code = api_code
12+
super.__init__(message, code)
13+
14+
def get_api_code(self):
15+
return self.__api_code

src/bitpay_sdk/models/bill/bill.py

Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
from .item import Item
2+
3+
4+
class Bill:
5+
__currency = None
6+
__token = ""
7+
__email = None
8+
__items = None
9+
__number = None
10+
__name = None
11+
__address1 = None
12+
__address2 = None
13+
__city = None
14+
__state = None
15+
__zip = None
16+
__country = None
17+
__cc = None
18+
__phone = None
19+
__due_date = None
20+
__pass_processing_fee = None
21+
__status = None
22+
__url = None
23+
__create_date = None
24+
__id = None
25+
__merchant = None
26+
27+
def __init__(self, number=None, currency=None, email=None, items: Item = None):
28+
self.__number = number
29+
self.__currency = currency
30+
self.__email = email
31+
self.__items = items
32+
33+
def get_currency(self):
34+
return self.__currency
35+
36+
def set_currency(self, currency):
37+
# TODO : Reflection Class problem
38+
pass
39+
40+
def get_token(self):
41+
return self.__token
42+
43+
def set_token(self, token):
44+
self.__token = token
45+
46+
def get_email(self):
47+
return self.__email
48+
49+
def set_email(self, email):
50+
self.__email = email
51+
52+
def get_number(self):
53+
return self.__number
54+
55+
def set_number(self, number):
56+
self.__number = number
57+
58+
def get_name(self):
59+
return self.__name
60+
61+
def set_name(self, name):
62+
self.__name = name
63+
64+
def get_address1(self):
65+
return self.__address1
66+
67+
def set_address1(self, address1):
68+
self.__address1 = address1
69+
70+
def get_address2(self):
71+
return self.__address2
72+
73+
def set_address2(self, address2):
74+
self.__address2 = address2
75+
76+
def get_city(self):
77+
return self.__city
78+
79+
def set_city(self, city):
80+
self.__city = city
81+
82+
def get_state(self):
83+
return self.__state
84+
85+
def set_state(self, state):
86+
self.__state = state
87+
88+
def get_zip(self):
89+
return self.__zip
90+
91+
def set_zip(self, zip):
92+
self.__zip = zip
93+
94+
def get_country(self):
95+
return self.__country
96+
97+
def set_country(self, country):
98+
self.__country = country
99+
100+
def get_cc(self):
101+
return self.__cc
102+
103+
def set_cc(self, cc):
104+
self.__cc = cc
105+
106+
def get_phone(self):
107+
return self.__phone
108+
109+
def set_phone(self, phone):
110+
self.__phone = phone
111+
112+
def get_due_date(self):
113+
return self.__due_date
114+
115+
def set_due_date(self, due_date):
116+
self.__due_date = due_date
117+
118+
def get_pass_processing_fee(self):
119+
return self.__pass_processing_fee
120+
121+
def set_pass_processing_fee(self, pass_processing_fee):
122+
self.__pass_processing_fee = pass_processing_fee
123+
124+
def get_status(self):
125+
return self.__status
126+
127+
def set_status(self, status):
128+
self.__status = status
129+
130+
def get_url(self):
131+
return self.__url
132+
133+
def set_url(self, url):
134+
self.__url = url
135+
136+
def get_create_date(self):
137+
return self.__create_date
138+
139+
def set_create_date(self, create_date):
140+
self.__create_date = create_date
141+
142+
def get_id(self):
143+
return self.__id
144+
145+
def set_id(self, id):
146+
self.__id = id
147+
148+
def get_merchant(self):
149+
return self.__merchant
150+
151+
def set_merchant(self, merchant):
152+
self.__merchant = merchant
153+
154+
def get_items(self):
155+
return self.__items
156+
157+
def set_items(self, item:Item):
158+
self.__items = item
159+
160+
def to_json(self):
161+
data = {
162+
"currency": self.get_currency(),
163+
"token": self.get_token(),
164+
"email": self.get_email(),
165+
"items": self.get_items(),
166+
"number": self.get_number(),
167+
"name": self.get_name(),
168+
"address1": self.get_address1(),
169+
"address2": self.get_address2(),
170+
"city": self.get_city(),
171+
"state": self.get_state(),
172+
"zip": self.get_zip(),
173+
"country": self.get_country(),
174+
"cc": self.get_cc(),
175+
"phone": self.get_phone(),
176+
"dueDate": self.get_due_date(),
177+
"passProcessingFee": self.get_pass_processing_fee(),
178+
"status": self.get_status(),
179+
"url": self.get_url(),
180+
"createDate": self.get_create_date(),
181+
"id": self.get_id(),
182+
"merchant": self.get_merchant()
183+
}
184+
return data
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class BillStatus:
2+
__draft = "draft"
3+
__sent = "sent"
4+
__new = "new"
5+
__paid = "paid"
6+
__complete = "complete"

src/bitpay_sdk/models/bill/item.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
class Item:
2+
__id = None
3+
__description = None
4+
__price = None
5+
__quantity = None
6+
7+
def __init__(self):
8+
pass
9+
10+
def get_id(self):
11+
return self.__id
12+
13+
def set_id(self, id):
14+
self.__id = id
15+
16+
def get_description(self):
17+
return self.__description
18+
19+
def set_description(self, description):
20+
self.__description = description
21+
22+
def get_price(self):
23+
return self.__price
24+
25+
def set_price(self, price):
26+
self.__price = price
27+
28+
def get_quantity(self):
29+
return self.__quantity
30+
31+
def set_quantity(self, quantity):
32+
self.__quantity = quantity
33+
34+
def to_json(self):
35+
data = {
36+
"id": self.get_id(),
37+
"description": self.get_description(),
38+
"price": self.get_price(),
39+
"quantity": self.get_quantity(),
40+
}
41+
return data
42+
43+

0 commit comments

Comments
 (0)