From 859fbf3ddb527cbc1bb033befc235f70d1678a6d Mon Sep 17 00:00:00 2001 From: zhangx1n Date: Fri, 24 Jan 2025 19:22:15 +0800 Subject: [PATCH 1/2] feat: add create workspace without email --- .../inner_api/workspace/workspace.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/api/controllers/inner_api/workspace/workspace.py b/api/controllers/inner_api/workspace/workspace.py index d7346b13b10a90..8d6adde7bf1e0f 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 @@ -29,4 +31,34 @@ 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") \ No newline at end of file From f8e68a0287e21f919a7571ffcaea62df279fe610 Mon Sep 17 00:00:00 2001 From: zhangx1n Date: Fri, 24 Jan 2025 19:52:15 +0800 Subject: [PATCH 2/2] reformat --- api/controllers/inner_api/workspace/workspace.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/controllers/inner_api/workspace/workspace.py b/api/controllers/inner_api/workspace/workspace.py index 8d6adde7bf1e0f..8b2a7c0c4ea1f7 100644 --- a/api/controllers/inner_api/workspace/workspace.py +++ b/api/controllers/inner_api/workspace/workspace.py @@ -61,4 +61,4 @@ def post(self): api.add_resource(EnterpriseWorkspace, "/enterprise/workspace") -api.add_resource(EnterpriseWorkspaceNoOwnerEmail, "/enterprise/workspace/ownerless") \ No newline at end of file +api.add_resource(EnterpriseWorkspaceNoOwnerEmail, "/enterprise/workspace/ownerless")