// Load derived chargers from storDb into dataDb. func (self *ApierV1) LoadDerivedChargers(attrs utils.TPDerivedChargers, reply *string) error { if len(attrs.TPid) == 0 { return utils.NewErrMandatoryIeMissing("TPid") } dbReader := engine.NewTpReader(self.RatingDb, self.AccountDb, self.StorDb, attrs.TPid, self.Config.DefaultTimezone, self.Config.LoadHistorySize) dc := engine.APItoModelDerivedCharger(&attrs) if err := dbReader.LoadDerivedChargersFiltered(&dc[0], true); err != nil { return utils.NewErrServerError(err) } //Automatic cache of the newly inserted rating plan var derivedChargingKeys []string if len(attrs.Direction) != 0 && len(attrs.Tenant) != 0 && len(attrs.Category) != 0 && len(attrs.Account) != 0 && len(attrs.Subject) != 0 { derivedChargingKeys = []string{utils.DERIVEDCHARGERS_PREFIX + attrs.GetDerivedChargersKey()} } if err := self.RatingDb.CacheRatingPrefixValues(map[string][]string{utils.DERIVEDCHARGERS_PREFIX: derivedChargingKeys}); err != nil { return err } *reply = OK return nil }