diff --git a/common.go b/common.go index d658a35..63d4963 100644 --- a/common.go +++ b/common.go @@ -274,6 +274,7 @@ type BankAcct struct { AcctKey String `xml:"ACCTKEY,omitempty"` // Unused in USA } +// Valid returns whether the BankAcct is valid according to the OFX spec func (b BankAcct) Valid() (bool, error) { if len(b.BankID) == 0 { return false, errors.New("BankAcct.BankID empty") @@ -294,6 +295,7 @@ type CCAcct struct { AcctKey String `xml:"ACCTKEY,omitempty"` // Unused in USA } +// Valid returns whether the CCAcct is valid according to the OFX spec func (c CCAcct) Valid() (bool, error) { if len(c.AcctID) == 0 { return false, errors.New("CCAcct.AcctID empty") diff --git a/types.go b/types.go index 31ec7ea..ab2dd7f 100644 --- a/types.go +++ b/types.go @@ -351,7 +351,7 @@ func (c *CurrSymbol) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error unit, err := currency.ParseISO(value) if err != nil { - errors.New("Error parsing CurrSymbol:" + err.Error()) + return errors.New("Error parsing CurrSymbol:" + err.Error()) } c.Unit = unit return nil @@ -375,6 +375,8 @@ func (c CurrSymbol) Valid() (bool, error) { return true, nil } +// NewCurrSymbol returns a new CurrSymbol given a three-letter ISO-4217 +// currency symbol as a string func NewCurrSymbol(s string) (*CurrSymbol, error) { unit, err := currency.ParseISO(s) if err != nil {