From 86317e4b19cd14408749dfe610d6793fcdd0274d Mon Sep 17 00:00:00 2001 From: DanB Date: Sun, 16 Mar 2014 19:55:52 +0100 Subject: [PATCH] Adding apier/cdrs.go file --- apier/cdrs.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 apier/cdrs.go diff --git a/apier/cdrs.go b/apier/cdrs.go new file mode 100644 index 000000000..975b3b017 --- /dev/null +++ b/apier/cdrs.go @@ -0,0 +1,45 @@ +/* +Rating system designed to be used in VoIP Carriers World +Copyright (C) 2013 ITsysCOM + +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 apier + +import ( + "fmt" + "github.com/cgrates/cgrates/engine" + "github.com/cgrates/cgrates/utils" +) + +type AttrGetCallCost struct { + CgrId string // Unique id of the CDR + RunId string // Run Id +} + +// Retrieves the callCost out of CGR logDb +func (apier *ApierV1) GetCallCostLog(attrs AttrGetCallCost, reply *engine.CallCost) error { + if missing := utils.MissingStructFields(&attrs, []string{"CgrId", "RunId"}); len(missing) != 0 { + return fmt.Errorf("%s:%v", utils.ERR_MANDATORY_IE_MISSING, missing) + } + if cc, err := apier.LogDb.GetCallCostLog(attrs.CgrId, "", attrs.RunId); err != nil { + return fmt.Errorf("%s:%s", utils.ERR_SERVER_ERROR, err.Error()) + } else if cc == nil { + return fmt.Errorf("NOT_FOUND") + } else { + *reply = *cc + } + return nil +}