4f7c6673c0b29faacc84f7fbf2fef09beb190dde6c895fa0a4427f91c904db95.json 34 KB

1
  1. {"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "label": "public.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L1"}, {"id": "api_public_avatar_url_field", "label": "_avatar_url_field()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L35"}, {"id": "api_public_build_user_info_payload", "label": "_build_user_info_payload()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L43"}, {"id": "api_public_jwt_user_payload", "label": "_jwt_user_payload()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L59"}, {"id": "api_public_web_login_rsa_public_key", "label": "web_login_rsa_public_key()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L70"}, {"id": "api_public_web_login", "label": "web_login()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L77"}, {"id": "api_public_refresh_token", "label": "refresh_token()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L135"}, {"id": "api_public_logout", "label": "logout()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L197"}, {"id": "api_public_get_current_user_profile", "label": "get_current_user_profile()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L216"}, {"id": "api_public_get_web_auth_menu_codes", "label": "get_web_auth_menu_codes()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L249"}, {"id": "api_public_public_quote_share", "label": "public_quote_share()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L286"}, {"id": "api_public_rationale_1", "label": "\u516c\u5171\u63a5\u53e3\uff08Web \u767b\u5f55\u3001\u5237\u65b0 Token\u3001\u767b\u51fa\uff1b\u7528\u6237\u6a21\u578b\u5bf9\u9f50 docs/sql/shanxia2.0.sql \u57fa\u7ebf\uff09", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L1"}, {"id": "api_public_rationale_44", "label": "\u4e0e web-admin `userInfo` \u5b57\u6bb5\u7ea6\u5b9a\u4e00\u81f4\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L44"}, {"id": "api_public_rationale_71", "label": "Web \u7aef\u767b\u5f55\u7528 RSA \u516c\u94a5\uff08PKCS#1 v1.5\uff0c\u4e0e JSEncrypt \u4e00\u81f4\uff09", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L71"}, {"id": "api_public_rationale_82", "label": "Web \u7aef\u767b\u5f55\uff1a\u8d26\u53f7\u4e3a sys_user.user_no\uff0c\u5bc6\u7801\u4e3a sys_user.password\uff08bcrypt\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L82"}, {"id": "api_public_rationale_198", "label": "\u767b\u51fa\uff1a\u540a\u9500 Redis \u4f1a\u8bdd\uff08\u82e5\u5df2\u914d\u7f6e REDIS_HOST\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L198"}, {"id": "api_public_rationale_217", "label": "\u83b7\u53d6\u5f53\u524d\u7528\u6237\u4fe1\u606f\uff08\u4e0e sys_user \u5b57\u6bb5\u5bf9\u5e94\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L217"}, {"id": "api_public_rationale_250", "label": "\u83b7\u53d6\u5f53\u524d\u7528\u6237\u83dc\u5355\u6743\u9650\u6807\u8bc6\uff08sys_menu.perms\uff0c\u7ecf\u89d2\u8272\u7ee7\u627f\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L250"}, {"id": "api_public_rationale_292", "label": "\u516c\u5f00\u5206\u4eab\u67e5\u770b\u62a5\u4ef7\u5355 \u2014 Java: GET /share/{shareCode}\uff08\u65e0 JWT\uff09", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L292"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L2", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "sqlalchemy_exc", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L8", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "app_core_security", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L9", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "app_core_auth", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L10", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "app_core_response", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L23", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "app_core_config", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L24", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "app_models_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L25", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "app_crud_user", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L26", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L27", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "app_core", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L28", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "app_services_web_auth_roles", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L29", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "app_crud_crm_quote", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L30", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "api_public_avatar_url_field", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L35", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "api_public_build_user_info_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L43", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "api_public_jwt_user_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L59", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "api_public_web_login_rsa_public_key", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L70", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "api_public_web_login", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L77", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "api_public_refresh_token", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L135", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "api_public_logout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L197", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "api_public_get_current_user_profile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L216", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "api_public_get_web_auth_menu_codes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L249", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "target": "api_public_public_quote_share", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L286", "weight": 1.0}, {"source": "api_public_build_user_info_payload", "target": "api_public_avatar_url_field", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L55", "weight": 1.0}, {"source": "api_public_web_login", "target": "api_public_jwt_user_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L107", "weight": 1.0}, {"source": "api_public_web_login", "target": "api_public_build_user_info_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L129", "weight": 1.0}, {"source": "api_public_refresh_token", "target": "api_public_jwt_user_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L169", "weight": 1.0}, {"source": "api_public_rationale_1", "target": "users_zlwu_work_00code_shanxia2_0_backend_app_api_public_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L1", "weight": 1.0}, {"source": "api_public_rationale_44", "target": "api_public_build_user_info_payload", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L44", "weight": 1.0}, {"source": "api_public_rationale_71", "target": "api_public_web_login_rsa_public_key", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L71", "weight": 1.0}, {"source": "api_public_rationale_82", "target": "api_public_web_login", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L82", "weight": 1.0}, {"source": "api_public_rationale_198", "target": "api_public_logout", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L198", "weight": 1.0}, {"source": "api_public_rationale_217", "target": "api_public_get_current_user_profile", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L217", "weight": 1.0}, {"source": "api_public_rationale_250", "target": "api_public_get_web_auth_menu_codes", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L250", "weight": 1.0}, {"source": "api_public_rationale_292", "target": "api_public_public_quote_share", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L292", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_public_avatar_url_field", "callee": "getattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L36"}, {"caller_nid": "api_public_avatar_url_field", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L39"}, {"caller_nid": "api_public_avatar_url_field", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L39"}, {"caller_nid": "api_public_build_user_info_payload", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L45"}, {"caller_nid": "api_public_build_user_info_payload", "callee": "getattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L45"}, {"caller_nid": "api_public_build_user_info_payload", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L51"}, {"caller_nid": "api_public_build_user_info_payload", "callee": "getattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L51"}, {"caller_nid": "api_public_web_login_rsa_public_key", "callee": "ensure_initialized", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L72"}, {"caller_nid": "api_public_web_login_rsa_public_key", "callee": "success_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L73"}, {"caller_nid": "api_public_web_login_rsa_public_key", "callee": "get_public_pem", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L73"}, {"caller_nid": "api_public_web_login", "callee": "ensure_initialized", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L83"}, {"caller_nid": "api_public_web_login", "callee": "extract_login_credentials", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L84"}, {"caller_nid": "api_public_web_login", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L86"}, {"caller_nid": "api_public_web_login", "callee": "get_by_user_no_for_web_login", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L88"}, {"caller_nid": "api_public_web_login", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L91"}, {"caller_nid": "api_public_web_login", "callee": "getattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L93"}, {"caller_nid": "api_public_web_login", "callee": "verify_password", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L94"}, {"caller_nid": "api_public_web_login", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L95"}, {"caller_nid": "api_public_web_login", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L98"}, {"caller_nid": "api_public_web_login", "callee": "resolve_web_role_for_user", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L100"}, {"caller_nid": "api_public_web_login", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L102"}, {"caller_nid": "api_public_web_login", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L103"}, {"caller_nid": "api_public_web_login", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L104"}, {"caller_nid": "api_public_web_login", "callee": "create_access_token", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L106"}, {"caller_nid": "api_public_web_login", "callee": "create_refresh_token", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L111"}, {"caller_nid": "api_public_web_login", "callee": "store_session", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L121"}, {"caller_nid": "api_public_web_login", "callee": "store_refresh_token", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L122"}, {"caller_nid": "api_public_web_login", "callee": "success_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L124"}, {"caller_nid": "api_public_refresh_token", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L137"}, {"caller_nid": "api_public_refresh_token", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L139"}, {"caller_nid": "api_public_refresh_token", "callee": "decode_token", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L142"}, {"caller_nid": "api_public_refresh_token", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L143"}, {"caller_nid": "api_public_refresh_token", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L144"}, {"caller_nid": "api_public_refresh_token", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L146"}, {"caller_nid": "api_public_refresh_token", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L147"}, {"caller_nid": "api_public_refresh_token", "callee": "is_session_valid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L149"}, {"caller_nid": "api_public_refresh_token", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L150"}, {"caller_nid": "api_public_refresh_token", "callee": "is_refresh_token_valid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L151"}, {"caller_nid": "api_public_refresh_token", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L152"}, {"caller_nid": "api_public_refresh_token", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L154"}, {"caller_nid": "api_public_refresh_token", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L155"}, {"caller_nid": "api_public_refresh_token", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L158"}, {"caller_nid": "api_public_refresh_token", "callee": "resolve_web_role_for_user", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L160"}, {"caller_nid": "api_public_refresh_token", "callee": "revoke_refresh_token", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L162"}, {"caller_nid": "api_public_refresh_token", "callee": "extend_session", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L163"}, {"caller_nid": "api_public_refresh_token", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L165"}, {"caller_nid": "api_public_refresh_token", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L166"}, {"caller_nid": "api_public_refresh_token", "callee": "create_access_token", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L168"}, {"caller_nid": "api_public_refresh_token", "callee": "create_refresh_token", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L173"}, {"caller_nid": "api_public_refresh_token", "callee": "store_refresh_token", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L183"}, {"caller_nid": "api_public_refresh_token", "callee": "success_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L185"}, {"caller_nid": "api_public_refresh_token", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L193"}, {"caller_nid": "api_public_logout", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L199"}, {"caller_nid": "api_public_logout", "callee": "startswith", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L200"}, {"caller_nid": "api_public_logout", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L201"}, {"caller_nid": "api_public_logout", "callee": "replace", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L203"}, {"caller_nid": "api_public_logout", "callee": "decode_token", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L205"}, {"caller_nid": "api_public_logout", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L206"}, {"caller_nid": "api_public_logout", "callee": "revoke_session", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L208"}, {"caller_nid": "api_public_logout", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L210"}, {"caller_nid": "api_public_logout", "callee": "success_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L212"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L218"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "startswith", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L219"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L220"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "replace", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L222"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "get_current_user_by_token", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L224"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L226"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L227"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L227"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "success_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L228"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L230"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L231"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L232"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L233"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L234"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L235"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L236"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L237"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L240"}, {"caller_nid": "api_public_get_current_user_profile", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L245"}, {"caller_nid": "api_public_get_web_auth_menu_codes", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L251"}, {"caller_nid": "api_public_get_web_auth_menu_codes", "callee": "startswith", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L252"}, {"caller_nid": "api_public_get_web_auth_menu_codes", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L253"}, {"caller_nid": "api_public_get_web_auth_menu_codes", "callee": "replace", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L255"}, {"caller_nid": "api_public_get_web_auth_menu_codes", "callee": "get_current_user_by_token", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L257"}, {"caller_nid": "api_public_get_web_auth_menu_codes", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L258"}, {"caller_nid": "api_public_get_web_auth_menu_codes", "callee": "success_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L260"}, {"caller_nid": "api_public_get_web_auth_menu_codes", "callee": "iter_user_menu_perm_codes", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L269"}, {"caller_nid": "api_public_get_web_auth_menu_codes", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L269"}, {"caller_nid": "api_public_get_web_auth_menu_codes", "callee": "sorted", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L270"}, {"caller_nid": "api_public_get_web_auth_menu_codes", "callee": "success_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L274"}, {"caller_nid": "api_public_get_web_auth_menu_codes", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L282"}, {"caller_nid": "api_public_public_quote_share", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L295"}, {"caller_nid": "api_public_public_quote_share", "callee": "view_by_share_code", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L296"}, {"caller_nid": "api_public_public_quote_share", "callee": "success_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L303"}, {"caller_nid": "api_public_public_quote_share", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L305"}, {"caller_nid": "api_public_public_quote_share", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L305"}, {"caller_nid": "api_public_public_quote_share", "callee": "error_response", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L307"}, {"caller_nid": "api_public_public_quote_share", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py", "source_location": "L307"}]}