Add formatters for Company, Category, Item models.

main
KKlochko 2 years ago
parent d99c246de2
commit ea3fb8ca7f

@ -0,0 +1,23 @@
from src.fmt.abstract_formatter import AbstractFormatter
from src.fmt.item_formatter import ItemFormatter
class CategoryFormatter(AbstractFormatter):
def format(self, category) -> str:
name = category['name']
return f"#### {name}\n"
def format_all(self, cities: dict, header: str = "# Категорії\n\n") -> str:
formated_message = header
item_formatter = ItemFormatter()
for category in cities['data']:
formated_category = self.format(category)
formated_message += formated_category
if 'items' in category:
formated_items = item_formatter.format_all(category['items'])
formated_message += formated_items
return formated_message

@ -0,0 +1,12 @@
from src.fmt.city_formatter import CityFormatter
class CompanyFormatter(CityFormatter):
def format_all(self, companies: dict, header: str = "# Компанії\n\n") -> str:
formated_message = header
for company in companies['data']:
formated_item = self.format(company)
formated_message += formated_item
return formated_message

@ -0,0 +1,19 @@
from src.fmt.abstract_formatter import AbstractFormatter
class ItemFormatter(AbstractFormatter):
def format(self, item) -> str:
name = item['name']
price = item['price']
return f"- {name} - {price}\n"
def format_all(self, items: dict, header: str = "") -> str:
formated_message = header
items = items['data'] if 'data' in items else items
for item in items:
formated_item = self.format(item)
formated_message += formated_item
return formated_message
Loading…
Cancel
Save