|
import requests
|
|
import simplejson
|
|
from urllib.parse import urljoin
|
|
from fe.access.auth import Auth
|
|
|
|
|
|
class Buyer:
|
|
def __init__(self, url_prefix, user_id, password):
|
|
self.url_prefix = urljoin(url_prefix, "buyer/")
|
|
self.user_id = user_id
|
|
self.password = password
|
|
self.token = ""
|
|
self.terminal = "my terminal"
|
|
self.auth = Auth(url_prefix)
|
|
code, self.token = self.auth.login(self.user_id, self.password, self.terminal)
|
|
assert code == 200
|
|
|
|
def new_order(self, store_id: str, book_id_and_count: [(str, int)]) -> (int, str):
|
|
books = []
|
|
for id_count_pair in book_id_and_count:
|
|
books.append({"id": id_count_pair[0], "count": id_count_pair[1]})
|
|
json = {"user_id": self.user_id, "store_id": store_id, "books": books}
|
|
#print(simplejson.dumps(json))
|
|
url = urljoin(self.url_prefix, "new_order")
|
|
headers = {"token": self.token}
|
|
r = requests.post(url, headers=headers, json=json)
|
|
response_json = r.json()
|
|
return r.status_code, response_json.get("order_id")
|
|
|
|
def payment(self, order_id: str):
|
|
json = {"user_id": self.user_id, "password": self.password, "order_id": order_id}
|
|
url = urljoin(self.url_prefix, "payment")
|
|
headers = {"token": self.token}
|
|
r = requests.post(url, headers=headers, json=json)
|
|
return r.status_code
|
|
|
|
def add_funds(self, add_value: str) -> int:
|
|
json = {"user_id": self.user_id, "password": self.password, "add_value": add_value}
|
|
url = urljoin(self.url_prefix, "add_funds")
|
|
headers = {"token": self.token}
|
|
r = requests.post(url, headers=headers, json=json)
|
|
return r.status_code
|