web3-starter-py/small-projects/maze-puzzle/src/service.py
2022-03-23 18:41:46 +04:00

43 lines
No EOL
1.5 KiB
Python

import re
TOKEN_REGEX = re.compile("^[0-9A-F-]+$")
class Service:
def __init__(self, product_detail_client, product_search_client):
self.product_detail_client = product_detail_client
self.product_search_client = product_search_client
def lookup(self, product_token):
"""
Given a valid product token,
lookup product detail information from the product detail backend service.
- Results in Bad Request if the token is invalid
- Results in Not Found if the product is unknown to the backend service
"""
if not TOKEN_REGEX.match(product_token):
return {"status": 400}
lookup_result = self.product_detail_client.lookup(product_token)
if lookup_result:
return {"status": 200, "product": lookup_result}
else:
return {"status": 404}
def search_by_price_range(self, lower_cents, upper_cents, start_record, num_records):
page_of_product_tokens = \
self.product_search_client.search_for_all_in_price_range(
lower_cents,
upper_cents,
start_record,
num_records)
product_detail_results = []
for product_token in page_of_product_tokens:
product_detail_results.append(self.lookup(product_token)["product"])
return {"status": 200, "products": product_detail_results}
if __name__ == "__main__":
a = Service()
print(a.lookup('aaa'))