// Remove aliases configured for a rating profile subject func (self *ApierV1) RemRatingSubjectAliases(tenantRatingSubject engine.TenantRatingSubject, reply *string) error { if missing := utils.MissingStructFields(&tenantRatingSubject, []string{"Tenant", "Subject"}); len(missing) != 0 { return utils.NewErrMandatoryIeMissing(missing...) } aliases := engine.GetAliasService() if aliases == nil { return errors.New("ALIASES_NOT_ENABLED") } var reverseAliases map[string][]*engine.Alias if err := aliases.Call("AliasesV1.GetReverseAlias", &engine.AttrReverseAlias{Target: "Subject", Alias: tenantRatingSubject.Subject, Context: utils.ALIAS_CONTEXT_RATING}, &reverseAliases); err != nil { return utils.NewErrServerError(err) } var ignr string for _, aliass := range reverseAliases { for _, alias := range aliass { if alias.Tenant != tenantRatingSubject.Tenant { continue // From another tenant } if err := aliases.Call("AliasesV1.RemoveAlias", alias, &ignr); err != nil { return utils.NewErrServerError(err) } } } *reply = utils.OK return nil }
func (self *ApierV1) AddAccountAliases(attrs AttrAddAccountAliases, reply *string) error { if missing := utils.MissingStructFields(&attrs, []string{"Tenant", "Account", "Aliases"}); len(missing) != 0 { return utils.NewErrMandatoryIeMissing(missing...) } if attrs.Category == "" { attrs.Category = utils.CALL } aliases := engine.GetAliasService() if aliases == nil { return errors.New("ALIASES_NOT_ENABLED") } var ignr string for _, alias := range attrs.Aliases { als := engine.Alias{Direction: utils.META_OUT, Tenant: attrs.Tenant, Category: attrs.Category, Account: alias, Subject: alias, Context: utils.ALIAS_CONTEXT_RATING, Values: engine.AliasValues{&engine.AliasValue{DestinationId: utils.META_ANY, Pairs: engine.AliasPairs{"Account": map[string]string{alias: attrs.Account}, "Subject": map[string]string{alias: attrs.Account}}, Weight: 10.0}}} if err := aliases.Call("AliasesV1.SetAlias", &engine.AttrAddAlias{Alias: &als}, &ignr); err != nil { return utils.NewErrServerError(err) } } *reply = utils.OK return nil }