https://git.rustprogersteam.ru/PVHProject/PVHFrontend/src/branch/main/README.md
58 lines
1.8 KiB
Python
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
|