github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/sys/invite/impl_createjoinedworkspace.go (about) 1 /* 2 * Copyright (c) 2023-present unTill Pro, Ltd. 3 */ 4 5 package invite 6 7 import ( 8 "github.com/voedger/voedger/pkg/appdef" 9 "github.com/voedger/voedger/pkg/istructs" 10 "github.com/voedger/voedger/pkg/istructsmem" 11 "github.com/voedger/voedger/pkg/state" 12 "github.com/voedger/voedger/pkg/sys/authnz" 13 ) 14 15 func provideCmdCreateJoinedWorkspace(cfg *istructsmem.AppConfigType) { 16 cfg.Resources.Add(istructsmem.NewCommandFunction( 17 qNameCmdCreateJoinedWorkspace, 18 execCmdCreateJoinedWorkspace, 19 )) 20 } 21 22 func execCmdCreateJoinedWorkspace(args istructs.ExecCommandArgs) (err error) { 23 svbCDocJoinedWorkspace, ok, err := GetCDocJoinedWorkspaceForUpdate(args.State, args.Intents, args.ArgumentObject.AsInt64(Field_InvitingWorkspaceWSID)) 24 if err != nil { 25 // notest 26 return err 27 } 28 if ok { 29 svbCDocJoinedWorkspace.PutString(Field_Roles, args.ArgumentObject.AsString(Field_Roles)) 30 svbCDocJoinedWorkspace.PutBool(appdef.SystemField_IsActive, true) 31 32 return nil 33 } 34 skbCDocJoinedWorkspace, err := args.State.KeyBuilder(state.Record, QNameCDocJoinedWorkspace) 35 if err != nil { 36 return 37 } 38 svbCDocJoinedWorkspace, err = args.Intents.NewValue(skbCDocJoinedWorkspace) 39 if err != nil { 40 return err 41 } 42 svbCDocJoinedWorkspace.PutRecordID(appdef.SystemField_ID, istructs.RecordID(1)) 43 svbCDocJoinedWorkspace.PutString(Field_Roles, args.ArgumentObject.AsString(Field_Roles)) 44 svbCDocJoinedWorkspace.PutString(authnz.Field_WSName, args.ArgumentObject.AsString(authnz.Field_WSName)) 45 svbCDocJoinedWorkspace.PutInt64(Field_InvitingWorkspaceWSID, args.ArgumentObject.AsInt64(Field_InvitingWorkspaceWSID)) 46 47 return err 48 }