github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/sys/builtin/impl_renameqname.go (about)

     1  /*
     2   * Copyright (c) 2023-present unTill Pro, Ltd.
     3   */
     4  
     5  package builtin
     6  
     7  import (
     8  	"github.com/voedger/voedger/pkg/appdef"
     9  	"github.com/voedger/voedger/pkg/istorage"
    10  	"github.com/voedger/voedger/pkg/istructs"
    11  	istructsmem "github.com/voedger/voedger/pkg/istructsmem"
    12  	"github.com/voedger/voedger/pkg/istructsmem/qrename"
    13  )
    14  
    15  func proivideRenameQName(cfg *istructsmem.AppConfigType, asp istorage.IAppStorageProvider) {
    16  	cfg.Resources.Add(istructsmem.NewCommandFunction(
    17  		appdef.NewQName(appdef.SysPackage, "RenameQName"),
    18  		provideExecCmdRenameQName(asp, cfg)))
    19  }
    20  
    21  func provideExecCmdRenameQName(asp istorage.IAppStorageProvider, cfg *istructsmem.AppConfigType) istructsmem.ExecCommandClosure {
    22  	return func(args istructs.ExecCommandArgs) (err error) {
    23  		storage, err := asp.AppStorage(cfg.Name)
    24  		if err != nil {
    25  			// notest
    26  			return err
    27  		}
    28  		existingQName := args.ArgumentObject.AsQName(field_ExistingQName)
    29  		newQNameStr := args.ArgumentObject.AsString(field_NewQName)
    30  		newQName, err := appdef.ParseQName(newQNameStr)
    31  		if err != nil {
    32  			return err
    33  		}
    34  		return qrename.Rename(storage, existingQName, newQName)
    35  	}
    36  }