mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-14 20:59:53 +05:00
124 lines
3.2 KiB
Go
124 lines
3.2 KiB
Go
package config
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/cgrates/cgrates/utils"
|
|
)
|
|
|
|
type CacheParamConfig struct {
|
|
Limit int
|
|
TTL time.Duration
|
|
Precache bool
|
|
}
|
|
|
|
func (self *CacheParamConfig) loadFromJsonCfg(jsnCfg *CacheParamJsonCfg) error {
|
|
if jsnCfg == nil {
|
|
return nil
|
|
}
|
|
var err error
|
|
if jsnCfg.Limit != nil {
|
|
self.Limit = *jsnCfg.Limit
|
|
}
|
|
if jsnCfg.Ttl != nil {
|
|
if self.TTL, err = utils.ParseDurationWithSecs(*jsnCfg.Ttl); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if jsnCfg.Precache != nil {
|
|
self.Precache = *jsnCfg.Precache
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type CacheConfig struct {
|
|
Destinations *CacheParamConfig
|
|
ReverseDestinations *CacheParamConfig
|
|
RatingPlans *CacheParamConfig
|
|
RatingProfiles *CacheParamConfig
|
|
Lcr *CacheParamConfig
|
|
CdrStats *CacheParamConfig
|
|
Actions *CacheParamConfig
|
|
ActionPlans *CacheParamConfig
|
|
ActionTriggers *CacheParamConfig
|
|
SharedGroups *CacheParamConfig
|
|
Aliases *CacheParamConfig
|
|
ReverseAliases *CacheParamConfig
|
|
}
|
|
|
|
func (self *CacheConfig) loadFromJsonCfg(jsnCfg *CacheJsonCfg) error {
|
|
if jsnCfg.Destinations != nil {
|
|
self.Destinations = &CacheParamConfig{}
|
|
if err := self.Destinations.loadFromJsonCfg(jsnCfg.Destinations); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if jsnCfg.Reverse_destinations != nil {
|
|
self.ReverseDestinations = &CacheParamConfig{}
|
|
if err := self.ReverseDestinations.loadFromJsonCfg(jsnCfg.Reverse_destinations); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if jsnCfg.Rating_plans != nil {
|
|
self.RatingPlans = &CacheParamConfig{}
|
|
if err := self.RatingPlans.loadFromJsonCfg(jsnCfg.Rating_plans); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if jsnCfg.Rating_profiles != nil {
|
|
self.RatingProfiles = &CacheParamConfig{}
|
|
if err := self.RatingProfiles.loadFromJsonCfg(jsnCfg.Rating_profiles); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if jsnCfg.Lcr != nil {
|
|
self.Lcr = &CacheParamConfig{}
|
|
if err := self.Lcr.loadFromJsonCfg(jsnCfg.Lcr); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if jsnCfg.Cdr_stats != nil {
|
|
self.CdrStats = &CacheParamConfig{}
|
|
if err := self.CdrStats.loadFromJsonCfg(jsnCfg.Cdr_stats); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if jsnCfg.Actions != nil {
|
|
self.Actions = &CacheParamConfig{}
|
|
if err := self.Actions.loadFromJsonCfg(jsnCfg.Actions); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if jsnCfg.Action_plans != nil {
|
|
self.ActionPlans = &CacheParamConfig{}
|
|
if err := self.ActionPlans.loadFromJsonCfg(jsnCfg.Action_plans); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if jsnCfg.Action_triggers != nil {
|
|
self.ActionTriggers = &CacheParamConfig{}
|
|
if err := self.ActionTriggers.loadFromJsonCfg(jsnCfg.Action_triggers); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if jsnCfg.Shared_groups != nil {
|
|
self.SharedGroups = &CacheParamConfig{}
|
|
if err := self.SharedGroups.loadFromJsonCfg(jsnCfg.Shared_groups); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if jsnCfg.Aliases != nil {
|
|
self.Aliases = &CacheParamConfig{}
|
|
if err := self.Aliases.loadFromJsonCfg(jsnCfg.Aliases); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if jsnCfg.Reverse_aliases != nil {
|
|
self.ReverseAliases = &CacheParamConfig{}
|
|
if err := self.ReverseAliases.loadFromJsonCfg(jsnCfg.Reverse_aliases); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|