MCPcopy Create free account
hub / github.com/pydio/cells / CreateWorkspace

Method CreateWorkspace

idm/workspace/grpc/handler.go:52–100  ·  view source on GitHub ↗

CreateWorkspace in database

(ctx context.Context, req *idm.CreateWorkspaceRequest)

Source from the content-addressed store, hash-verified

50
51// CreateWorkspace in database
52func (h *Handler) CreateWorkspace(ctx context.Context, req *idm.CreateWorkspaceRequest) (*idm.CreateWorkspaceResponse, error) {
53 dao, err := manager.Resolve[workspace.DAO](ctx)
54 if err != nil {
55 return nil, err
56 }
57
58 if req.Workspace.Slug == "" {
59 req.Workspace.Slug = slug.Make(req.Workspace.Label)
60 }
61 update, err := dao.Add(ctx, req.Workspace)
62 // ADD POLICIES
63 if len(req.Workspace.Policies) > 0 {
64 if req.Workspace.Policies, err = dao.AddPolicies(ctx, update, req.Workspace.UUID, req.Workspace.Policies); err != nil {
65 return nil, err
66 }
67 }
68 resp := &idm.CreateWorkspaceResponse{
69 Workspace: req.Workspace,
70 }
71 if err != nil {
72 return nil, err
73 }
74
75 if update {
76 // Propagate creation or update event
77 broker.MustPublish(ctx, common.TopicIdmEvent, &idm.ChangeEvent{
78 Type: idm.ChangeEventType_UPDATE,
79 Workspace: req.Workspace,
80 })
81 log.Auditer(ctx).Info(
82 fmt.Sprintf("Updated workspace [%s]", req.Workspace.Slug),
83 log.GetAuditId(common.AuditWsUpdate),
84 req.Workspace.ZapUuid(),
85 )
86 } else {
87 // Propagate creation or update event
88 broker.MustPublish(ctx, common.TopicIdmEvent, &idm.ChangeEvent{
89 Type: idm.ChangeEventType_CREATE,
90 Workspace: req.Workspace,
91 })
92 log.Auditer(ctx).Info(
93 fmt.Sprintf("Created workspace [%s]", req.Workspace.Slug),
94 log.GetAuditId(common.AuditWsCreate),
95 req.Workspace.ZapUuid(),
96 )
97 }
98
99 return resp, nil
100}
101
102// DeleteWorkspace from database
103func (h *Handler) DeleteWorkspace(ctx context.Context, req *idm.DeleteWorkspaceRequest) (*idm.DeleteWorkspaceResponse, error) {

Callers

nothing calls this directly

Calls 8

MakeFunction · 0.92
MustPublishFunction · 0.92
AuditerFunction · 0.92
GetAuditIdFunction · 0.92
AddMethod · 0.65
AddPoliciesMethod · 0.65
InfoMethod · 0.65
ZapUuidMethod · 0.65

Tested by

no test coverage detected