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.
24 lines
765 B
24 lines
765 B
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
|
|
|