Parcourir la source

feat: add inner API to create workspace without requiring email (#13021)

tags/0.15.3
Xin Zhang il y a 9 mois
Parent
révision
a6a727e8a4
Aucun compte lié à l'adresse e-mail de l'auteur
1 fichiers modifiés avec 32 ajouts et 0 suppressions
  1. 32
    0
      api/controllers/inner_api/workspace/workspace.py

+ 32
- 0
api/controllers/inner_api/workspace/workspace.py Voir le fichier

import json

from flask_restful import Resource, reqparse # type: ignore from flask_restful import Resource, reqparse # type: ignore


from controllers.console.wraps import setup_required from controllers.console.wraps import setup_required
return {"message": "enterprise workspace created."} 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(EnterpriseWorkspace, "/enterprise/workspace")
api.add_resource(EnterpriseWorkspaceNoOwnerEmail, "/enterprise/workspace/ownerless")

Chargement…
Annuler
Enregistrer