flask-libroro/old_routes/other_routes.py
2025-02-20 17:50:47 +08:00

82 lines
3.1 KiB
Python

from flask import Blueprint, request
from old_routes import other_bp
from utils.jwt_utils import verify_access_token
from utils.response_utils import use_response_success, use_page_response_success, un_authorized_response
from mock_data import MOCK_CODES, MOCK_MENUS
from faker import Faker
@other_bp.route('/all', methods=['GET'])
def get_all():
user_info = verify_access_token()
if not user_info:
return un_authorized_response()
menus = next((m['menus'] for m in MOCK_MENUS if m['username'] == user_info['username']), [])
return use_response_success(menus)
@other_bp.route('/codes', methods=['GET'])
def get_codes():
user_info = verify_access_token()
if not user_info:
return un_authorized_response()
codes = next((c['codes'] for c in MOCK_CODES if c['username'] == user_info['username']), [])
return use_response_success(codes)
@other_bp.route('/info', methods=['GET'])
def get_info():
user_info = verify_access_token()
if not user_info:
return un_authorized_response()
return use_response_success(user_info)
@other_bp.route('/list', methods=['GET'])
def get_list():
user_info = verify_access_token()
if not user_info:
return un_authorized_response()
fake = Faker()
def generate_mock_data_list(count):
data_list = []
for _ in range(count):
data_item = {
'id': fake.uuid4(),
'imageUrl': fake.image_url(),
'imageUrl2': fake.image_url(),
'open': fake.boolean(),
'status': fake.random_element(['success', 'error', 'warning']),
'productName': fake.word(),
'price': fake.random_int(min=1, max=1000),
'currency': fake.currency_code(),
'quantity': fake.random_int(min=1, max=100),
'available': fake.boolean(),
'category': fake.word(),
'releaseDate': fake.date_time_this_decade().strftime('%Y-%m-%d'),
'rating': fake.random_float(min=1, max=5),
'description': fake.sentence(),
'weight': fake.random_float(min=0.1, max=10),
'color': fake.color_name(),
'inProduction': fake.boolean(),
'tags': [fake.word() for _ in range(3)]
}
data_list.append(data_item)
return data_list
mock_data = generate_mock_data_list(100)
page = request.args.get('page', 1)
page_size = request.args.get('pageSize', 10)
sort_by = request.args.get('sortBy')
sort_order = request.args.get('sortOrder', 'asc')
list_data = mock_data.copy()
if sort_by and sort_by in list_data[0]:
if sort_order == 'asc':
if sort_by == 'price':
list_data.sort(key=lambda x: float(x[sort_by]))
else:
list_data.sort(key=lambda x: x[sort_by])
else:
if sort_by == 'price':
list_data.sort(key=lambda x: float(x[sort_by]), reverse=True)
else:
list_data.sort(key=lambda x: x[sort_by], reverse=True)
return use_page_response_success(page, page_size, list_data)