Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from typing import Any, Optional
- import structlog
- from flask import Blueprint, render_template, request, Response
- from structlog.stdlib import BoundLogger
- from .. import MethodRequest, RoutesAPI, api
- category_bp = Blueprint(__name__, __name__)
- logger: BoundLogger = structlog.get_logger(__name__)
- @category_bp.route('add_category', methods=['POST'])
- def add_category(
- title: str,
- manufacturer_id: int,
- parent_id: Optional[int] = None,
- ) -> Any:
- """
- Добавление новой категории
- :title: Название категории
- :manufacturer_id: ID производителя
- :parent_id: ID родительской категории
- :return: str
- "OK"
- """
- return api(
- method=MethodRequest.post,
- route=RoutesAPI.add_category,
- params={
- 'title': title,
- 'manufacturer_id': manufacturer_id,
- 'parent_id': parent_id
- }
- )
- @category_bp.route('get_categories', methods=['GET'])
- def get_categories(
- manufacturer_id: int,
- offset: int = 0,
- limit: int = 300,
- is_archive: bool = False,
- is_parent: bool = False
- ) -> Any:
- """
- Получение списка категорий по производителю
- :manufacturer_id: ID производителя
- :offset: Начало списка категорий
- :limit: Количество категорий
- :is_archive: Искать ли категории в архиве?
- :is_parent: Искать ли только родительские категории?
- :return: dict
- Возвращает список категорий и общее количество вне фильтра
- {
- "items": [
- {
- "id": 8,
- "title": "Название категории",
- "parent_id": None или ID категории,
- "manufacturer_id": ID производителя,
- "is_archive": False или True,
- "timestamp": "14.10.2023 00:00:00"
- }
- ],
- "count": 1
- }
- """
- return api(
- method=MethodRequest.get,
- route=RoutesAPI.get_categories,
- params={
- "manufacturer_id": manufacturer_id,
- "offset": offset,
- "limit": limit,
- "is_archive": is_archive,
- "is_parent": is_parent
- }
- )
- @category_bp.route('del_category', methods=['DELETE'])
- def del_category(
- category_id: int,
- is_archive: bool = False
- ) -> Any:
- """
- Удаление категории
- :category_id: ID категории
- :is_archive: Искать ли категории в архиве?
- :return: dict
- Возвращает удаленную категорию, сделано так, чтобы можно было быстро восстановить
- {
- "id": ID категории,
- "title": "Название категории",
- "parent_id": None или ID категории,
- "manufacturer_id": ID производителя,
- "is_archive": False или True,
- "timestamp": "14.10.2023 00:00:00"
- }
- """
- return api(
- method=MethodRequest.delete,
- route=RoutesAPI.del_category,
- params={
- "category_id": category_id,
- "is_archive": is_archive
- }
- )
- @category_bp.route('edit_category', methods=['PUT'])
- def edit_category(
- category_id: int,
- category_title: Optional[str] = None,
- parent_id: Optional[int] = None,
- manufacturer_id: Optional[int] = None,
- is_archive: bool = False
- ) -> Any:
- """
- Редактирование категорий
- Аргументы опциональный, чтобы можно было свободно менять данные.
- К примеру указывая `manufacturer_id` он изменит ID производителя.
- :category_id: ID категории
- :category_title: Название категории
- :parent_id: ID родительской категории
- :manufacturer_id: ID производителя
- :is_archive: Искать ли категории в архиве?
- :return: dict
- Возвращает редактированную категорию.
- {
- "id": ID категории,
- "title": "Название категории",
- "parent_id": None или ID категории,
- "manufacturer_id": ID производителя,
- "is_archive": False или True,
- "timestamp": "14.10.2023 00:00:00"
- }
- """
- return api(
- method=MethodRequest.put,
- route=RoutesAPI.edit_category,
- params={
- "category_id": category_id,
- "category_title": category_title,
- "parent_id": parent_id,
- "manufacturer_id": manufacturer_id,
- "is_archive": is_archive
- }
- )
- @category_bp.route('category_archiving', methods=['PUT'])
- def category_archiving(
- category_id: int,
- status: bool = True
- ) -> Any:
- """
- Добавляет выбранную категорию в архив
- :category_id: ID категории
- :status: Статус архивации (True или False)
- :return: dict
- Возвращает редактированную категорию.
- {
- "id": ID категории,
- "title": "Название категории",
- "parent_id": None или ID категории,
- "manufacturer_id": ID производителя,
- "is_archive": False или True,
- "timestamp": "14.10.2023 00:00:00"
- }
- """
- return api(
- method=MethodRequest.put,
- route=RoutesAPI.category_archiving,
- params={
- "category_id": category_id,
- "status": status
- }
- )
Advertisement
Add Comment
Please, Sign In to add comment