diff --git a/console/atributes_get_for_event.go b/console/atributes_get_for_event.go index 096eb0fc5..4c29f94f9 100644 --- a/console/atributes_get_for_event.go +++ b/console/atributes_get_for_event.go @@ -58,15 +58,20 @@ func (self *CmdGetAttributeForEvent) RpcParams(reset bool) interface{} { } func (self *CmdGetAttributeForEvent) PostprocessRpcParams() error { //utils.CGREvent + var tenant string param := self.rpcParams.(*map[string]interface{}) + if (*param)[utils.Tenant] != nil && (*param)[utils.Tenant].(string) != "" { + tenant = (*param)[utils.Tenant].(string) + delete((*param), utils.Tenant) + } else { + tenant = config.CgrConfig().DefaultTenant + } cgrev := utils.CGREvent{ - Tenant: config.CgrConfig().DefaultTenant, + Tenant: tenant, ID: utils.UUIDSha1Prefix(), Event: *param, } - if (*param)[utils.Tenant] != nil && (*param)[utils.Tenant].(string) != "" { - cgrev.Tenant = (*param)[utils.Tenant].(string) - } + self.rpcParams = cgrev return nil } diff --git a/console/resource_for_event.go b/console/resource_for_event.go new file mode 100644 index 000000000..5a836a716 --- /dev/null +++ b/console/resource_for_event.go @@ -0,0 +1,83 @@ +/* +Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments +Copyright (C) ITsysCOM GmbH + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see +*/ + +package console + +import ( + "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/engine" + "github.com/cgrates/cgrates/utils" +) + +func init() { + c := &CmdGetResourceForEvent{ + name: "get_resources_for_event", + rpcMethod: "ResourceSv1.GetResourcesForEvent", + } + commands[c.Name()] = c + c.CommandExecuter = &CommandExecuter{c} +} + +// Commander implementation +type CmdGetResourceForEvent struct { + name string + rpcMethod string + rpcParams interface{} + *CommandExecuter +} + +func (self *CmdGetResourceForEvent) Name() string { + return self.name +} + +func (self *CmdGetResourceForEvent) RpcMethod() string { + return self.rpcMethod +} + +func (self *CmdGetResourceForEvent) RpcParams(reset bool) interface{} { + if reset || self.rpcParams == nil { + mp := make(map[string]interface{}) + self.rpcParams = &mp + } + return self.rpcParams +} + +func (self *CmdGetResourceForEvent) PostprocessRpcParams() error { //utils.CGREvent + var tenant string + param := self.rpcParams.(*map[string]interface{}) + if (*param)[utils.Tenant] != nil && (*param)[utils.Tenant].(string) != "" { + tenant = (*param)[utils.Tenant].(string) + delete((*param), utils.Tenant) + } else { + tenant = config.CgrConfig().DefaultTenant + } + argres := utils.ArgRSv1ResourceUsage{ + CGREvent: utils.CGREvent{ + Tenant: tenant, + ID: utils.UUIDSha1Prefix(), + Event: *param, + }, + } + self.rpcParams = argres + return nil +} + +func (self *CmdGetResourceForEvent) RpcResult() interface{} { + atr := engine.Resources{} + return &atr +}