Documentation ¶
Overview ¶
Package base implements core libraries used in multiple Moov projects. Refer to each projects documentation for more details.
Index ¶
- Constants
- func Has(list error, err error) bool
- func ID() string
- func Match(errA, errB error) bool
- type ErrorList
- type ParseError
- type Time
- func (t Time) AddBankingDay(d int) Time
- func (t Time) AddBusinessDay(d int) Time
- func (t Time) Equal(other Time) bool
- func (t Time) GetHoliday() *cal.Holiday
- func (t Time) IsBankingDay() bool
- func (t Time) IsBusinessDay() bool
- func (t Time) IsHoliday() bool
- func (t Time) IsWeekend() bool
- func (t Time) MarshalJSON() ([]byte, error)
- func (t *Time) UnmarshalJSON(data []byte) error
- type UnwrappableError
Constants ¶
const (
// ISO8601Format represents an ISO 8601 format with timezone
ISO8601Format = "2006-01-02T15:04:05Z07:00"
)
Variables ¶
This section is empty.
Functions ¶
func Has ¶ added in v0.8.0
Has takes in a (potential) list of errors, and an error to check for. If any of the errors in the list have the same type as the error to check, it returns true. If the "list" isn't actually a list (typically because it is nil), or no errors in the list match the other error it returns false. So it can be used as an easy way to check for a particular kind of error.
func ID ¶ added in v0.7.0
func ID() string
ID creates a new random string for Moov systems. Do not assume anything about these ID's other than they are non-empty strings.
func Match ¶ added in v0.8.0
Match takes in two errors and compares them, returning true if they match and false if they don't The matching is done by basic equality for simple errors (i.e. defined by errors.New) and by type for other errors. If errA is wrapped with an error supporting the UnwrappableError interface it will also unwrap it and then recursively compare the unwrapped error with errB.
Types ¶
type ErrorList ¶ added in v0.3.0
type ErrorList []error
ErrorList represents an array of errors which is also an error itself.
func (*ErrorList) Add ¶ added in v0.3.0
Add appends err onto the ErrorList. Errors are kept in append order.
func (ErrorList) MarshalJSON ¶ added in v0.3.0
MarshalJSON marshals error list
type ParseError ¶ added in v0.3.0
type ParseError struct { Line int // Line number where the error occurred Record string // Name of the record type being parsed Err error // The actual error }
ParseError is returned for parsing reader errors. The first line is 1.
func (ParseError) Error ¶ added in v0.3.0
func (e ParseError) Error() string
func (ParseError) Unwrap ¶ added in v0.8.0
func (e ParseError) Unwrap() error
Unwrap implements the UnwrappableError interface for ParseError
type Time ¶
Time is an time.Time struct that encodes and decodes in ISO 8601.
ISO 8601 is usable by a large array of libraries whereas RFC 3339 support isn't often part of language standard libraries.
Time also assists in calculating processing days that meet the US Federal Reserve Banks processing days.
For holidays falling on Saturday, Federal Reserve Banks and Branches will be open the preceding Friday. For holidays falling on Sunday, all Federal Reserve Banks and Branches will be closed the following Monday. ACH and FedWire payments are not processed on weekends or the following US holidays.
Holiday Schedule: https://www.frbservices.org/about/holiday-schedules
All logic is based on ET(Eastern) time as defined by the Federal Reserve https://www.frbservices.org/resources/resource-centers/same-day-ach/fedach-processing-schedule.html
func NewTime ¶
NewTime wraps a time.Time value in Moov's base.Time struct. If you need the underlying time.Time value call .Time:
The time zone will be changed to UTC.
func (Time) AddBankingDay ¶ added in v0.2.0
AddBankingDay takes an integer for the number of valid banking days to add and returns a Time. Negative values and large values (over 500 days) will not modify the Time.
func (Time) AddBusinessDay ¶ added in v0.31.0
AddBusinessDay takes an integer for the number of valid business days to add and returns a Time. Negative values and large values (over 500 days) will not modify the Time.
func (Time) Equal ¶
Equal compares two Time values. Time values are considered equal if they both truncate to the same year/month/day and hour/minute/second.
func (Time) GetHoliday ¶ added in v0.36.0
func (t Time) GetHoliday() *cal.Holiday
func (Time) IsBankingDay ¶ added in v0.2.0
IsBankingDay checks the rules around holidays (i.e. weekends) to determine if the given day is a banking day.
func (Time) IsBusinessDay ¶ added in v0.30.0
IsBusinessDay is defined as Mondays through Fridays except federal holidays. Source: https://www.federalreserve.gov/Pubs/regcc/regcc.htm
func (Time) IsWeekend ¶ added in v0.2.0
IsWeekend reports whether the given date falls on a weekend.
func (Time) MarshalJSON ¶
MarshalJSON returns JSON for the given Time
func (*Time) UnmarshalJSON ¶
UnmarshalJSON unpacks a JSON string to populate a Time instance
type UnwrappableError ¶ added in v0.8.0
UnwrappableError is an interface for errors that wrap another error with some extra context The interface allows these errors to get automatically unwrapped by the Match function
Directories ¶
Path | Synopsis |
---|---|
Package admin implements an http.Server which can be used for operations and monitoring tools.
|
Package admin implements an http.Server which can be used for operations and monitoring tools. |
Package http implements a core suite of HTTP functions for use inside Moov.
|
Package http implements a core suite of HTTP functions for use inside Moov. |
bind
Package bind returns well known HTTP local bind addresses for Moov services.
|
Package bind returns well known HTTP local bind addresses for Moov services. |
lru
Package lru is a simple inmemory Recorder implementation.
|
Package lru is a simple inmemory Recorder implementation. |