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)