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 }