You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.8 KiB

2 years ago
  1. import requests
  2. from urllib.parse import urljoin
  3. from fe.access import book
  4. from fe.access.auth import Auth
  5. class Seller:
  6. def __init__(self, url_prefix, seller_id: str, password: str):
  7. self.url_prefix = urljoin(url_prefix, "seller/")
  8. self.seller_id = seller_id
  9. self.password = password
  10. self.terminal = "my terminal"
  11. self.auth = Auth(url_prefix)
  12. code, self.token = self.auth.login(self.seller_id, self.password, self.terminal)
  13. assert code == 200
  14. def create_store(self, store_id):
  15. json = {
  16. "user_id": self.seller_id,
  17. "store_id": store_id,
  18. }
  19. #print(simplejson.dumps(json))
  20. url = urljoin(self.url_prefix, "create_store")
  21. headers = {"token": self.token}
  22. r = requests.post(url, headers=headers, json=json)
  23. return r.status_code
  24. def add_book(self, store_id: str, stock_level: int, book_info: book.Book) -> int:
  25. json = {
  26. "user_id": self.seller_id,
  27. "store_id": store_id,
  28. "book_info": book_info.__dict__,
  29. "stock_level": stock_level
  30. }
  31. #print(simplejson.dumps(json))
  32. url = urljoin(self.url_prefix, "add_book")
  33. headers = {"token": self.token}
  34. r = requests.post(url, headers=headers, json=json)
  35. return r.status_code
  36. def add_stock_level(self, seller_id: str, store_id: str, book_id: str, add_stock_num: int) -> int:
  37. json = {
  38. "user_id": seller_id,
  39. "store_id": store_id,
  40. "book_id": book_id,
  41. "add_stock_level": add_stock_num
  42. }
  43. #print(simplejson.dumps(json))
  44. url = urljoin(self.url_prefix, "add_stock_level")
  45. headers = {"token": self.token}
  46. r = requests.post(url, headers=headers, json=json)
  47. return r.status_code