dnscontrol/models/t_txt.go
Tom Limoncelli a7eba97ada
Refactor in preparation to unexport RecordConfig.{Name,NameFQDN,Target} (#337)
* Preparing for the unexport of Name/NameFQDN/Target
* Cleanups
2018-03-19 17:18:58 -04:00

36 lines
1,006 B
Go

package models
// SetTargetTXT sets the TXT fields when there is 1 string.
func (rc *RecordConfig) SetTargetTXT(s string) error {
rc.SetTarget(s)
rc.TxtStrings = []string{s}
if rc.Type == "" {
rc.Type = "TXT"
}
if rc.Type != "TXT" {
panic("assertion failed: SetTargetTXT called when .Type is not TXT")
}
return nil
}
// SetTargetTXTs sets the TXT fields when there are many strings.
func (rc *RecordConfig) SetTargetTXTs(s []string) error {
rc.SetTarget(s[0])
rc.TxtStrings = s
if rc.Type == "" {
rc.Type = "TXT"
}
if rc.Type != "TXT" {
panic("assertion failed: SetTargetTXT called when .Type is not TXT")
}
return nil
}
// SetTargetTXTString is like SetTargetTXT but accepts one big string,
// which must be parsed into one or more strings based on how it is quoted.
// Ex: foo << 1 string
// foo bar << 1 string
// "foo" "bar" << 2 strings
func (rc *RecordConfig) SetTargetTXTString(s string) error {
return rc.SetTargetTXTs(ParseQuotedTxt(s))
}