diff --git a/apps/jingrow/jingrow/desk/pagetype/workspace/workspace.py b/apps/jingrow/jingrow/desk/pagetype/workspace/workspace.py new file mode 100644 index 0000000..2bc4d3c --- /dev/null +++ b/apps/jingrow/jingrow/desk/pagetype/workspace/workspace.py @@ -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