diff --git a/console/chargers_process_event.go b/console/chargers_process_event.go new file mode 100644 index 000000000..46446f4cc --- /dev/null +++ b/console/chargers_process_event.go @@ -0,0 +1,71 @@ +/* +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 ( + "time" + + "github.com/cgrates/cgrates/dispatchers" + "github.com/cgrates/cgrates/engine" + "github.com/cgrates/cgrates/utils" +) + +func init() { + c := &CmdChargersProcessEvent{ + name: "chargers_process_event", + rpcMethod: utils.ChargerSv1ProcessEvent, + rpcParams: &dispatchers.CGREvWithApiKey{}, + } + commands[c.Name()] = c + c.CommandExecuter = &CommandExecuter{c} +} + +type CmdChargersProcessEvent struct { + name string + rpcMethod string + rpcParams *dispatchers.CGREvWithApiKey + *CommandExecuter +} + +func (self *CmdChargersProcessEvent) Name() string { + return self.name +} + +func (self *CmdChargersProcessEvent) RpcMethod() string { + return self.rpcMethod +} + +func (self *CmdChargersProcessEvent) RpcParams(reset bool) interface{} { + if reset || self.rpcParams == nil { + self.rpcParams = &dispatchers.CGREvWithApiKey{} + } + return self.rpcParams +} + +func (self *CmdChargersProcessEvent) PostprocessRpcParams() error { + if self.rpcParams.Time == nil { + self.rpcParams.Time = utils.TimePointer(time.Now()) + } + return nil +} + +func (self *CmdChargersProcessEvent) RpcResult() interface{} { + atr := *[]*engine.ChrgSProcessEventReply + return &atr +} diff --git a/dispatchers/chargers.go b/dispatchers/chargers.go index 70a17f51f..bfad3a378 100755 --- a/dispatchers/chargers.go +++ b/dispatchers/chargers.go @@ -49,14 +49,13 @@ func (dS *DispatcherService) ChargerSv1GetChargersForEvent(args *CGREvWithApiKey } func (dS *DispatcherService) ChargerSv1ProcessEvent(args *CGREvWithApiKey, - reply *[]*engine.AttrSProcessEventReply) (err error) { + reply *[]*engine.ChrgSProcessEventReply) (err error) { if dS.attrS != nil { if err = dS.authorize(utils.ChargerSv1ProcessEvent, args.CGREvent.Tenant, args.APIKey, args.CGREvent.Time); err != nil { return } - } return dS.Dispatch(&args.CGREvent, utils.MetaChargers, args.RouteID, utils.ChargerSv1ProcessEvent, args.CGREvent, reply)