增加workspace后端api端点

This commit is contained in:
jingrow 2026-03-17 18:49:05 +08:00
parent e87ba0a068
commit 649ace7e19

View File

@ -0,0 +1,92 @@
# Copyright (c) 2025, JINGROW and contributors
# For license information, please see license.txt
"""
Workspace whitelist functions - Forward to SaaS using unified HTTP client
"""
import jingrow
import logging
from jingrow.utils.auth import saas_post
logger = logging.getLogger(__name__)
@jingrow.whitelist()
def new_page(**kwargs):
"""New workspace page - Forward to SaaS"""
resp = saas_post('/api/action/jingrow.desk.pagetype.workspace.workspace.new_page', json=kwargs)
if resp.status_code == 200:
return resp.json().get("message")
logger.error(f"[new_page] SaaS error: {resp.status_code}")
return None
@jingrow.whitelist()
def save_page(**kwargs):
"""Save workspace page - Forward to SaaS"""
resp = saas_post('/api/action/jingrow.desk.pagetype.workspace.workspace.save_page', json=kwargs)
if resp.status_code == 200:
return resp.json().get("message")
logger.error(f"[save_page] SaaS error: {resp.status_code}")
return None
@jingrow.whitelist()
def update_page(**kwargs):
"""Update workspace page - Forward to SaaS"""
resp = saas_post('/api/action/jingrow.desk.pagetype.workspace.workspace.update_page', json=kwargs)
if resp.status_code == 200:
return resp.json().get("message")
logger.error(f"[update_page] SaaS error: {resp.status_code}")
return None
@jingrow.whitelist()
def hide_page(**kwargs):
"""Hide workspace page - Forward to SaaS"""
resp = saas_post('/api/action/jingrow.desk.pagetype.workspace.workspace.hide_page', json=kwargs)
if resp.status_code == 200:
return resp.json().get("message")
logger.error(f"[hide_page] SaaS error: {resp.status_code}")
return None
@jingrow.whitelist()
def unhide_page(**kwargs):
"""Unhide workspace page - Forward to SaaS"""
resp = saas_post('/api/action/jingrow.desk.pagetype.workspace.workspace.unhide_page', json=kwargs)
if resp.status_code == 200:
return resp.json().get("message")
logger.error(f"[unhide_page] SaaS error: {resp.status_code}")
return None
@jingrow.whitelist()
def duplicate_page(**kwargs):
"""Duplicate workspace page - Forward to SaaS"""
resp = saas_post('/api/action/jingrow.desk.pagetype.workspace.workspace.duplicate_page', json=kwargs)
if resp.status_code == 200:
return resp.json().get("message")
logger.error(f"[duplicate_page] SaaS error: {resp.status_code}")
return None
@jingrow.whitelist()
def delete_page(**kwargs):
"""Delete workspace page - Forward to SaaS"""
resp = saas_post('/api/action/jingrow.desk.pagetype.workspace.workspace.delete_page', json=kwargs)
if resp.status_code == 200:
return resp.json().get("message")
logger.error(f"[delete_page] SaaS error: {resp.status_code}")
return None
@jingrow.whitelist()
def sort_pages(**kwargs):
"""Sort workspace pages - Forward to SaaS"""
resp = saas_post('/api/action/jingrow.desk.pagetype.workspace.workspace.sort_pages', json=kwargs)
if resp.status_code == 200:
return resp.json().get("message")
logger.error(f"[sort_pages] SaaS error: {resp.status_code}")
return None