From 48a825e3f34ddd80db346a2e97fc1cad0ed1bfde Mon Sep 17 00:00:00 2001 From: jingrow Date: Wed, 11 Mar 2026 17:36:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0get=5Fscript=E7=AD=89?= =?UTF-8?q?=E5=90=8E=E7=AB=AFapi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/jingrow/jingrow/desk/query_report.py | 48 ++++++++++++++++++++ apps/jingrow/jingrow/desk/search/__init__.py | 1 + apps/jingrow/jingrow/desk/search/search.py | 31 +++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 apps/jingrow/jingrow/desk/query_report.py create mode 100644 apps/jingrow/jingrow/desk/search/__init__.py create mode 100644 apps/jingrow/jingrow/desk/search/search.py diff --git a/apps/jingrow/jingrow/desk/query_report.py b/apps/jingrow/jingrow/desk/query_report.py new file mode 100644 index 0000000..b12f801 --- /dev/null +++ b/apps/jingrow/jingrow/desk/query_report.py @@ -0,0 +1,48 @@ +# Copyright (c) 2025, JINGROW and contributors +# For license information, please see license.txt + +""" +Query Report 相关白名单函数 - 转发到 SaaS 端 +""" + +import jingrow +import requests +import logging +from jingrow.config import Config +from jingrow.utils.auth import get_request_session_cookie + +logger = logging.getLogger(__name__) + + +@jingrow.whitelist() +def run(**kwargs): + """运行查询报表 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.desk.query_report.run" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.post(url, headers=headers, json=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", {}) + logger.error(f"[query_report.run] SaaS error: {resp.status_code}") + return {} + + +@jingrow.whitelist() +def get_script(**kwargs): + """获取报表脚本 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.desk.query_report.get_script" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.post(url, headers=headers, json=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", {}) + logger.error(f"[query_report.get_script] SaaS error: {resp.status_code}") + return {} diff --git a/apps/jingrow/jingrow/desk/search/__init__.py b/apps/jingrow/jingrow/desk/search/__init__.py new file mode 100644 index 0000000..92cb004 --- /dev/null +++ b/apps/jingrow/jingrow/desk/search/__init__.py @@ -0,0 +1 @@ +# Desk search package diff --git a/apps/jingrow/jingrow/desk/search/search.py b/apps/jingrow/jingrow/desk/search/search.py new file mode 100644 index 0000000..e930d6e --- /dev/null +++ b/apps/jingrow/jingrow/desk/search/search.py @@ -0,0 +1,31 @@ +# Copyright (c) 2025, JINGROW and contributors +# For license information, please see license.txt + +""" +Search 相关白名单函数 - 转发到 SaaS 端 +""" + +import jingrow +import requests +import logging +from jingrow.config import Config +from jingrow.utils.auth import get_request_session_cookie + +logger = logging.getLogger(__name__) + + +@jingrow.whitelist() +def search_link(**kwargs): + """搜索链接 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.desk.search.search_link" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.post(url, headers=headers, json=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", []) + logger.error(f"[search_link] SaaS error: {resp.status_code}") + return []