Files
PVHBackend/app.py
T

58 lines
1.8 KiB
Python

from sys import exit
from flask import Flask
from flask_cors import CORS
from db.InitializeDB import init_database
from db.InitializeDBData import init_tables
from utils.loadDotENV import initializeENV
from api.categories import api_category
from api.product import api_product
from api.email import api_email
from api.assets import assets_bp
from werkzeug.middleware.proxy_fix import ProxyFix
from db.handlers.product_handler import get_product_list
from flask import jsonify, request
# Инициализация
initializeENV()
init_database()
init_tables()
# Создаем приложение Flask
app = Flask(__name__)
CORS(app)
# Регистрируем blueprint
app.register_blueprint(api_category)
app.register_blueprint(api_product)
app.register_blueprint(api_email)
app.register_blueprint(assets_bp)
app.wsgi_app = ProxyFix(app.wsgi_app, x_proto=1, x_host=1)
@app.route('/productList', methods=['GET'], strict_slashes=False)
def product_list():
"""
GET /api/productList/
Получение списка товаров (без обязательных параметров)
Query params: ?page=1&limit=20&categoryId=2 (все опциональны)
"""
try:
page = request.args.get('page', 1, type=int)
limit = request.args.get('limit', 100, type=int)
category_id = request.args.get('categoryId', type=int)
if page < 1:
page = 1
if limit < 1 or limit > 200:
limit = 100
products = get_product_list(page, limit, category_id)
return jsonify(products), 200
except Exception as e:
return jsonify({"error": str(e)}), 500
@app.route('/health', methods=['GET'])
def health_check():
"""Проверка работоспособности API"""
return {"status": "ok", "message": "API is running"}, 200