From 2de1735c76e36b962c333fc44c5cef89a991ffde Mon Sep 17 00:00:00 2001 From: zhangx1n Date: Thu, 23 Jan 2025 15:51:18 +0800 Subject: [PATCH] feat: add inner API to create enterprise workspace without owner_email --- .../inner_api/workspace/workspace.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/api/controllers/inner_api/workspace/workspace.py b/api/controllers/inner_api/workspace/workspace.py index d7346b13b10a90..6718af712d2844 100644 --- a/api/controllers/inner_api/workspace/workspace.py +++ b/api/controllers/inner_api/workspace/workspace.py @@ -1,3 +1,5 @@ +import json + from flask_restful import Resource, reqparse # type: ignore from controllers.console.wraps import setup_required @@ -28,5 +30,38 @@ def post(self): return {"message": "enterprise workspace created."} +class EnterpriseWorkspaceNoOwnerEmail(Resource): + @setup_required + @inner_api_only + def post(self): + parser = reqparse.RequestParser() + parser.add_argument("name", type=str, required=True, location="json") + args = parser.parse_args() + + tenant = TenantService.create_tenant( + args["name"], + is_from_dashboard=True + ) + + + tenant_was_created.send(tenant) + + + resp = { + "id": tenant.id, + "name": tenant.name, + "encrypt_public_key": tenant.encrypt_public_key, + "plan": tenant.plan, + "status": tenant.status, + "custom_config": json.loads(tenant.custom_config) if tenant.custom_config else {}, + "created_at": tenant.created_at.isoformat() if tenant.created_at else None, + "updated_at": tenant.updated_at.isoformat() if tenant.updated_at else None, + } + + return { + "message": "enterprise workspace created.", + "tenant": resp, + } api.add_resource(EnterpriseWorkspace, "/enterprise/workspace") +api.add_resource(EnterpriseWorkspaceNoOwnerEmail, "/enterprise/workspace/ownerless")