github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/sys/describe/impl.go (about) 1 /* 2 * Copyright (c) 2020-present unTill Pro, Ltd. 3 */ 4 5 package describe 6 7 import ( 8 "context" 9 "encoding/json" 10 "strings" 11 12 "github.com/voedger/voedger/pkg/istructs" 13 ) 14 15 func provideQryDescribePackageNames(asp istructs.IAppStructsProvider, appQName istructs.AppQName) func(ctx context.Context, args istructs.ExecQueryArgs, callback istructs.ExecQueryCallback) (err error) { 16 return func(ctx context.Context, args istructs.ExecQueryArgs, callback istructs.ExecQueryCallback) (err error) { 17 as, err := asp.AppStructs(appQName) 18 if err != nil { 19 return err 20 } 21 names := as.DescribePackageNames() 22 namesStr := strings.Join(names, ",") 23 return callback(&result{res: namesStr}) 24 } 25 } 26 27 func provideQryDescribePackage(asp istructs.IAppStructsProvider, appQName istructs.AppQName) func(ctx context.Context, args istructs.ExecQueryArgs, callback istructs.ExecQueryCallback) (err error) { 28 return func(ctx context.Context, args istructs.ExecQueryArgs, callback istructs.ExecQueryCallback) (err error) { 29 as, err := asp.AppStructs(appQName) 30 if err != nil { 31 return err 32 } 33 34 packageName := args.ArgumentObject.AsString(field_PackageName) 35 packageDescription := as.DescribePackage(packageName) 36 37 b, err := json.Marshal(packageDescription) 38 if err != nil { 39 return err 40 } 41 42 return callback(&result{res: string(b)}) 43 } 44 } 45 46 func (r *result) AsString(string) string { 47 return r.res 48 }