From 78c5fc39b0342bc089a6351efa65cc7a27d5a077 Mon Sep 17 00:00:00 2001 From: Kirill Date: Mon, 13 Apr 2026 14:20:00 +0300 Subject: [PATCH] feat(handlers): Add handler for get all products by id --- db/handlers/product_handler.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/db/handlers/product_handler.py b/db/handlers/product_handler.py index e6c70c7..5258084 100644 --- a/db/handlers/product_handler.py +++ b/db/handlers/product_handler.py @@ -1,6 +1,7 @@ import sqlite3 from typing import List, Dict, Any, Optional, Tuple from loguru import logger as log +from db.DBDataUtils import get_products_by_page, get_total_products_pages def get_products_with_filters( category_id: int, @@ -268,3 +269,29 @@ def generate_full_description(row: sqlite3.Row) -> str: parts.append(f"Цвет: {row['color']}") return " ".join(parts) + +def get_product_list(page=1, limit=100, category_id=None): + """ + Получить список товаров с пагинацией. + Возвращает список словарей с полями id, full_name, description. + """ + conn = None + try: + import sqlite3 + conn = sqlite3.connect('pipe_store.db') + conn.row_factory = sqlite3.Row + + offset = (page - 1) * limit + rows = get_products_by_page(conn, page, limit, category_id) + + products = [] + for row in rows: + products.append({ + 'id': row['id'], + 'full_name': row['full_name'], + 'description': row['description'] + }) + return products + finally: + if conn: + conn.close()