// Queries specific RatingProfile on tariff plan func (self *ApierV1) GetTPRatingProfile(attrs AttrGetTPRatingProfile, reply *utils.TPRatingProfile) error { if missing := utils.MissingStructFields(&attrs, []string{"TPid", "RatingProfileId"}); len(missing) != 0 { //Params missing return utils.NewErrMandatoryIeMissing(missing...) } tmpRpf := &utils.TPRatingProfile{TPid: attrs.TPid} if err := tmpRpf.SetRatingProfilesId(attrs.RatingProfileId); err != nil { return err } rpf := engine.APItoModelRatingProfile(tmpRpf) if rpfs, err := self.StorDb.GetTpRatingProfiles(&rpf[0]); err != nil { return utils.NewErrServerError(err) } else if len(rpfs) == 0 { return utils.ErrNotFound } else { rpfMap, err := engine.TpRatingProfiles(rpfs).GetRatingProfiles() if err != nil { return err } rpf := rpfMap[tmpRpf.KeyId()] tpdc := utils.TPRatingProfile{ TPid: attrs.TPid, RatingPlanActivations: rpf.RatingPlanActivations, } if err := tpdc.SetRatingProfilesId(attrs.RatingProfileId); err != nil { return err } *reply = tpdc } return nil }
// Queries specific RatingProfile on tariff plan func (self *ApierV1) GetTPRatingProfile(attrs AttrGetTPRatingProfile, reply *utils.TPRatingProfile) error { if missing := utils.MissingStructFields(&attrs, []string{"TPid", "RatingProfileId"}); len(missing) != 0 { //Params missing return fmt.Errorf("%s:%v", utils.ERR_MANDATORY_IE_MISSING, missing) } tmpRpf := &utils.TPRatingProfile{TPid: attrs.TPid} if err := tmpRpf.SetRatingProfilesId(attrs.RatingProfileId); err != nil { return err } if rpfs, err := self.StorDb.GetTpRatingProfiles(tmpRpf); err != nil { return fmt.Errorf("%s:%s", utils.ERR_SERVER_ERROR, err.Error()) } else if len(rpfs) == 0 { return errors.New(utils.ERR_NOT_FOUND) } else { rpf := rpfs[tmpRpf.KeyId()] tpdc := utils.TPRatingProfile{ TPid: attrs.TPid, RatingPlanActivations: rpf.RatingPlanActivations, } if err := tpdc.SetRatingProfilesId(attrs.RatingProfileId); err != nil { return err } *reply = tpdc } return nil }