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  }