""" 檢查 Router 是否符合 system_functions 定義 """ import psycopg2 from psycopg2.extras import Json conn = psycopg2.connect( host="10.1.0.20", port=5433, database="hr_portal", user="admin", password="DC1qaz2wsx" ) cur = conn.cursor() print("=" * 80) print("Router Compliance Check") print("=" * 80) # 取得所有功能模組定義 cur.execute(""" SELECT id, code, module_code, module_functions, name FROM system_functions WHERE function_type = 2 AND is_active = true ORDER BY "order"; """) functions = cur.fetchall() print(f"\nTotal functions: {len(functions)}\n") # 定義操作對應的 HTTP 方法 operation_mapping = { 'View': 'GET /list', 'Create': 'POST /', 'Read': 'GET /{id}', 'Update': 'PUT/PATCH /{id}', 'Delete': 'DELETE /{id}', 'Print': 'GET /{id}/print', 'File': 'POST /{id}/upload' } for func in functions: func_id, code, module_code, module_functions, name = func # module_functions 已經是 Python list if not module_functions: module_functions = [] print(f"[{func_id}] {name} ({code})") print(f" Module: {module_code}") print(f" Functions: {', '.join(module_functions)}") if module_functions: print(f" Required endpoints:") for op in module_functions: if op in operation_mapping: endpoint = operation_mapping[op] print(f" - {endpoint}") else: print(f" [!] No module_functions defined") print() print("=" * 80) print("Implementation Guide") print("=" * 80) print("\nFor each function above, ensure your Router implements:") print(" 1. Create corresponding router file in app/api/v1/") print(" 2. Implement all required endpoints") print(" 3. Register router in app/api/v1/router.py") print(" 4. Use prefix: /api/v1/{module_code} (underscore -> hyphen)") print("\nExample:") print(" tenant_departments -> /api/v1/tenant-departments") print() cur.close() conn.close()