diff --git a/console/command_executer.go b/console/command_executer.go index 97620f3bb6..bf836da45c 100644 --- a/console/command_executer.go +++ b/console/command_executer.go @@ -67,8 +67,17 @@ func (ce *CommandExecuter) clientArgs(iface interface{}) (args []string) { for i := 0; i < typ.NumField(); i++ { valField := val.Field(i) typeField := typ.Field(i) + //log.Printf("%v (%v)", typeField.Name, valField.Kind()) switch valField.Kind() { - case reflect.Struct: + case reflect.Ptr, reflect.Struct: + if valField.Kind() == reflect.Ptr { + valField = reflect.New(valField.Type().Elem()).Elem() + if valField.Kind() != reflect.Struct { + //log.Printf("Here: %v (%v)", typeField.Name, valField.Kind()) + args = append(args, typeField.Name) + continue + } + } args = append(args, ce.clientArgs(valField.Interface())...) default: args = append(args, typeField.Name) diff --git a/console/lcr.go b/console/lcr.go index 711bcc9efb..cd93043d37 100644 --- a/console/lcr.go +++ b/console/lcr.go @@ -20,13 +20,14 @@ package console import ( "github.com/cgrates/cgrates/engine" + "github.com/cgrates/cgrates/utils" ) func init() { c := &CmdGetLcr{ name: "lcr", rpcMethod: "ApierV1.GetLcr", - rpcParams: &engine.LcrRequest{}, + rpcParams: &engine.LcrRequest{Paginator: &utils.Paginator{}}, } commands[c.Name()] = c c.CommandExecuter = &CommandExecuter{c} @@ -50,7 +51,7 @@ func (self *CmdGetLcr) RpcMethod() string { func (self *CmdGetLcr) RpcParams(reset bool) interface{} { if reset || self.rpcParams == nil { - self.rpcParams = &engine.LcrRequest{} + self.rpcParams = &engine.LcrRequest{Paginator: &utils.Paginator{}} } return self.rpcParams }